]> granicus.if.org Git - clang/log
clang
9 years agoPR24595: Ignore calling convention modifiers for structors in MS ABI.
Andrey Bokhanko [Mon, 14 Sep 2015 21:29:57 +0000 (21:29 +0000)]
PR24595: Ignore calling convention modifiers for structors in MS ABI.

MS compiler ignores calling convention modifiers for structors. This patch makes
clang do the same (for MS ABI). This fixes PR24595 and makes vswriter.h header
(from Windows SDK 8.1) compilable.

Differential Revision: http://reviews.llvm.org/D12402

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@247619 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoC11 _Bool bitfield diagnostic
Rachel Craik [Mon, 14 Sep 2015 21:27:36 +0000 (21:27 +0000)]
C11 _Bool bitfield diagnostic

Summary: Implement DR262 (for C). This patch will mainly affect bitfields of type _Bool

Reviewers: fraggamuffin, rsmith

Subscribers: hubert.reinterpretcast, cfe-commits

Differential Revision: http://reviews.llvm.org/D10018

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@247618 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[analyzer] Update SATestBuild.py to set -isysroot for preprocessed files
Devin Coughlin [Mon, 14 Sep 2015 21:22:24 +0000 (21:22 +0000)]
[analyzer] Update SATestBuild.py to set -isysroot for preprocessed files

Update the static analyzer buildbot script to set -isysroot to the OS X SDK path
when analyzing preprocessed files on OS X.

Differential Revision: http://reviews.llvm.org/D12769

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@247617 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[Static Analyzer] Turn on some nullability checks by default.
Gabor Horvath [Mon, 14 Sep 2015 20:34:06 +0000 (20:34 +0000)]
[Static Analyzer] Turn on some nullability checks by default.

Differential Revision: http://reviews.llvm.org/D12858

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@247614 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[Static Analyzer] Nullability checker optimization.
Gabor Horvath [Mon, 14 Sep 2015 20:31:46 +0000 (20:31 +0000)]
[Static Analyzer] Nullability checker optimization.

Differential Revision: http://reviews.llvm.org/D12848

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@247612 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoDriver should forward at most one gdwarf-N flag to cc1as.
Douglas Katzman [Mon, 14 Sep 2015 20:31:28 +0000 (20:31 +0000)]
Driver should forward at most one gdwarf-N flag to cc1as.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@247611 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[Solaris] Add -lc also when linking shared libraries
Rafael Espindola [Mon, 14 Sep 2015 19:30:53 +0000 (19:30 +0000)]
[Solaris] Add -lc also when linking shared libraries

This is actually needed, otherwise libc won't be added at all. For
instance when building libclang.so all the libc symbols won't be
found, with ld warning about libc being an "implicit dependency".

Patch by Xan López!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@247603 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[Static Analyzer] Relaxing a caching out related assert.
Gabor Horvath [Mon, 14 Sep 2015 19:00:08 +0000 (19:00 +0000)]
[Static Analyzer] Relaxing a caching out related assert.

Differential Revision: http://reviews.llvm.org/D12818

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@247598 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoFix a nasty bug with the partial destruction of nested arrays;
John McCall [Mon, 14 Sep 2015 18:57:08 +0000 (18:57 +0000)]
Fix a nasty bug with the partial destruction of nested arrays;
it escaped notice because it's only used for heterogeneous
initialization.

rdar://21397946

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@247597 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[Static Analyzer] Moving nullability checkers out of alpha.
Gabor Horvath [Mon, 14 Sep 2015 18:48:55 +0000 (18:48 +0000)]
[Static Analyzer] Moving nullability checkers out of alpha.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@247595 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[opaque pointer type] Fix a few uses of PointerType::getElementType in favor of uses...
David Blaikie [Mon, 14 Sep 2015 18:38:22 +0000 (18:38 +0000)]
[opaque pointer type] Fix a few uses of PointerType::getElementType in favor of uses of types already available elsewhere

These are a few cleanups I happened to have from trying to go in a
different direction recently, so just flushing them out while I have
them.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@247593 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[Static Analyzer] Moving nullability checkers to a top level package.
Gabor Horvath [Mon, 14 Sep 2015 18:31:34 +0000 (18:31 +0000)]
[Static Analyzer] Moving nullability checkers to a top level package.

Differential Revision: http://reviews.llvm.org/D12852

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@247590 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoRevert "[opaque pointer type] update for LLVM API change"
David Blaikie [Mon, 14 Sep 2015 18:02:04 +0000 (18:02 +0000)]
Revert "[opaque pointer type] update for LLVM API change"

