Eli Friedman
5358a0ab5a
Avoid an unnecessary recursive loop between type canonicalization and NNS canonicalization which would (rarely) lead to memory corruption. While I'm here, simplify. Fixes PR12166. Not committing a testcase because it's impossible to reduce it.
...
llvm-svn: 151967
2012-03-03 04:09:56 +00:00
Ted Kremenek
868dbda367
[analyzer] do not warn about returning stack-allocated memory when it comes from an ancestor stack frame.
...
llvm-svn: 151964
2012-03-03 01:22:03 +00:00
Richard Smith
906ccc167c
Factor bitfields of LangOptions out into a base class in order to make them
...
trivially-copyable. 50KiB reduction in clang binary size.
llvm-svn: 151963
2012-03-03 00:52:40 +00:00
Daniel Dunbar
ae77b3dfad
Frontend: Default to creating output files using temporary files + rename.
...
- This is a more reliable default, as it behaves better on failure and also
ensures that we create *new* files (instead of reusing existing inodes). This
is useful for other applications (like lldb) which want to cache inode's to
know when a file has been rewritten.
llvm-svn: 151961
2012-03-03 00:36:06 +00:00
Daniel Dunbar
b9c62c0773
Frontend: Don't automatically create missing directories when using temporary files with createOutputFile()
...
- This would otherwise happen as a side effect of llvm::sys::fs::unique_file creating parent directories.
llvm-svn: 151960
2012-03-03 00:36:02 +00:00
DeLesley Hutchins
e2a3f75a12
Thread safety analysis: expand set of expressions that can be used to denote locks.
...
llvm-svn: 151956
2012-03-02 23:36:05 +00:00
Richard Smith
bc638767f8
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.
llvm-svn: 151955
2012-03-02 23:27:11 +00:00
Anna Zaks
b8b21e9b56
Unbreak the CMake builds following the CallGraph change.
...
llvm-svn: 151952
2012-03-02 23:18:45 +00:00
Nico Weber
9b9ebfc090
Add a test for the -Wstring-plus-int fixit note.
...
llvm-svn: 151951
2012-03-02 23:01:20 +00:00
Anna Zaks
fc5dfe9f7c
[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.)
llvm-svn: 151950
2012-03-02 22:54:36 +00:00
Aaron Ballman
611306eae6
Adding support for #pragma include_alias in MS compatibility mode. This implements PR 10705.
...
llvm-svn: 151949
2012-03-02 22:51:54 +00:00
DeLesley Hutchins
71d6103295
Issue warning when late-parsed attributes have no declaration.
...
llvm-svn: 151947
2012-03-02 22:29:50 +00:00
DeLesley Hutchins
bd2ee13e78
Make late-parsed attributes follow the conventions of ordinary
...
GNU attributes to a better extent, by allowing them in more
places on a declator.
llvm-svn: 151945
2012-03-02 22:12:59 +00:00
DeLesley Hutchins
a2587ef26d
Thread safety analysis: handle CFG blocks which call functions marked as noreturn.
...
llvm-svn: 151944
2012-03-02 22:02:58 +00:00
Nico Weber
ccec40d9b7
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
llvm-svn: 151943
2012-03-02 22:01:22 +00:00
Fariborz Jahanian
7923ef41e1
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
llvm-svn: 151942
2012-03-02 21:50:02 +00:00
Ted Kremenek
aa1f96add5
[analyzer diagnostics] flush locations *before* popping the current path when visiting a CallEnter.
...
Fixes <rdar://problem/10967815>
llvm-svn: 151938
2012-03-02 21:16:22 +00:00
Hal Finkel
2690838227
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.
llvm-svn: 151935
2012-03-02 20:54:36 +00:00
Nico Weber
99c07bc822
Move int<->pointer conversion warnings behind -Wint-conversions.
...
This is consistent with -Wbool-conversion. Let me know if you prefer
a different flag name.
llvm-svn: 151934
2012-03-02 20:23:08 +00:00
Argyrios Kyrtzidis
4af2cb3355
[Sema] Fix crash-on-invalid-code issue:
...
@class I;
@implementation I(cat) // crashes here
@end
rdar://10968158
llvm-svn: 151931
2012-03-02 19:14:29 +00:00
Anna Zaks
265087721a
[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
llvm-svn: 151930
2012-03-02 19:05:03 +00:00
Jay Foad
b0f3344b10
PR12094: Set the alignment of memory intrinsic instructions based on the
...
types of the pointer arguments.
llvm-svn: 151927
2012-03-02 18:34:30 +00:00
Fariborz Jahanian
bf48281c25
Change diagnostic test for my last patch.
...
// rdar://10961370
llvm-svn: 151923
2012-03-02 17:05:03 +00:00
Daniel Dunbar
d01281fe0d
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.
llvm-svn: 151922
2012-03-02 16:24:25 +00:00
Benjamin Kramer
8fe5fc8521
Use tabs instead of spaces.
...
No, really, make doesn't work with spaces.
llvm-svn: 151920
2012-03-02 16:06:37 +00:00
Jia Liu
5c302484e9
clang -v support for separate clang.git and llvm.git, patch by Andrew Trick.
...
llvm-svn: 151910
2012-03-02 14:37:41 +00:00
David Chisnall
e04307e47c
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.
llvm-svn: 151889
2012-03-02 10:49:52 +00:00
Richard Smith
35ecb36fcd
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.
llvm-svn: 151881
2012-03-02 04:14:40 +00:00
Richard Smith
545f38c3d2
Fix buildbot: make this test less dependent on the value names in the produced IR.
...
llvm-svn: 151880
2012-03-02 03:22:38 +00:00
Richard Smith
a541a3bbee
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.
llvm-svn: 151879
2012-03-02 03:16:32 +00:00
Ted Kremenek
f9e9d33019
[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.
llvm-svn: 151872
2012-03-02 01:27:31 +00:00
Fariborz Jahanian
3854a55a17
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
llvm-svn: 151862
2012-03-01 23:42:00 +00:00
Kostya Serebryany
b187449435
add documentation for -f[no-]thread-sanitizer and -f[no-]address-sanitizer to docs/UsersManual.html
...
llvm-svn: 151858
2012-03-01 23:14:19 +00:00
Ted Kremenek
57207d6074
Teach the analyzer to just ignore CXXBindTemporaryExpr. There's nothing special to do with it, since destructors are represented explicitly in the CFG.
...
llvm-svn: 151856
2012-03-01 23:06:04 +00:00
Ted Kremenek
9466603322
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.
llvm-svn: 151854
2012-03-01 22:53:32 +00:00
Eli Friedman
c4e5d0ccda
Make CodeGenFunction::EmitBlockCopyAndAutorelease actually do what its name says.
...
llvm-svn: 151853
2012-03-01 22:52:28 +00:00
Eric Christopher
5bc1f47b00
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.
llvm-svn: 151851
2012-03-01 22:49:10 +00:00
Anna Zaks
d5c3027473
[analyzer] Turn inlining on by default for better testing exposure.
...
Fix a test, which was most likely an unintended recursive call.
llvm-svn: 151848
2012-03-01 22:37:46 +00:00
Kostya Serebryany
28a7a1198b
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.
llvm-svn: 151846
2012-03-01 22:27:08 +00:00
Ted Kremenek
c1e4dd0e8e
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.
llvm-svn: 151841
2012-03-01 22:07:04 +00:00
Anna Zaks
8dc53af5dc
[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.
llvm-svn: 151840
2012-03-01 22:06:06 +00:00
Eric Christopher
4b6753cf10
Reapply r151702 with a small fix for a failure to cut and paste
...
correctly.
Still rdar://10900684
llvm-svn: 151838
2012-03-01 21:36:52 +00:00
Eli Friedman
23b1be991e
Fix the isReferenced bit on parameters in a couple of edge cases. PR12153.
...
llvm-svn: 151837
2012-03-01 21:32:56 +00:00
Argyrios Kyrtzidis
888d4a62fa
Remove test/Sema/many-logical-ops.c since it fails in linux variants.
...
Will bring it up once the issue is fixed properely.
llvm-svn: 151830
2012-03-01 19:47:26 +00:00
Argyrios Kyrtzidis
981a961d03
Move llvm/ADT/SaveAndRestore.h -> llvm/Support/SaveAndRestore.h.
...
Needs llvm update.
llvm-svn: 151829
2012-03-01 19:45:56 +00:00
Jean-Daniel Dupas
7598fadd78
Merge __has_attribute tests. Patch by Jonathan Sauer!
...
llvm-svn: 151819
2012-03-01 17:45:53 +00:00
Peter Collingbourne
cdb9f302d0
StmtProfiler: Add a null check for child statements.
...
llvm-svn: 151812
2012-03-01 16:34:31 +00:00
Jean-Daniel Dupas
908f130d58
Implement double underscore names support in __has_attribute
...
llvm-svn: 151809
2012-03-01 14:53:16 +00:00
Richard Smith
ebcd2357fb
Avoid examining the AST from the parser, and simplify somewhat.
...
llvm-svn: 151805
2012-03-01 07:10:06 +00:00
Richard Smith
ead9a05596
Revert r151800, which was committed without review and has correctness issues.
...
llvm-svn: 151804
2012-03-01 06:49:39 +00:00