]>
granicus.if.org Git - clang/log
DeLesley Hutchins [Fri, 2 Mar 2012 23:36:05 +0000 (23:36 +0000)]
Thread safety analysis: expand set of expressions that can be used to denote locks.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151956
91177308 -0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Fri, 2 Mar 2012 23:27:11 +0000 (23:27 +0000)]
Reinstate r151879, r151880, reverted in r151922, along with a bugfix for
scalar emission of DeclRefExprs to const bools: emit scalar bools as i1,
not as i8.
In addition to the extra unit testing, this has successfully bootstrapped.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151955
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anna Zaks [Fri, 2 Mar 2012 23:18:45 +0000 (23:18 +0000)]
Unbreak the CMake builds following the CallGraph change.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151952
91177308 -0d34-0410-b5e6-
96231b3b80d8
Nico Weber [Fri, 2 Mar 2012 23:01:20 +0000 (23:01 +0000)]
Add a test for the -Wstring-plus-int fixit note.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151951
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anna Zaks [Fri, 2 Mar 2012 22:54:36 +0000 (22:54 +0000)]
[analyzer] Rename clang::CallGraph into clang::idx::CallGraph + rename
the corresponding files to avoid confusion.
This is a preparation to adding an AST-based call graph to Analysis. The
existing call graph works with indexer entries. We might be able to
refactor it to use the AST based graph in the future.
(Minimal testing here as the only example that uses the API has been
completely broken, does not compile.)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151950
91177308 -0d34-0410-b5e6-
96231b3b80d8
Aaron Ballman [Fri, 2 Mar 2012 22:51:54 +0000 (22:51 +0000)]
Adding support for #pragma include_alias in MS compatibility mode. This implements PR 10705.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151949
91177308 -0d34-0410-b5e6-
96231b3b80d8
DeLesley Hutchins [Fri, 2 Mar 2012 22:29:50 +0000 (22:29 +0000)]
Issue warning when late-parsed attributes have no declaration.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151947
91177308 -0d34-0410-b5e6-
96231b3b80d8
DeLesley Hutchins [Fri, 2 Mar 2012 22:12:59 +0000 (22:12 +0000)]
Make late-parsed attributes follow the conventions of ordinary
GNU attributes to a better extent, by allowing them in more
places on a declator.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151945
91177308 -0d34-0410-b5e6-
96231b3b80d8
DeLesley Hutchins [Fri, 2 Mar 2012 22:02:58 +0000 (22:02 +0000)]
Thread safety analysis: handle CFG blocks which call functions marked as noreturn.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151944
91177308 -0d34-0410-b5e6-
96231b3b80d8
Nico Weber [Fri, 2 Mar 2012 22:01:22 +0000 (22:01 +0000)]
Add -Wstring-plus-int, which warns on "str" + int and int + "str".
It doesn't warn if the integer is known at compile time and within
the bounds of the string.
Discussion: http://comments.gmane.org/gmane.comp.compilers.clang.scm/47203
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151943
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Fri, 2 Mar 2012 21:50:02 +0000 (21:50 +0000)]
objc: When issue diagnostic about deprecated method, also
issue the note if it is because message is sent to a forward class
declaration in delayed diagnostic. // rdar://
10290322
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151942
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Fri, 2 Mar 2012 21:16:22 +0000 (21:16 +0000)]
[analyzer diagnostics] flush locations *before* popping the current path when visiting a CallEnter.
Fixes <rdar://problem/
10967815 >
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151938
91177308 -0d34-0410-b5e6-
96231b3b80d8
Hal Finkel [Fri, 2 Mar 2012 20:54:36 +0000 (20:54 +0000)]
Fix an ABI problem with ptrdiff_t and intptr_t on PPC32
ptrdiff_t on PPC32 on Linux, etc. should be int not long.
This does not matter for C, but it does matter for C++ because of
name mangling.
The preprocessor test has been changed accordingly.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151935
91177308 -0d34-0410-b5e6-
96231b3b80d8
Nico Weber [Fri, 2 Mar 2012 20:23:08 +0000 (20:23 +0000)]
Move int<->pointer conversion warnings behind -Wint-conversions.
This is consistent with -Wbool-conversion. Let me know if you prefer
a different flag name.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151934
91177308 -0d34-0410-b5e6-
96231b3b80d8
Argyrios Kyrtzidis [Fri, 2 Mar 2012 19:14:29 +0000 (19:14 +0000)]
[Sema] Fix crash-on-invalid-code issue:
@class I;
@implementation I(cat) // crashes here
@end
rdar://
10968158
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151931
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anna Zaks [Fri, 2 Mar 2012 19:05:03 +0000 (19:05 +0000)]
[analyzer] Bound the size of the functions being inlined + provide
command line options for inlining tuning.
This adds the option for stack depth bound as well as function size
bound.
+ minor doxygenification
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151930
91177308 -0d34-0410-b5e6-
96231b3b80d8
Jay Foad [Fri, 2 Mar 2012 18:34:30 +0000 (18:34 +0000)]
PR12094: Set the alignment of memory intrinsic instructions based on the
types of the pointer arguments.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151927
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Fri, 2 Mar 2012 17:05:03 +0000 (17:05 +0000)]
Change diagnostic test for my last patch.
// rdar://
10961370
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151923
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Fri, 2 Mar 2012 16:24:25 +0000 (16:24 +0000)]
Revert r151879, r151880, "PR12145: Avoid emitting loads of constexpr variables in contexts where there" and "Fix buildbot: make this test less dependent on the value names in the produced IR."
They broke bootstrap.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151922
91177308 -0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Fri, 2 Mar 2012 16:06:37 +0000 (16:06 +0000)]
Use tabs instead of spaces.
No, really, make doesn't work with spaces.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151920
91177308 -0d34-0410-b5e6-
96231b3b80d8
Jia Liu [Fri, 2 Mar 2012 14:37:41 +0000 (14:37 +0000)]
clang -v support for separate clang.git and llvm.git, patch by Andrew Trick.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151910
91177308 -0d34-0410-b5e6-
96231b3b80d8
David Chisnall [Fri, 2 Mar 2012 10:49:52 +0000 (10:49 +0000)]
Add the Solaris support directory to the header search when using libc++.
Unconditionally define __C99FEATURES__ when using C++ on Solaris. This is a
(hopefully temporary) work around for libc++ exposing C99-but-not-C++98
features in C++98 mode.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151889
91177308 -0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Fri, 2 Mar 2012 04:14:40 +0000 (04:14 +0000)]
Ensure that we instantiate static reference data members of class templates
early, since their values can be used in constant expressions in C++11. For
odr-use checking, the opposite change is required, since references are
odr-used whether or not they satisfy the requirements for appearing in a
constant expression.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151881
91177308 -0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Fri, 2 Mar 2012 03:22:38 +0000 (03:22 +0000)]
Fix buildbot: make this test less dependent on the value names in the produced IR.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151880
91177308 -0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Fri, 2 Mar 2012 03:16:32 +0000 (03:16 +0000)]
PR12145: Avoid emitting loads of constexpr variables in contexts where there
is no odr-use of the variable. Go slightly beyond what the standard requires
for variables of reference type.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151879
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Fri, 2 Mar 2012 01:27:31 +0000 (01:27 +0000)]
[analyzer diagnostics] Change CompactPathDiagnostic to recursively compact diagnostics in calls into macro pieces.
Also fix handling of macros within calls in the HTMLDiagnostics.
This also adds a test case for r151774.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151872
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Thu, 1 Mar 2012 23:42:00 +0000 (23:42 +0000)]
c/objc: problem originally reported as an objective-c bug.
But it is in the underlying c part of clang. clang crashes
in IRGen when passing an incomplete type argument to
variadic function (instead of diagnosing the bug).
// rdar://
10961370
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151862
91177308 -0d34-0410-b5e6-
96231b3b80d8
Kostya Serebryany [Thu, 1 Mar 2012 23:14:19 +0000 (23:14 +0000)]
add documentation for -f[no-]thread-sanitizer and -f[no-]address-sanitizer to docs/UsersManual.html
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151858
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Thu, 1 Mar 2012 23:06:04 +0000 (23:06 +0000)]
Teach the analyzer to just ignore CXXBindTemporaryExpr. There's nothing special to do with it, since destructors are represented explicitly in the CFG.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151856
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Thu, 1 Mar 2012 22:53:32 +0000 (22:53 +0000)]
Moving tagging of '__experimental_modules_import' IdentifierInfo out of
IndentifierTable::get() and into IdentifierTable's constructor.
This gets a 0.7% reducing on lexing time for Cocoa.h, and
about the same for PCH generation.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151854
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Thu, 1 Mar 2012 22:52:28 +0000 (22:52 +0000)]
Make CodeGenFunction::EmitBlockCopyAndAutorelease actually do what its name says.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151853
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Thu, 1 Mar 2012 22:49:10 +0000 (22:49 +0000)]
Update test for llvm assembly output change. Also add a fixme that this
shouldn't be relying on assembly emission.
For the record we should check the metadata output from the front
end and then check in the backend that such a thing emits a pubtypes
entry.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151851
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anna Zaks [Thu, 1 Mar 2012 22:37:46 +0000 (22:37 +0000)]
[analyzer] Turn inlining on by default for better testing exposure.
Fix a test, which was most likely an unintended recursive call.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151848
91177308 -0d34-0410-b5e6-
96231b3b80d8
Kostya Serebryany [Thu, 1 Mar 2012 22:27:08 +0000 (22:27 +0000)]
Add a flag -fthread-sanitizer.
This flag enables ThreadSanitizer instrumentation committed to llvm as r150423.
The patch includes one test for -fthread-sanitizer and one similar test for -faddress-sanitizer.
This patch does not modify the linker flags (as we do it for -faddress-sanitizer) because the run-time library is not yet
committed and it's structure in compiler-rt is not 100% clear.
The users manual wil be changed in a separate commit.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151846
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Thu, 1 Mar 2012 22:07:04 +0000 (22:07 +0000)]
Change @import to @__experimental_modules_import. We are not ready to commit to a particular syntax for modules,
and don't have time to push it forward in the near future.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151841
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anna Zaks [Thu, 1 Mar 2012 22:06:06 +0000 (22:06 +0000)]
[analyzer] Fix a regression introduced in malloc with
attributes, introduced in r151188.
+ the test to catch it.
Thanks to Ahmed Charles for pointing this out.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151840
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Thu, 1 Mar 2012 21:36:52 +0000 (21:36 +0000)]
Reapply r151702 with a small fix for a failure to cut and paste
correctly.
Still rdar://
10900684
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151838
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Thu, 1 Mar 2012 21:32:56 +0000 (21:32 +0000)]
Fix the isReferenced bit on parameters in a couple of edge cases. PR12153.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151837
91177308 -0d34-0410-b5e6-
96231b3b80d8
Argyrios Kyrtzidis [Thu, 1 Mar 2012 19:47:26 +0000 (19:47 +0000)]
Remove test/Sema/many-logical-ops.c since it fails in linux variants.
Will bring it up once the issue is fixed properely.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151830
91177308 -0d34-0410-b5e6-
96231b3b80d8
Argyrios Kyrtzidis [Thu, 1 Mar 2012 19:45:56 +0000 (19:45 +0000)]
Move llvm/ADT/SaveAndRestore.h -> llvm/Support/SaveAndRestore.h.
Needs llvm update.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151829
91177308 -0d34-0410-b5e6-
96231b3b80d8
Jean-Daniel Dupas [Thu, 1 Mar 2012 17:45:53 +0000 (17:45 +0000)]
Merge __has_attribute tests. Patch by Jonathan Sauer!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151819
91177308 -0d34-0410-b5e6-
96231b3b80d8
Peter Collingbourne [Thu, 1 Mar 2012 16:34:31 +0000 (16:34 +0000)]
StmtProfiler: Add a null check for child statements.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151812
91177308 -0d34-0410-b5e6-
96231b3b80d8
Jean-Daniel Dupas [Thu, 1 Mar 2012 14:53:16 +0000 (14:53 +0000)]
Implement double underscore names support in __has_attribute
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151809
91177308 -0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Thu, 1 Mar 2012 07:10:06 +0000 (07:10 +0000)]
Avoid examining the AST from the parser, and simplify somewhat.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151805
91177308 -0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Thu, 1 Mar 2012 06:49:39 +0000 (06:49 +0000)]
Revert r151800, which was committed without review and has correctness issues.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151804
91177308 -0d34-0410-b5e6-
96231b3b80d8
Aaron Ballman [Thu, 1 Mar 2012 04:55:54 +0000 (04:55 +0000)]
Fixing a buildbot complaint about nested templates.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151803
91177308 -0d34-0410-b5e6-
96231b3b80d8
Aaron Ballman [Thu, 1 Mar 2012 04:18:49 +0000 (04:18 +0000)]
Implements support for #pragma include_alias in ms compatibility mode. Fixes PR10705.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151800
91177308 -0d34-0410-b5e6-
96231b3b80d8
Aaron Ballman [Thu, 1 Mar 2012 04:09:28 +0000 (04:09 +0000)]
Added support for parsing declspecs on enumerations. Fixes PR8783
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151798
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Thu, 1 Mar 2012 04:01:32 +0000 (04:01 +0000)]
Implement "optimization" for lambda-to-block conversion which inlines the generated block literal for lambdas which are immediately converted to block pointer type. This simplifies the AST, avoids an unnecessary copy of the lambda and makes it much easier to avoid copying the result onto the heap.
Note that this transformation has a substantial semantic effect outside of ARC: it gives the converted lambda lifetime semantics similar to a block literal. With ARC, the effect is much less obvious because the lifetime of blocks is already managed.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151797
91177308 -0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Thu, 1 Mar 2012 02:59:17 +0000 (02:59 +0000)]
Reject 'a = {0} = {0}' rather than parsing it as '(a = {0}) = {0}'. Also
improve the diagnostics for some attempts to use initializer lists in
expressions.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151794
91177308 -0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Thu, 1 Mar 2012 02:12:07 +0000 (02:12 +0000)]
Correct an example of a feature name to actually use a feature name rather
than an attribute name. Patch by Michel Morin!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151791
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Thu, 1 Mar 2012 01:40:32 +0000 (01:40 +0000)]
Fix regression from llvm-gcc where we should NOT emit a warning about __attribute__((NSObject)) on a property declaration. This is needed to have retain properties for non-object pointers. Fixes <rdar://problem/
10930507 >.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151786
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anna Zaks [Thu, 1 Mar 2012 01:30:58 +0000 (01:30 +0000)]
[analyzer] Diagnostics - do not try to cleanup the path with macros, it
will be done by the general cleanup later on.
A Patch by Ted.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151784
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Thu, 1 Mar 2012 01:30:04 +0000 (01:30 +0000)]
Tighten type-checking a bit to make it clearer how BuildCXXMemberCallExpr is used.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151783
91177308 -0d34-0410-b5e6-
96231b3b80d8
Nico Weber [Thu, 1 Mar 2012 00:13:46 +0000 (00:13 +0000)]
Move suport for redefining operator keywords from -fms-extensions to -fms-compatibility.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151776
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Thu, 1 Mar 2012 00:05:06 +0000 (00:05 +0000)]
Change if...else if...else if... to a switch.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151775
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Wed, 29 Feb 2012 23:59:20 +0000 (23:59 +0000)]
[analyzer] when scanning FIDs in a PathDiagnostic, correctly recurse calls and macros.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151774
91177308 -0d34-0410-b5e6-
96231b3b80d8
Nico Weber [Wed, 29 Feb 2012 22:54:43 +0000 (22:54 +0000)]
Allow operator keywords to be #defined in ms-ext mode.
Fixes PR10606.
I'm not sure if this is the best way to go about it, but
I locally enabled this code path without the msext conditional,
and all tests pass, except for test/Preprocessor/cxx_oper_keyword.cpp
which explicitly checks that operator keywords can't be redefined.
I also parsed chromium/win with a clang with and without this patch.
It introduced no new errors, but removes 43 existing errors.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151768
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Wed, 29 Feb 2012 22:21:36 +0000 (22:21 +0000)]
Test for my last patch. // rdar://
10267155 .
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151767
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Wed, 29 Feb 2012 22:18:55 +0000 (22:18 +0000)]
objective-c: provide fixit hint when atomic property does not
have matching user defined setter/getter and a warning is issued.
In this case, a fixit note is displayed. // rdar://
10267155
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151766
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Wed, 29 Feb 2012 20:59:56 +0000 (20:59 +0000)]
Fix a couple -Wuninitialized warnings from gcc. Reported by David Greene.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151754
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Wed, 29 Feb 2012 20:31:23 +0000 (20:31 +0000)]
Serialization: Switch over to using the native SmallVector based BitstreamWriter
ctor.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151752
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chad Rosier [Wed, 29 Feb 2012 20:18:57 +0000 (20:18 +0000)]
I referenced the incorrect rdar in my previous commit (r151745). Add the
correct radar number to the test case for tracking purposes.
rdar://
10551066
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151746
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chad Rosier [Wed, 29 Feb 2012 20:14:59 +0000 (20:14 +0000)]
Allocate TargetLibraryInfo for the CodeGen passes. Otherwise, it's instantiated
by the BAA pass, which uses the default TargetLibraryInfo constructor.
Unfortunately, the default TargetLibraryInfo constructor assumes all library
calls are available and thus ignores -fno-builtin.
rdar://
10947759
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151745
91177308 -0d34-0410-b5e6-
96231b3b80d8
Jason W Kim [Wed, 29 Feb 2012 19:12:10 +0000 (19:12 +0000)]
Reverting test commit
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151739
91177308 -0d34-0410-b5e6-
96231b3b80d8
Jason W Kim [Wed, 29 Feb 2012 19:08:25 +0000 (19:08 +0000)]
Test commit. Please ignore
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151738
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anna Zaks [Wed, 29 Feb 2012 18:42:47 +0000 (18:42 +0000)]
[analyzer] Malloc: A pointer might escape through CFContainers APIs,
funopen, setvbuf.
Teach the checker and the engine about these APIs to resolve malloc
false positives. As I am adding more of these APIs, it is clear that all
this should be factored out into a separate callback (for example,
region escapes). Malloc, KeyChainAPI and RetainRelease checkers could
all use it.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151737
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Wed, 29 Feb 2012 16:28:29 +0000 (16:28 +0000)]
Revert r151702, "Add support for handling captured variables in lambda debug
info.", which broke some -O0 -g tests.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151730
91177308 -0d34-0410-b5e6-
96231b3b80d8
David Chisnall [Wed, 29 Feb 2012 15:06:12 +0000 (15:06 +0000)]
Add -C when linking on Solaris so that the error messages are understandable by actual humans.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151726
91177308 -0d34-0410-b5e6-
96231b3b80d8
Sebastian Redl [Wed, 29 Feb 2012 12:47:43 +0000 (12:47 +0000)]
Tentatively fix PR12117. The test case from the bug now passes, and all existing tests still pass, but there may still be corner cases.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151716
91177308 -0d34-0410-b5e6-
96231b3b80d8
James Molloy [Wed, 29 Feb 2012 10:24:19 +0000 (10:24 +0000)]
Reapply r151638 and r151641.
The bug that was caught by Apple's internal buildbots was valid and also showed another bug in my implementation.
These are now fixed, with regression tests added to catch them both (not Darwin-specific).
Original log:
====================
Revert r151638 because it causes assertion hit on PCH creation for Cocoa.h
Original log:
---------------------
Correctly track tags and enum members defined in the prototype of a function, and ensure they are properly scoped.
This fixes code such as:
enum e {x, y};
int f(enum {y, x} n) {
return 0;
}
This finally fixes PR5464 and PR5477.
---------------------
I also reverted r151641 which was enhancement on top of r151638.
====================
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151712
91177308 -0d34-0410-b5e6-
96231b3b80d8
Erik Verbruggen [Wed, 29 Feb 2012 08:42:57 +0000 (08:42 +0000)]
Remove a recursive visitiation in ExprEngine that is no longer needed
because the CFG is fully linearized.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151711
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Wed, 29 Feb 2012 06:05:28 +0000 (06:05 +0000)]
[analyzer] Tweak the UnreachableCode checker to not warning about unreachable default blocks. Patch by Cyril Roelandt!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151709
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Wed, 29 Feb 2012 04:03:55 +0000 (04:03 +0000)]
A couple minor bug-fixes for template instantiation for expressions which are sometimes potentially evaluated.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151707
91177308 -0d34-0410-b5e6-
96231b3b80d8
Argyrios Kyrtzidis [Wed, 29 Feb 2012 03:43:52 +0000 (03:43 +0000)]
[driver] Emit an error when trying to use ARC on macosx earlier than 10.6
rdar://
10459258
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151706
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Wed, 29 Feb 2012 03:25:30 +0000 (03:25 +0000)]
Add support for handling captured variables in lambda debug info.
This currently doesn't handle capturing the 'this' pointer for any
enclosing class.
Steal the lambda-expressions.cpp testcase and debugify it and try
to use more variables to proof it against random changes.
Part of rdar://
10900684
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151702
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Wed, 29 Feb 2012 03:25:27 +0000 (03:25 +0000)]
Add some iterators for grabbing lambda expression contexts.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151701
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Wed, 29 Feb 2012 03:25:18 +0000 (03:25 +0000)]
Formatting.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151700
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Wed, 29 Feb 2012 03:16:56 +0000 (03:16 +0000)]
Make the odr-use logic work correctly for constant-expressions. PR12006.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151699
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Wed, 29 Feb 2012 03:04:05 +0000 (03:04 +0000)]
Sema/ObjC: Override search can generate a large search list, bump the base size
of the SmallPtrSet way up to avoid commonly reallocating the buffer size.
- I didn't see a good argument against it, so I bumped the limit to cover the
max size we see during parsing Cocoa.h.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151698
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Wed, 29 Feb 2012 02:39:13 +0000 (02:39 +0000)]
ASTWriter: Cache some DenseMaps we use repeatedly.
- This reduces our total # of allocations building a PCH for Cocoa.h by almost
a whopping 50%.
- A SmallPtrMap would be cleaner, but since we don't have one yet...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151697
91177308 -0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Wed, 29 Feb 2012 02:04:39 +0000 (02:04 +0000)]
clang/test/Analysis/stats.c: Fix up r151656.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151695
91177308 -0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Wed, 29 Feb 2012 01:50:38 +0000 (01:50 +0000)]
clang/test/Analysis/stats.c: Mark this as XFAIL: mingw32.
FIXME: Could we guarantee not to get stack overflow also on mingw?
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151692
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Wed, 29 Feb 2012 01:38:22 +0000 (01:38 +0000)]
Parse: Change PragmaPackHandler to use the preprocessor allocator.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151689
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Wed, 29 Feb 2012 00:26:20 +0000 (00:26 +0000)]
objective-c modern translator. Fixes misc. bug in writing
the ivar offset symbol.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151683
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Wed, 29 Feb 2012 00:20:42 +0000 (00:20 +0000)]
Remove stray semi-colon.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151682
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Wed, 29 Feb 2012 00:00:28 +0000 (00:00 +0000)]
Make sure list-initialization of arrays works correctly in explicit type conversions. PR12121.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151674
91177308 -0d34-0410-b5e6-
96231b3b80d8
Argyrios Kyrtzidis [Tue, 28 Feb 2012 23:39:24 +0000 (23:39 +0000)]
[libclang] Add a test I forgot to commit.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151669
91177308 -0d34-0410-b5e6-
96231b3b80d8
Argyrios Kyrtzidis [Tue, 28 Feb 2012 23:39:20 +0000 (23:39 +0000)]
[PCH] Include a darwin-only PCH test on Cocoa.h.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151668
91177308 -0d34-0410-b5e6-
96231b3b80d8
Argyrios Kyrtzidis [Tue, 28 Feb 2012 23:39:14 +0000 (23:39 +0000)]
Revert r151638 because it causes assertion hit on PCH creation for Cocoa.h
Original log:
---------------------
Correctly track tags and enum members defined in the prototype of a function, and ensure they are properly scoped.
This fixes code such as:
enum e {x, y};
int f(enum {y, x} n) {
return 0;
}
This finally fixes PR5464 and PR5477.
---------------------
I also reverted r151641 which was enhancement on top of r151638.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151667
91177308 -0d34-0410-b5e6-
96231b3b80d8
Sebastian Redl [Tue, 28 Feb 2012 23:36:38 +0000 (23:36 +0000)]
Single- and zero-element initializer lists to scalars are list-initializations. Fixes PR12118.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151666
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Tue, 28 Feb 2012 23:27:39 +0000 (23:27 +0000)]
[analyzer diagnostics] Refactor filtration for PathDiagnosticConsumers that don't support cross-file diagnostics
into a common place. Currently enable this filtration for Plist diagnostics as well.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151664
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Tue, 28 Feb 2012 23:06:21 +0000 (23:06 +0000)]
[analyzer diagnostics] start prototyping stripping PathDiagnostics of unnecessary cruft caused by path inlining.
This introduces a concept of a "prunable" PathDiagnosticEvent. Currently this is a flag, but
we may evolve the concept to make this more dynamically inferred.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151663
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Tue, 28 Feb 2012 22:45:07 +0000 (22:45 +0000)]
Modern objective-c translator. rewriting ivars of aggregate type.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151662
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anna Zaks [Tue, 28 Feb 2012 22:39:22 +0000 (22:39 +0000)]
[analyzer] Leaks should be uniqued by the allocation point in the
closest function context (RetainCountChecker).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151661
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Tue, 28 Feb 2012 22:07:56 +0000 (22:07 +0000)]
Prefer bitcast+GEP over ptrtoint+sub+inttoptr: it's semantically equivalent here, and generally nicer to the optimizer.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151659
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anna Zaks [Tue, 28 Feb 2012 21:49:08 +0000 (21:49 +0000)]
[analyzer] Retain release: drop the line number info from the leak
message.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151657
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anna Zaks [Tue, 28 Feb 2012 21:49:04 +0000 (21:49 +0000)]
[analyzer] Stats: Add the stats about remove dead bindings, correct the
test.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151656
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chad Rosier [Tue, 28 Feb 2012 20:49:04 +0000 (20:49 +0000)]
[driver] Add support for -g2 and -ggdb debug flags.
rdar://
10947759
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151654
91177308 -0d34-0410-b5e6-
96231b3b80d8
David Chisnall [Tue, 28 Feb 2012 20:06:45 +0000 (20:06 +0000)]
Add -lm by default on Solaris.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151653
91177308 -0d34-0410-b5e6-
96231b3b80d8