]> granicus.if.org Git - clang/log
clang
8 years agoDecorating vptr load & stores with !invariant.group
Piotr Padlewski [Tue, 15 Sep 2015 21:46:55 +0000 (21:46 +0000)]
Decorating vptr load & stores with !invariant.group

Adding !invariant.group to vptr load/stores for devirtualization purposes.
For more goto:
http://lists.llvm.org/pipermail/cfe-dev/2015-July/044227.html

http://reviews.llvm.org/D12026

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

8 years agoAdded llvm.module flag for strict vtable pointers
Piotr Padlewski [Tue, 15 Sep 2015 21:46:50 +0000 (21:46 +0000)]
Added llvm.module flag for strict vtable pointers

It is dangerous to do LTO on code with strict-vtable-pointers, because
one module has invariant.group.barriers, and the other one not.

In the future I want to just strip all invariant.group metadata from
vptrs loads/stores and get rid of invariant.group.barrier calls.

http://reviews.llvm.org/D12580

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

8 years agoEmiting llvm.invariant.group.barrier when dynamic type changes
Piotr Padlewski [Tue, 15 Sep 2015 21:46:47 +0000 (21:46 +0000)]
Emiting llvm.invariant.group.barrier when dynamic type changes

For more goto:
http://lists.llvm.org/pipermail/cfe-dev/2015-July/044227.html

http://reviews.llvm.org/D12312

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

8 years agoMS ABI: Don't allow dllexport/import on lambdas
Hans Wennborg [Tue, 15 Sep 2015 21:05:30 +0000 (21:05 +0000)]
MS ABI: Don't allow dllexport/import on lambdas

This is to follow up on David's comment in
http://reviews.llvm.org/D12422#235509

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

8 years agoAdd test coverage for @encode(SEL); completely untested until now.
Nico Weber [Tue, 15 Sep 2015 20:05:20 +0000 (20:05 +0000)]
Add test coverage for @encode(SEL); completely untested until now.

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

8 years agoAllow static local variables specified on data-sharing attribute clauses.
Kelvin Li [Tue, 15 Sep 2015 18:56:58 +0000 (18:56 +0000)]
Allow static local variables specified on data-sharing attribute clauses.

http://reviews.llvm.org/D11619

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

8 years ago[modules] Make sure we make hidden UsingShadowDecls visible to redeclaration
Richard Smith [Tue, 15 Sep 2015 18:51:56 +0000 (18:51 +0000)]
[modules] Make sure we make hidden UsingShadowDecls visible to redeclaration
lookup for the UsingShadowDecls themselves.

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

8 years agoRebase tests after LLVM r247707.
Nico Weber [Tue, 15 Sep 2015 18:49:51 +0000 (18:49 +0000)]
Rebase tests after LLVM r247707.

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

8 years ago[OPENMP] Emit an additional note during analysis of 'if' clause.
Alexey Bataev [Tue, 15 Sep 2015 17:23:56 +0000 (17:23 +0000)]
[OPENMP] Emit an additional note during analysis of 'if' clause.
Patch adds emission of additional note for 'if' clauses with name modifiers in case if 'if' clause without name modified was specified or 'if' clause with the same name modifier was specified.

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