This was the wrong direction to take anyway (because ultimately the
GlobalValue needed the pointee type again and /it/ used
PointerType::getElementType eventually anyway)... let's go a different way.

This reverts commit r236161.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@247586 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoUpdate cxx-irgen.cpp test to allow signext in alwaysinline functions.
Samuel Antao [Mon, 14 Sep 2015 17:41:32 +0000 (17:41 +0000)]
Update cxx-irgen.cpp test to allow signext in alwaysinline functions.

This was causing an error in Power8 targets.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@247584 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoTest commit
Rachel Craik [Mon, 14 Sep 2015 14:08:18 +0000 (14:08 +0000)]
Test commit

Remove some trailing whitespace

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@247560 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[CMake] r247548 introduced llvm-readobj.
NAKAMURA Takumi [Mon, 14 Sep 2015 12:42:52 +0000 (12:42 +0000)]
[CMake] r247548 introduced llvm-readobj.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@247554 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[CMake] Reformat CLANG_TEST_DEPS.
NAKAMURA Takumi [Mon, 14 Sep 2015 12:41:53 +0000 (12:41 +0000)]
[CMake] Reformat CLANG_TEST_DEPS.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@247553 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[mips] Add test case to check ABI flag emissions in case of inline assembler
Simon Atanasyan [Mon, 14 Sep 2015 11:23:02 +0000 (11:23 +0000)]
[mips] Add test case to check ABI flag emissions in case of inline assembler

Follow up to r247546. The test case reproduces the problem fixed by this commit.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@247548 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[Sema] Reject value-initialization of function types
David Majnemer [Mon, 14 Sep 2015 07:05:00 +0000 (07:05 +0000)]
[Sema] Reject value-initialization of function types

T in the expression T() must be a non-array complete object type or
the void type.  Function types are neither.

This fixes PR24798.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@247535 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[Static Analyzer] Remove a redundant file.
Gabor Horvath [Sun, 13 Sep 2015 23:03:11 +0000 (23:03 +0000)]
[Static Analyzer] Remove a redundant file.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@247533 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[Static Analyzer] Merge the Objective-C Generics Checker into Dynamic Type Propagatio...
Gabor Horvath [Sun, 13 Sep 2015 23:02:24 +0000 (23:02 +0000)]
[Static Analyzer] Merge the Objective-C Generics Checker into Dynamic Type Propagation checker.

Differential Revision: http://reviews.llvm.org/D12381

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@247532 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[docs] NFC: Fix line formatting in INSTALL.txt
Vedant Kumar [Sun, 13 Sep 2015 20:17:18 +0000 (20:17 +0000)]
[docs] NFC: Fix line formatting in INSTALL.txt

Patch by beltex!

