Anna Zaks
a5b86343f5
[analyzer] Bump up the size of the functions that should be
...
considered for inlining to 200 BBs.
Setting the max to 10 BBs introduced several false negatives, we'll
reevaluate the setting later on along with other inlining heuristics.
llvm-svn: 152072
2012-03-05 23:54:55 +00:00
Fariborz Jahanian
d3ba40b90f
Minor refactoring for previous patch for // rdar://10735698
...
llvm-svn: 152071
2012-03-05 23:38:41 +00:00
Richard Smith
f506eaf36d
static_assert: Allow any string-literal as the message, not just a character
...
string literal, and adjust the diagnostic code to match. This also causes us
to escape any control characters in the message.
llvm-svn: 152069
2012-03-05 23:20:05 +00:00
Ted Kremenek
9d96f843b8
Teach SimpleSValBuilder that (in the absence of more information) stack memory doesn't alias symbolic memory. This is a heuristic/hack, but works well in practice. Fixes <rdar://problem/10978247>.
...
llvm-svn: 152065
2012-03-05 23:06:19 +00:00
Daniel Dunbar
6290557872
AST/stats: Don't effectively use an out-of-line function to return a static
...
bool. Ugh.
llvm-svn: 152062
2012-03-05 21:42:49 +00:00
Daniel Dunbar
e5617c79e4
ASTContext: Don't use nothrow specifications on the new operators for allocating
...
from the ASTContext.
- Doing so requires the compiler to generate null checks against the returned
result, but the BumpPtrAllocator never returns null pointers.
- The optimizer can usually eliminate such checks, but not always, so this
gives us tighter codegen in some places.
- It would be really nice if we could just use __builtin_unreachable or
something to tell the optimizer that the allocator never returns null, but
LLVM isn't currently that smart.
llvm-svn: 152060
2012-03-05 21:02:05 +00:00
Anna Zaks
9bd4be9657
[analyzer] Time the execution (per each TU) with -analyzer-stats.
...
llvm-svn: 152059
2012-03-05 20:53:59 +00:00
Daniel Dunbar
e8092cabeb
build/compiler-rt: Stop forcing off -integrated-as for compiler-rt builds.
...
llvm-svn: 152054
2012-03-05 20:19:03 +00:00
Sebastian Redl
249dee5433
If the element type of an initializer list has a destructor, make sure we check it. Fixes PR12178.
...
llvm-svn: 152048
2012-03-05 19:35:43 +00:00
Fariborz Jahanian
b0d7ce1b78
patch to optionally warn for block implementations without explicit
...
return types that return non-void values. // rdar://10735698
llvm-svn: 152047
2012-03-05 19:34:00 +00:00
Jim Grosbach
6c258a891f
Add MCRegisterInfo to the MCInstPrinter factory function interface.
...
llvm-svn: 152046
2012-03-05 19:33:41 +00:00
Anna Zaks
53a0b6c161
[analyzer] False positive in SelfInit - teach the checker about method
...
calls with self as a parameter.
llvm-svn: 152039
2012-03-05 18:58:25 +00:00
Anna Zaks
12a8b90a36
[analyzer] Malloc should assume that ownership is transfered when
...
calling an ObjC method ending with 'NoCopy'.
llvm-svn: 152037
2012-03-05 17:42:10 +00:00
Benjamin Kramer
73ecd70d38
Avoid double lookup.
...
llvm-svn: 152033
2012-03-05 17:20:04 +00:00
Peter Collingbourne
15d48ec46f
Properly handle non-canonical underlying types in
...
ASTContext::getUnaryTransformType. This can happen if, for example,
an enumeration's underlying type is a typedef.
llvm-svn: 152031
2012-03-05 16:02:06 +00:00
Nico Weber
b3ec7308b0
Fix a -Wstring-plus-int warning.
...
Patch from Sean Silva <silvas@purdue.edu>!
llvm-svn: 152030
2012-03-05 15:48:34 +00:00
Benjamin Kramer
27402c61c8
TargetInfo: create less temporary strings.
...
llvm-svn: 152029
2012-03-05 15:10:44 +00:00
Rafael Espindola
189fa748ec
Fix a small difference in sema and codegen views of what needs to be output.
...
In the included testcase, soma thinks that we already have a definition after we
see the out of line decl. Codegen puts it in a deferred list, to be output if
a use is seen. This would break when we saw an explicit template instantiation
definition, since codegen would not be notified.
This patch adds a method to the consumer interface so that soma can notify
codegen that this decl is now required.
llvm-svn: 152024
2012-03-05 10:54:55 +00:00
James Molloy
7583ccdc1f
Fix a bug in the mangler where in 'namespace std { extern "C" {X;} }', X would not be seen to be in ::std::.
...
Migrate two other places where the same logic is used to use the helper function that already exists.
llvm-svn: 152022
2012-03-05 09:59:43 +00:00
Argyrios Kyrtzidis
afdc66f4fa
[arcmt]
...
-Make sure we don't change to '__weak' a __block variable used as output.
-Make sure we don't apply __weak twice.
Fixes rdar://10520757&10521362
llvm-svn: 152020
2012-03-05 08:46:24 +00:00
Argyrios Kyrtzidis
647dcd80f0
[preprocessor] Enhance PreprocessingRecord to keep track of locations of conditional directives.
...
Introduce PreprocessingRecord::rangeIntersectsConditionalDirective() which returns
true if a given range intersects with a conditional directive block.
llvm-svn: 152018
2012-03-05 05:48:17 +00:00
Argyrios Kyrtzidis
c793a61355
[preprocessor] Enhance the preprocessor callbacks:
...
-Add location parameter for the directives callbacks
-Skip callbacks if the directive is inside a skipped range.
-Make sure the directive callbacks are invoked in source order.
llvm-svn: 152017
2012-03-05 05:48:09 +00:00
Richard Smith
2a1b1c68f3
More tests for r152012.
...
llvm-svn: 152013
2012-03-05 04:06:25 +00:00
Richard Smith
e18f0faff2
Lexing support for user-defined literals. Currently these lex as the same token
...
kinds as the underlying string literals, and we silently drop the ud-suffix;
those issues will be fixed by subsequent patches.
llvm-svn: 152012
2012-03-05 04:02:15 +00:00
Gregory Szorc
74226d3597
[clang.py] Return bool from Cursor.__eq__
...
llvm-svn: 152011
2012-03-05 00:42:15 +00:00
Erik Verbruggen
8c738bc98a
Remove a recursive visitation in ExprEngine that is no longer needed because the CFG is fully linearized.
...
llvm-svn: 152007
2012-03-04 18:12:21 +00:00
Chandler Carruth
52b6ac2a78
Silence a GCC warning about a set-but-not-used variable in release builds.
...
llvm-svn: 152005
2012-03-04 12:16:40 +00:00
Richard Smith
72eebee0cb
Add tests for [over.literal]. Fix a few bugs which were exposed by the tests.
...
llvm-svn: 151997
2012-03-04 09:41:16 +00:00
Chris Lattner
332673d39d
From his comment in PR12168, Eli seems confused about the alignment assumptions
...
we're making. We only ignore implicit casts. Add a testcase showing that
we get the right behavior with explicit casts.
llvm-svn: 151994
2012-03-04 00:56:24 +00:00
Chris Lattner
aaa18fad7d
add a testcase for PR12094 and fix a crash on pointer to incomplete type,
...
reported by Richard Smith.
llvm-svn: 151993
2012-03-04 00:52:12 +00:00
Richard Smith
522fa53703
Add a pile of tests for unrestricted unions, and advertise support for them.
...
llvm-svn: 151992
2012-03-03 23:51:05 +00:00
Richard Smith
2e312c8738
constexpr: Remove APValue/CCValue distinction. It is no longer useful given the
...
resolution of core issue 1454.
llvm-svn: 151991
2012-03-03 22:46:17 +00:00
Benjamin Kramer
15ceed9a9e
Remove unused variable.
...
llvm-svn: 151989
2012-03-03 21:52:22 +00:00
Jean-Daniel Dupas
999892f0d0
Fix Typo in 'objc changes' anchor.
...
llvm-svn: 151978
2012-03-03 13:37:22 +00:00
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