8 years agoRevert r247692: Replace Triple with a new TargetTuple in MCTargetDesc/* and related...
Daniel Sanders [Tue, 15 Sep 2015 16:17:27 +0000 (16:17 +0000)]
Revert r247692: Replace Triple with a new TargetTuple in MCTargetDesc/* and related. NFC.

Eric has replied and has demanded the patch be reverted.

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

8 years agoMention that libcxx is required to build Compiler-RT tests on OS X.
Yury Gribov [Tue, 15 Sep 2015 15:05:47 +0000 (15:05 +0000)]
Mention that libcxx is required to build Compiler-RT tests on OS X.

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

8 years agoSilencing a -Wreturn-type warning; NFC.
Aaron Ballman [Tue, 15 Sep 2015 14:11:32 +0000 (14:11 +0000)]
Silencing a -Wreturn-type warning; NFC.

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

8 years agoRe-commit r247683: Replace Triple with a new TargetTuple in MCTargetDesc/* and relate...
Daniel Sanders [Tue, 15 Sep 2015 14:08:28 +0000 (14:08 +0000)]
Re-commit r247683: Replace Triple with a new TargetTuple in MCTargetDesc/* and related. NFC.

Summary:
This is the first patch in the series to migrate Triple's (which are ambiguous)
to TargetTuple's (which aren't).

For the moment, TargetTuple simply passes all requests to the Triple object it
holds. Once it has replaced Triple, it will start to implement the interface in
a more suitable way.

This change makes some changes to the public C++ API. In particular,
InitMCSubtargetInfo(), createMCRelocationInfo(), and createMCSymbolizer()
now take TargetTuples instead of Triples. The other public C++ API's have
been left as-is for the moment to reduce patch size.

This commit also contains a trivial patch to clang to account for the C++ API
change. Thanks go to Pavel Labath for fixing LLDB for me.

Reviewers: rengolin

Subscribers: jyknight, dschuff, arsenm, rampitec, danalbert, srhines, javed.absar, dsanders, echristo, emaste, jholewinski, tberghammer, ted, jfb, llvm-commits, rengolin

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

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

8 years agoRevert r247684 - Replace Triple with a new TargetTuple ...
Daniel Sanders [Tue, 15 Sep 2015 13:46:21 +0000 (13:46 +0000)]
Revert r247684 - Replace Triple with a new TargetTuple ...

LLDB needs to be updated in the same commit.

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

8 years agoReplace Triple with a new TargetTuple in MCTargetDesc/* and related. NFC.
Daniel Sanders [Tue, 15 Sep 2015 13:17:40 +0000 (13:17 +0000)]
Replace Triple with a new TargetTuple in MCTargetDesc/* and related. NFC.

Summary:
This is the first patch in the series to migrate Triple's (which are ambiguous)
to TargetTuple's (which aren't).

For the moment, TargetTuple simply passes all requests to the Triple object it
holds. Once it has replaced Triple, it will start to implement the interface in
a more suitable way.

This change makes some changes to the public C++ API. In particular,
InitMCSubtargetInfo(), createMCRelocationInfo(), and createMCSymbolizer()
now take TargetTuples instead of Triples. The other public C++ API's have
been left as-is for the moment to reduce patch size.

This commit also contains a trivial patch to clang to account for the C++ API
change.

Reviewers: rengolin

Subscribers: jyknight, dschuff, arsenm, rampitec, danalbert, srhines, javed.absar, dsanders, echristo, emaste, jholewinski, tberghammer, ted, jfb, llvm-commits, rengolin

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

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

8 years ago[OPENMP] Emit __kmpc_cancel_barrier() and code for 'cancellation point' only if ...
Alexey Bataev [Tue, 15 Sep 2015 12:52:43 +0000 (12:52 +0000)]
[OPENMP] Emit __kmpc_cancel_barrier() and code for 'cancellation point' only if 'cancel' is found.
Patch improves codegen for OpenMP constructs. If the OpenMP region does not have internal 'cancel' construct, a call to 'void __kmpc_barrier()' runtime function is generated for all implicit/explicit barriers. If the region has inner 'cancel' directive, then
```
if (__kmpc_cancel_barrier())
  exit from outer construct;
```
code is generated.
Also, the code for 'canellation point' directive is not generated if parent directive does not have 'cancel' directive.

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

8 years agoRun clang-format to unify the switch statement style as suggest here: http://reviews...
Alexey Bader [Tue, 15 Sep 2015 12:18:29 +0000 (12:18 +0000)]
Run clang-format to unify the switch statement style as suggest here: http://reviews.llvm.org/D12855#246073.

NFC.

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

8 years ago[OpenCL] Add new types for OpenCL 2.0.
Alexey Bader [Tue, 15 Sep 2015 11:18:52 +0000 (11:18 +0000)]
[OpenCL] Add new types for OpenCL 2.0.

Patch by Pedro Ferreira.
Reviewers: pekka.jaaskelainen
Differential Revision: http://reviews.llvm.org/D12855

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

8 years agoDoxygen fix InitializeBuiltins -> initializeBuiltins
Ismail Donmez [Tue, 15 Sep 2015 09:53:14 +0000 (09:53 +0000)]
Doxygen fix InitializeBuiltins -> initializeBuiltins

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

8 years agoMake clang/test/CodeGen/catch-undef-behavior.c* capable of -Asserts with "opt -instna...
NAKAMURA Takumi [Tue, 15 Sep 2015 09:50:24 +0000 (09:50 +0000)]
Make clang/test/CodeGen/catch-undef-behavior.c* capable of -Asserts with "opt -instnamer".

It reverts r231717.

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

8 years ago[analyzer] Restore behavior change introduced by r247657.
Devin Coughlin [Tue, 15 Sep 2015 03:28:27 +0000 (03:28 +0000)]
[analyzer] Restore behavior change introduced by r247657.

r247657 fixed warnings about unused variables when compiling without asserts
but changed behavior. This commit restores the old behavior but still suppresses
the warnings.

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

8 years ago[MS ABI] Restore our warning for overwide bitfields using the MS ABI
David Majnemer [Tue, 15 Sep 2015 02:36:41 +0000 (02:36 +0000)]
[MS ABI] Restore our warning for overwide bitfields using the MS ABI

This restores a diagnostic lost in r247651.

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

8 years agoExprEngineObjC.cpp: Fix warnings. [-Wunused-variable]
NAKAMURA Takumi [Tue, 15 Sep 2015 01:53:27 +0000 (01:53 +0000)]
ExprEngineObjC.cpp: Fix warnings. [-Wunused-variable]

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

8 years agoItaniumCXXABI.cpp: Fix a warning. [-Wunused-variable]
NAKAMURA Takumi [Tue, 15 Sep 2015 01:39:27 +0000 (01:39 +0000)]
ItaniumCXXABI.cpp: Fix a warning. [-Wunused-variable]

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

8 years ago[modules] A using-declaration doesn't introduce a new entity, just a new name
Richard Smith [Tue, 15 Sep 2015 01:28:55 +0000 (01:28 +0000)]
[modules] A using-declaration doesn't introduce a new entity, just a new name
for an existing entity, and as such a using-declaration doesn't need to
conflict with a hidden entity (nor vice versa).

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

8 years ago[analyzer] Skip Pre/Post handlers for ObjC calls when receiver is nil.
Devin Coughlin [Tue, 15 Sep 2015 01:13:53 +0000 (01:13 +0000)]
[analyzer] Skip Pre/Post handlers for ObjC calls when receiver is nil.

In Objective-C, method calls with nil receivers are essentially no-ops. They
do not fault (although the returned value may be garbage depending on the
declared return type and architecture). Programmers are aware of this
behavior and will complain about a false alarm when the analyzer
diagnoses API violations for method calls when the receiver is known to
be nil.

Rather than require each individual checker to be aware of this behavior
and suppress a warning when the receiver is nil, this commit
changes ExprEngineObjC so that VisitObjCMessage skips calling checker
pre/post handlers when the receiver is definitely nil. Instead, it adds a
new event, ObjCMessageNil, that is only called in that case.

The CallAndMessageChecker explicitly cares about this case, so I've changed it
to add a callback for ObjCMessageNil and moved the logic in PreObjCMessage
that handles nil receivers to the new callback.

rdar://problem/18092611

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

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

8 years ago[MS ABI] Overwide bool bitfields should be permitted
David Majnemer [Tue, 15 Sep 2015 01:00:55 +0000 (01:00 +0000)]
[MS ABI] Overwide bool bitfields should be permitted

Overwide bool bitfields have eight bits of storage size, make sure we
take the padding into account when determining whether or not they are
problematic.

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

8 years agosmall test bugfix
Piotr Padlewski [Tue, 15 Sep 2015 00:55:29 +0000 (00:55 +0000)]
small test bugfix

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

8 years agoGenerating assumption loads of vptr after ctor call (fixed)
Piotr Padlewski [Tue, 15 Sep 2015 00:37:06 +0000 (00:37 +0000)]
Generating assumption loads of vptr after ctor call (fixed)

Generating call assume(icmp %vtable, %global_vtable) after constructor
call for devirtualization purposes.

For more info go to:
http://lists.llvm.org/pipermail/cfe-dev/2015-July/044227.html

Edit:
Fixed version because of PR24479 and other bug caused in chrome.
After this patch got reverted because of ScalarEvolution bug (D12719)
Merged after John McCall big patch (Added Address).

http://reviews.llvm.org/D11859
http://reviews.llvm.org/D12865

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

8 years agoPrevent implicit re-interpret casts between ExtVector and Scalar types.
Stephen Canon [Tue, 15 Sep 2015 00:21:56 +0000 (00:21 +0000)]
Prevent implicit re-interpret casts between ExtVector and Scalar types.

Previously, in certain cases lax vector conversions could occur between scalar floating-point values and ExtVector types; these conversions would be simple bitcasts.  We need to allow them with other vector types to support some common headers, but we don't need them for ExtVector.  Preventing them here makes them behave like other operations involving scalars and ExtVectors.

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

8 years agoclang/test/CodeGenCXX/2009-04-23-bool2.cpp: Avoid -mms-bitfields to add explicit...
NAKAMURA Takumi [Mon, 14 Sep 2015 23:50:08 +0000 (23:50 +0000)]
clang/test/CodeGenCXX/2009-04-23-bool2.cpp: Avoid -mms-bitfields to add explicit triple.

FIXME: Better way to cancel -mms-bitfields?

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

8 years ago[Solaris] Default to -fno-cxa-finalize.
Rafael Espindola [Mon, 14 Sep 2015 23:21:31 +0000 (23:21 +0000)]
[Solaris] Default to -fno-cxa-finalize.

There is no __cxa_finalize symbol available on recent Solaris OS
versions, so we need this flag to make non trivial C++ programs run.

Also stop looking for cxa_finalize.o, since it won't be there.

Patch by Xan López!

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

8 years ago[WebAssembly] Define the atomic type sizes
Dan Gohman [Mon, 14 Sep 2015 21:56:37 +0000 (21:56 +0000)]
[WebAssembly] Define the atomic type sizes

WebAssembly's spec has now been updated to specify some guarantees
about lock free atomic accesses. Update clang to match.

This also updates sig_atomic_t to be 64-bit on wasm64. WebAssembly
does not presently have asynchronous interrupts, but this change is
within the spirit of how they will work if they are added.

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

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

8 years ago[WebAssembly] Simplify code by avoiding duplicating the default behavior.
Dan Gohman [Mon, 14 Sep 2015 21:54:32 +0000 (21:54 +0000)]
[WebAssembly] Simplify code by avoiding duplicating the default behavior.

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

8 years ago[WebAssembly] Use "long long" for int_fast64_t and int_least64_t on wasm64
Dan Gohman [Mon, 14 Sep 2015 21:49:41 +0000 (21:49 +0000)]
[WebAssembly] Use "long long" for int_fast64_t and int_least64_t on wasm64

This makes int_fast64_t and int_least64_t the same type as int64_t, and
eliminates a difference between wasm32 and wasm64.

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

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

8 years agoRevert "Always_inline codegen rewrite" and 2 follow-ups.
Evgeniy Stepanov [Mon, 14 Sep 2015 21:35:16 +0000 (21:35 +0000)]
Revert "Always_inline codegen rewrite" and 2 follow-ups.

Revert "Update cxx-irgen.cpp test to allow signext in alwaysinline functions."
Revert "[CodeGen] Remove wrapper-free always_inline functions from COMDATs"
Revert "Always_inline codegen rewrite."

Reason for revert: PR24793.

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

8 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

8 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

8 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

8 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

8 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

8 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

8 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

8 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

8 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

8 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

8 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

8 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

8 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

8 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

8 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

8 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

8 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

8 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

8 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

8 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

8 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

8 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

8 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

8 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

8 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

8 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

8 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

8 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

8 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

8 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

8 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

8 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

8 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

8 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

8 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

8 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

8 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

8 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

8 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

8 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

8 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

8 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

8 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

8 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

8 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

8 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

8 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

8 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

8 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

8 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

8 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

8 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

8 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

8 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

8 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

8 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

8 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

8 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

8 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

8 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

8 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

8 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

8 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

8 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