Differential Revision: http://reviews.llvm.org/D12684

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@247530 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoUse -f instead of -d flag for testing existing of clang executable (http://reviews...
Ted Kremenek [Sat, 12 Sep 2015 16:01:34 +0000 (16:01 +0000)]
Use -f instead of -d flag for testing existing of clang executable (http://reviews.llvm.org/D12827).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@247510 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoTest commit.
Kelvin Li [Sat, 12 Sep 2015 13:35:31 +0000 (13:35 +0000)]
Test commit.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@247503 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[CodeGen] Remove wrapper-free always_inline functions from COMDATs
David Majnemer [Sat, 12 Sep 2015 06:37:42 +0000 (06:37 +0000)]
[CodeGen] Remove wrapper-free always_inline functions from COMDATs

always_inline functions without a wrapper don't need to be in a COMDAT.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@247500 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoClean up trailing whitespace in the builtin headers
Sean Silva [Sat, 12 Sep 2015 02:55:19 +0000 (02:55 +0000)]
Clean up trailing whitespace in the builtin headers

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@247498 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoclang/test/Driver/stackrealign.c REQUIRES clang-driver.
NAKAMURA Takumi [Sat, 12 Sep 2015 01:29:35 +0000 (01:29 +0000)]
clang/test/Driver/stackrealign.c REQUIRES clang-driver.

GCC driver, for example cygwin, both "-mstackrealign" "-mno-stackrealign" are passed.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@247496 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoAlways_inline codegen rewrite.
Evgeniy Stepanov [Sat, 12 Sep 2015 01:07:37 +0000 (01:07 +0000)]
Always_inline codegen rewrite.

Current implementation may end up emitting an undefined reference for
an "inline __attribute__((always_inline))" function by generating an
"available_externally alwaysinline" IR function for it and then failing to
inline all the calls. This happens when a call to such function is in dead
code. As the inliner is an SCC pass, it does not process dead code.

Libc++ relies on the compiler never emitting such undefined reference.

With this patch, we emit a pair of
1. internal alwaysinline definition (called F.alwaysinline)
2a. A stub F() { musttail call F.alwaysinline }
  -- or, depending on the linkage --
2b. A declaration of F.

The frontend ensures that F.inlinefunction is only used for direct
calls, and the stub is used for everything else (taking the address of
the function, really). Declaration (2b) is emitted in the case when
"inline" is meant for inlining only (like __gnu_inline__ and some
other cases).

This approach, among other nice properties, ensures that alwaysinline
functions are always internal, making it impossible for a direct call
to such function to produce an undefined symbol reference.

This patch is based on ideas by Chandler Carruth and Richard Smith.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@247494 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoRevert "Specify target triple in alwaysinline tests."
Evgeniy Stepanov [Fri, 11 Sep 2015 23:48:37 +0000 (23:48 +0000)]
Revert "Specify target triple in alwaysinline tests."
Revert "Always_inline codegen rewrite."

Breaks gdb & lldb tests.
Breaks on Fedora 22 x86_64.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@247491 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoAdd new test file missing from r247486.
Richard Smith [Fri, 11 Sep 2015 22:54:01 +0000 (22:54 +0000)]
Add new test file missing from r247486.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@247488 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[modules] When picking one of two template declarations as a lookup result,
Richard Smith [Fri, 11 Sep 2015 22:39:35 +0000 (22:39 +0000)]
[modules] When picking one of two template declarations as a lookup result,
it's not sufficient to prefer the declaration with more default arguments, or
the one that's visible; they might both be visible, but one of them might have
a visible default argument where the other has a hidden default argument.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@247486 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoWhen comparing two block captures for layout, don't crash
John McCall [Fri, 11 Sep 2015 22:00:51 +0000 (22:00 +0000)]
When comparing two block captures for layout, don't crash
if they have the same alignment and one was 'this'.

Fixes PR24780.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@247482 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoLet selector-expr-lvalue.mm actually test something.
Nico Weber [Fri, 11 Sep 2015 21:24:40 +0000 (21:24 +0000)]
Let selector-expr-lvalue.mm actually test something.

I accidentally introduced a bug locally, and noticed that none of the tests
caught it. No longer!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@247477 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[Static Analyzer] Properly cash the configuration option for lambda support.
Gabor Horvath [Fri, 11 Sep 2015 21:19:39 +0000 (21:19 +0000)]
[Static Analyzer] Properly cash the configuration option for lambda support.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@247476 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[Shave]: pass -isystem dirs and "-Wa," args to moviAsm
Douglas Katzman [Fri, 11 Sep 2015 21:13:46 +0000 (21:13 +0000)]
[Shave]: pass -isystem dirs and "-Wa," args to moviAsm

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@247474 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoSpecify target triple in alwaysinline tests.
Evgeniy Stepanov [Fri, 11 Sep 2015 21:10:12 +0000 (21:10 +0000)]
Specify target triple in alwaysinline tests.

This should fix the tests on Windows (failing due to mangling differencies).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@247473 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoSimplify logic introduced in r247464.
David Majnemer [Fri, 11 Sep 2015 20:55:29 +0000 (20:55 +0000)]
Simplify logic introduced in r247464.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@247472 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[tooling] In CompileCommand, Expose the 'file' that was associated with the command.
Argyrios Kyrtzidis [Fri, 11 Sep 2015 20:43:05 +0000 (20:43 +0000)]
[tooling] In CompileCommand, Expose the 'file' that was associated with the command.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@247468 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[CMake] [Darwin] Add support for building bootstrap builds with -flto
Chris Bieneman [Fri, 11 Sep 2015 20:42:57 +0000 (20:42 +0000)]
[CMake] [Darwin] Add support for building bootstrap builds with -flto

When building with LTO the bootstrap builds need to depend on libLTO, llvm-ar, and llvm-ranlib, which all need to be passed into the bootstrap build. This functionality only works on Darwin.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@247467 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[analyzer] Improve behavior if Clang not found.
Anton Yartsev [Fri, 11 Sep 2015 20:41:09 +0000 (20:41 +0000)]
[analyzer] Improve behavior if Clang not found.

- Eliminate 'No such file or directory at scan-build line ...' error if '$RealBin/bin/clang' or '$RealBin/clang' directory does not exist.
- Eliminate 'Use of uninitialized value $Clang in concatenation (.) or string at scan-build line ...' error if help is displayed while $Clang was not found.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@247466 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoAlways_inline codegen rewrite.
Evgeniy Stepanov [Fri, 11 Sep 2015 20:29:07 +0000 (20:29 +0000)]
Always_inline codegen rewrite.

Current implementation may end up emitting an undefined reference for
an "inline __attribute__((always_inline))" function by generating an
"available_externally alwaysinline" IR function for it and then failing to
inline all the calls. This happens when a call to such function is in dead
code. As the inliner is an SCC pass, it does not process dead code.

Libc++ relies on the compiler never emitting such undefined reference.

With this patch, we emit a pair of
1. internal alwaysinline definition (called F.alwaysinline)
2a. A stub F() { musttail call F.alwaysinline }
  -- or, depending on the linkage --
2b. A declaration of F.

The frontend ensures that F.inlinefunction is only used for direct
calls, and the stub is used for everything else (taking the address of
the function, really). Declaration (2b) is emitted in the case when
"inline" is meant for inlining only (like __gnu_inline__ and some
other cases).

This approach, among other nice properties, ensures that alwaysinline
functions are always internal, making it impossible for a direct call
to such function to produce an undefined symbol reference.

This patch is based on ideas by Chandler Carruth and Richard Smith.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@247465 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[MS ABI] Select an inheritance model in template arguments
David Majnemer [Fri, 11 Sep 2015 20:18:09 +0000 (20:18 +0000)]
[MS ABI] Select an inheritance model in template arguments

We used to only select an inheritance model if the pointer to member was
nullptr.  Instead, select a model regardless of the member pointer's
value.

N.B.  This bug was exposed by making member pointers report true for
isIncompleteType but has been latent since the member pointer scheme's
inception.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@247464 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[analyzer] Add -analyzer-config option for function size the inliner considers as...
Devin Coughlin [Fri, 11 Sep 2015 20:14:05 +0000 (20:14 +0000)]
[analyzer] Add -analyzer-config option for function size the inliner considers as large

Add an option (-analyzer-config min-blocks-for-inline-large=14) to control the function
size the inliner considers as large, in relation to "max-times-inline-large". The option
defaults to the original hard coded behaviour, which I believe should be adjustable with
the other inlining settings.

The analyzer-config test has been modified so that the analyzer will reach the
getMinBlocksForInlineLarge() method and store the result in the ConfigTable, to ensure it
is dumped by the debug checker.

A patch by Sean Eveson!

Differential Revision: http://reviews.llvm.org/D12406

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@247463 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[Edit] Fix issue with tracking what macro argument inputs have been edited.
Argyrios Kyrtzidis [Fri, 11 Sep 2015 20:09:11 +0000 (20:09 +0000)]
[Edit] Fix issue with tracking what macro argument inputs have been edited.

This was not working correctly, leading to erroneously rejecting valid edits.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@247462 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoRecord function attribute "stackrealign" instead of using backend option
Akira Hatanaka [Fri, 11 Sep 2015 18:55:09 +0000 (18:55 +0000)]
Record function attribute "stackrealign" instead of using backend option
-force-align-stack.

Also, make changes to the driver so that -mno-stack-realign is no longer
an option exposed to the end-user that disallows stack realignment in
the backend.

Differential Revision: http://reviews.llvm.org/D11815

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@247451 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoFix a typo and make this test stricter.
Adrian Prantl [Fri, 11 Sep 2015 18:54:34 +0000 (18:54 +0000)]
Fix a typo and make this test stricter.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@247449 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoRemove an unnecessary check. NFC
Adrian Prantl [Fri, 11 Sep 2015 18:54:31 +0000 (18:54 +0000)]
Remove an unnecessary check. NFC

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@247448 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoRemove a redundant check from CGDebugInfo::shouldOmitDefinition() (NFC).
Adrian Prantl [Fri, 11 Sep 2015 18:54:28 +0000 (18:54 +0000)]
Remove a redundant check from CGDebugInfo::shouldOmitDefinition() (NFC).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@247447 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoCleanup: Get rid of a bunch of unnecessary invocations of internString()
Adrian Prantl [Fri, 11 Sep 2015 18:45:02 +0000 (18:45 +0000)]
Cleanup: Get rid of a bunch of unnecessary invocations of internString()
in CGDebugInfo.cpp: MDString::get() copies its arguments.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@247445 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[Static Analyzer] Fixed a typo in a diagnostic message.
Gabor Horvath [Fri, 11 Sep 2015 18:41:50 +0000 (18:41 +0000)]
[Static Analyzer] Fixed a typo in a diagnostic message.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@247444 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoExtend the Token visualizer used by MSVC to display the identifier text for tok:...
Aaron Ballman [Fri, 11 Sep 2015 18:35:18 +0000 (18:35 +0000)]
Extend the Token visualizer used by MSVC to display the identifier text for tok::identifier tokens.

Patch by Mike Spertus.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@247442 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoUse Itanium C++ ABI triple for new modules+debug test
Reid Kleckner [Fri, 11 Sep 2015 17:50:14 +0000 (17:50 +0000)]
Use Itanium C++ ABI triple for new modules+debug test

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@247438 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[test] Specify exception object type in two tests
Vedant Kumar [Fri, 11 Sep 2015 17:39:34 +0000 (17:39 +0000)]
[test] Specify exception object type in two tests

Replace:
    'try { throw 0; } catch (...)'
with
    'try { throw 0; } catch (int e)'

in two test cases.

Differential Revision: http://reviews.llvm.org/D12743

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@247437 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[CMake] Making the bootstrap-clear target always delete the boostrap build directories.
Chris Bieneman [Fri, 11 Sep 2015 17:38:38 +0000 (17:38 +0000)]
[CMake] Making the bootstrap-clear target always delete the boostrap build directories.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@247436 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoUpdate test expectations for LLVM asm printing change
Reid Kleckner [Fri, 11 Sep 2015 17:27:53 +0000 (17:27 +0000)]
Update test expectations for LLVM asm printing change

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@247434 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoModule Debugging: Emit forward declarations for types that are defined in
Adrian Prantl [Fri, 11 Sep 2015 17:23:08 +0000 (17:23 +0000)]
Module Debugging: Emit forward declarations for types that are defined in
clang modules, if -dwarf-ext-refs (DebugTypesExtRefs) is specified.

This reimplements r247369 in about a third of the amount of code.
Thanks to David Blaikie pointing this out in post-commit review!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@247432 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoRevert "Module Debugging: Emit forward declarations for types that are defined in"
Adrian Prantl [Fri, 11 Sep 2015 17:23:03 +0000 (17:23 +0000)]
Revert "Module Debugging: Emit forward declarations for types that are defined in"

This reverts commit r247369 to facilitate reviewing of the following patch.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@247431 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[Static Analyzer] Properly clean up the dynamic type information for dead regions.
Gabor Horvath [Fri, 11 Sep 2015 17:19:57 +0000 (17:19 +0000)]
[Static Analyzer] Properly clean up the dynamic type information for dead regions.

Differential Revision: http://reviews.llvm.org/D12767

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@247430 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[Static Analyzer] Lambda support.
Gabor Horvath [Fri, 11 Sep 2015 16:55:01 +0000 (16:55 +0000)]
[Static Analyzer] Lambda support.

Differential Revision: http://reviews.llvm.org/D12652

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@247426 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[SEH] Port __try / __leave test to new IR
Reid Kleckner [Fri, 11 Sep 2015 16:29:27 +0000 (16:29 +0000)]
[SEH] Port __try / __leave test to new IR

It turns out that the IR we already generate for __leave is fine, so no
code changes were needed.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@247424 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[Static Analyzer] Minor cleanups for the nullability checker.
Gabor Horvath [Fri, 11 Sep 2015 16:29:05 +0000 (16:29 +0000)]
[Static Analyzer] Minor cleanups for the nullability checker.

Differential Revision: http://reviews.llvm.org/D12619

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@247423 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[CodeGen] Teach SimplifyPersonality about the updated LandingPadInst
Vedant Kumar [Fri, 11 Sep 2015 15:40:05 +0000 (15:40 +0000)]
[CodeGen] Teach SimplifyPersonality about the updated LandingPadInst

When uses of personality functions were moved from LandingPadInst to
Function, we forgot to update SimplifyPersonality(). This patch corrects
that.

Note: SimplifyPersonality() is an optimization which replaces
personality functions with the default C++ personality when possible.
Without this update, some ObjC++ projects fail to link against C++
libraries (seeing as the exception ABI had effectively changed).

rdar://problem/22155434

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@247421 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoThis test requires UTF-8 output to print the UT-8 characters.
Yaron Keren [Fri, 11 Sep 2015 13:29:12 +0000 (13:29 +0000)]
This test requires UTF-8 output to print the UT-8 characters.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@247410 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoFixed HasDeclarationMatcher to properly convert all types into decls where possible...
Aaron Ballman [Fri, 11 Sep 2015 11:51:24 +0000 (11:51 +0000)]
Fixed HasDeclarationMatcher to properly convert all types into decls where possible. Added objcObjectPointerType(), objcInterfaceDecl(), templateTypeParmType(), injectedClassNameType(), and unresolvedUsingTypenameDecl(). Updated documentation for pointerType() to call out that it does not match ObjCObjectPointerType types. Changed pointsTo() to handle ObjCObjectPointerType as well as PointerType.

While this may seem like a lot of unrelated changes, they all relate back to fixing HasDeclarationMatcher.

This now allows us to write a matcher like:

varDecl(hasType(namedDecl(hasName("Foo"))))

that matches code using typedefs, objc interfaces, template type parameters, injected class names, or unresolved using typenames.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@247404 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[OPENMP] Preserve alignment of the original variables for the captured references.
Alexey Bataev [Fri, 11 Sep 2015 10:29:41 +0000 (10:29 +0000)]
[OPENMP] Preserve alignment of the original variables for the captured references.
Patch makes codegen to preserve alignment of the shared variables captured and used in OpenMP regions.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@247401 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoclang/test/Modules/ExtDebugInfo.cpp: Use %itanium_abi_triple.
NAKAMURA Takumi [Fri, 11 Sep 2015 08:56:12 +0000 (08:56 +0000)]
clang/test/Modules/ExtDebugInfo.cpp: Use %itanium_abi_triple.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@247397 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoclang/test/Modules/ExtDebugInfo.cpp: Use [[@LINE]].
NAKAMURA Takumi [Fri, 11 Sep 2015 08:53:29 +0000 (08:53 +0000)]
clang/test/Modules/ExtDebugInfo.cpp: Use [[@LINE]].

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@247396 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoFix \param in r247251. [-Wdocumentation]
NAKAMURA Takumi [Fri, 11 Sep 2015 08:13:32 +0000 (08:13 +0000)]
Fix \param in r247251. [-Wdocumentation]

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@247392 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[OPENMP] Fix printing of array section with single index.
Alexey Bataev [Fri, 11 Sep 2015 04:54:28 +0000 (04:54 +0000)]
[OPENMP] Fix printing of array section with single index.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@247389 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[modules] Don't load files specified by -fmodule-file= when modules are
Richard Smith [Fri, 11 Sep 2015 03:58:07 +0000 (03:58 +0000)]
[modules] Don't load files specified by -fmodule-file= when modules are
disabled. (We still allow this via -cc1 / -Xclang, primarily for testing.)

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@247384 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[opaque pointer type] update test cases for explicit pointee types on global aliases
David Blaikie [Fri, 11 Sep 2015 03:22:18 +0000 (03:22 +0000)]
[opaque pointer type] update test cases for explicit pointee types on global aliases

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@247380 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[modules] Slightly defang an assert that produces false-positives on the selfhost...
Richard Smith [Fri, 11 Sep 2015 02:22:03 +0000 (02:22 +0000)]
[modules] Slightly defang an assert that produces false-positives on the selfhost bot.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@247375 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoDocs: Document __builtin_nontemporal_load and __builtin_nontemporal_store.
Michael Zolotukhin [Fri, 11 Sep 2015 02:01:15 +0000 (02:01 +0000)]
Docs: Document __builtin_nontemporal_load and __builtin_nontemporal_store.

Summary:
In r247104 I added the builtins for generating non-temporal memory operations,
but now I realized that they lack documentation. This patch adds some.

Differential Revision: http://reviews.llvm.org/D12785

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@247374 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[sema] Fix assertion hit when using libclang to index a particular C++ snippet involv...
Argyrios Kyrtzidis [Fri, 11 Sep 2015 01:44:56 +0000 (01:44 +0000)]
[sema] Fix assertion hit when using libclang to index a particular C++ snippet involving templates.

Assertion hit was in ClassTemplateSpecializationDecl::getSourceRange().

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@247373 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoModule Debugging: Emit forward declarations for types that are defined in
Adrian Prantl [Fri, 11 Sep 2015 01:03:26 +0000 (01:03 +0000)]
Module Debugging: Emit forward declarations for types that are defined in
clang modules, if -dwarf-ext-refs (DebugTypesExtRefs) is specified.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@247369 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoCleanup: Let CGDebugInfo::ModuleRefCache use a TrackingMDNode (NFC).
Adrian Prantl [Fri, 11 Sep 2015 01:03:19 +0000 (01:03 +0000)]
Cleanup: Let CGDebugInfo::ModuleRefCache use a TrackingMDNode (NFC).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@247368 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[MS ABI] Remove another call to RequireCompleteType
David Majnemer [Fri, 11 Sep 2015 00:53:15 +0000 (00:53 +0000)]
[MS ABI] Remove another call to RequireCompleteType

I cannot come up with a testcase which would rely on this call to
RequireCompleteType, I believe that it is superfluous given the current
state of clang.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@247367 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[Driver] Use UniversalCRT on Windows if available
Reid Kleckner [Fri, 11 Sep 2015 00:09:39 +0000 (00:09 +0000)]
[Driver] Use UniversalCRT on Windows if available

Summary:
With Visual Studio 2015 release, a part of runtime library was extracted
and now comes with Windows Kits. This patch enables clang to use
Universal CRT library if  %INCLUDE or %LIB environment varaibles are not
specified.

See also https://llvm.org/bugs/show_bug.cgi?id=24741

Patch by Igor Kudrin

Reviewers: zturner, hans, rnk

Subscribers: ruiu, cfe-commits

Differential Revision: http://reviews.llvm.org/D12695

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@247362 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoDocs: Add missing new line before a list.
Michael Zolotukhin [Thu, 10 Sep 2015 23:56:10 +0000 (23:56 +0000)]
Docs: Add missing new line before a list.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@247360 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoHandle '-r' option properly
Reid Kleckner [Thu, 10 Sep 2015 22:31:45 +0000 (22:31 +0000)]
Handle '-r' option properly

Summary:
This fixs the bug
https://llvm.org/bugs/show_bug.cgi?id=12587

Patch by Yunlian Jiang

Reviewers: Bigcheese, rnk

Differential Revision: http://reviews.llvm.org/D10279

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@247351 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoSupport noreturn in limited contexts on Objective-C message sends.
John McCall [Thu, 10 Sep 2015 22:27:50 +0000 (22:27 +0000)]
Support noreturn in limited contexts on Objective-C message sends.

rdar://6198039

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@247350 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[SEH] Use cleanupendpad so that WinEHPrepare gets the coloring right
Reid Kleckner [Thu, 10 Sep 2015 22:11:13 +0000 (22:11 +0000)]
[SEH] Use cleanupendpad so that WinEHPrepare gets the coloring right

Cleanupendpad is a lot like catchendpad, so we can reuse the same
EHScopeStack type.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@247349 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[MS ABI] Make member pointers return true for isIncompleteType
David Majnemer [Thu, 10 Sep 2015 21:52:00 +0000 (21:52 +0000)]
[MS ABI] Make member pointers return true for isIncompleteType

The type of a member pointer is incomplete if it has no inheritance
model.  This lets us reuse more general logic already embedded in clang.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@247346 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoRevert "Generating assumption loads of vptr after ctor call (fixed)"
Piotr Padlewski [Thu, 10 Sep 2015 20:18:30 +0000 (20:18 +0000)]
Revert "Generating assumption loads of vptr after ctor call (fixed)"

It seems that there is small bug, and we can't generate assume loads
when some virtual functions have internal visibiliy
This reverts commit 982bb7d966947812d216489b3c519c9825cacbf2.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@247332 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoMove sel-address.mm from test/CodeGenCXX to test/SemaObjCXX, it's not a codegen test.
Nico Weber [Thu, 10 Sep 2015 19:35:31 +0000 (19:35 +0000)]
Move sel-address.mm from test/CodeGenCXX to test/SemaObjCXX, it's not a codegen test.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@247327 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoDriver: Support cfi-icall on all OSs when targeting x86/x86_64.
Peter Collingbourne [Thu, 10 Sep 2015 19:18:05 +0000 (19:18 +0000)]
Driver: Support cfi-icall on all OSs when targeting x86/x86_64.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@247324 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoAdd a getDeclContextDescriptor() helper function to CGDebugInfo. (NFC)
Adrian Prantl [Thu, 10 Sep 2015 18:39:45 +0000 (18:39 +0000)]
Add a getDeclContextDescriptor() helper function to CGDebugInfo. (NFC)

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@247319 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[SEH] Use catchret in the new EH IR like we do for C++
Reid Kleckner [Thu, 10 Sep 2015 18:39:41 +0000 (18:39 +0000)]
[SEH] Use catchret in the new EH IR like we do for C++

Also add tests for SEH with the new IRGen.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@247318 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[CUDA] Postprocess bitcode linked in during device-side CUDA compilation.
Artem Belevich [Thu, 10 Sep 2015 18:24:23 +0000 (18:24 +0000)]
[CUDA] Postprocess bitcode linked in during device-side CUDA compilation.

Link in and internalize the symbols we need from supplied bitcode library.

Differential Revision: http://reviews.llvm.org/D11664

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@247317 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[CUDA] Allow trivial constructors as initializer for __shared__ variables.
Artem Belevich [Thu, 10 Sep 2015 17:26:58 +0000 (17:26 +0000)]
[CUDA] Allow trivial constructors as initializer for __shared__ variables.

Differential Revision: http://reviews.llvm.org/D12739

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@247307 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoDebug Info: Remove an unnecessary debug type visitor.
Adrian Prantl [Thu, 10 Sep 2015 17:13:31 +0000 (17:13 +0000)]
Debug Info: Remove an unnecessary debug type visitor.
Thanks to dblaikie for spotting this.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@247303 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoRe-commit r247218: "Fix Clang-tidy misc-use-override warnings, other minor fixes"
Hans Wennborg [Thu, 10 Sep 2015 17:07:54 +0000 (17:07 +0000)]
Re-commit r247218: "Fix Clang-tidy misc-use-override warnings, other minor fixes"

This never broke the build; it was the LLVM side, r247216, that caused problems.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@247302 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoProperly close documentation /code blocks with /endcode.
Aaron Ballman [Thu, 10 Sep 2015 15:13:22 +0000 (15:13 +0000)]
Properly close documentation /code blocks with /endcode.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@247286 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoAVX-512: Changed nidx parameter in extractf64/32 intrinsic from i8 to i32 according...
Igor Breger [Thu, 10 Sep 2015 12:55:54 +0000 (12:55 +0000)]
AVX-512: Changed nidx parameter in extractf64/32 intrinsic from i8 to i32 according to the Intel Spec

Differential Revision: http://reviews.llvm.org/D12752

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@247277 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[OPENMP] Generate threadprivates as TLS variables by default.
Alexey Bataev [Thu, 10 Sep 2015 12:06:58 +0000 (12:06 +0000)]
[OPENMP] Generate threadprivates as TLS variables by default.
If target supports TLS all threadprivates are generated as TLS. If target does not support TLS, use runtime calls for proper codegen of threadprivate variables.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@247273 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[OPENMP] Fix test incompatibility with Windows.
Alexey Bataev [Thu, 10 Sep 2015 11:31:04 +0000 (11:31 +0000)]
[OPENMP] Fix test incompatibility with Windows.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@247270 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[OPENMP] Fix test incompatibility with Windows codegen.
Alexey Bataev [Thu, 10 Sep 2015 11:09:46 +0000 (11:09 +0000)]
[OPENMP] Fix test incompatibility with Windows codegen.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@247268 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[OPENMP] Propagate alignment from original variables to the private copies.
Alexey Bataev [Thu, 10 Sep 2015 09:48:30 +0000 (09:48 +0000)]
[OPENMP] Propagate alignment from original variables to the private copies.
Currently private copies of captured variables have default alignment. Patch makes private variables to have same alignment as original variables.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@247260 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[OPENMP] Fix test incompatibility with 32-bit platforms
Alexey Bataev [Thu, 10 Sep 2015 09:06:59 +0000 (09:06 +0000)]
[OPENMP] Fix test incompatibility with 32-bit platforms

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@247255 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[OPENMP] Outlined function for parallel and other regions with list of captured varia...
Alexey Bataev [Thu, 10 Sep 2015 08:12:02 +0000 (08:12 +0000)]
[OPENMP] Outlined function for parallel and other regions with list of captured variables.
Currently all variables used in OpenMP regions are captured into a record and passed to outlined functions in this record. It may result in some poor performance because of too complex analysis later in optimization passes. Patch makes to emit outlined functions for parallel-based regions with a list of captured variables. It reduces code for 2*n GEPs, stores and loads at least.
Codegen for task-based regions remains unchanged because runtime requires that all captured variables are passed in captured record.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@247251 91177308-0d34-0410-b5e6-96231b3b80d8