Anna Zaks
ce5e97efdd
[analyzer] NodeBuilder Refactoring: Subclass BranchNodeBuilder from NodeBuilder.
...
llvm-svn: 142444
2011-10-18 23:06:04 +00:00
Anna Zaks
fc0189aadc
[analyzer] Node Builder refactoring: Introduce a simple Node Builder responsible for generating the node frontier.
...
Currently we have a bunch of different node builders which provide some common
functionality but are difficult to refactor. Each builder generates nodes of
different kinds and calculates the frontier nodes, which should be propagated
to the next step (after the builder dies).
Introduce a new NodeBuilder which provides very basic node generation facilities
but takes care of the second problem. The idea is that all the other builders
will eventually use it. Use this builder in CheckerContext instead of
StmtNodeBuilder (the way the frontier is propagated to the StmtBuilder
is a hack and will be removed later on).
llvm-svn: 142443
2011-10-18 23:05:58 +00:00
John McCall
59207978e6
More metaprogramming with builtin types.
...
llvm-svn: 142433
2011-10-18 22:28:37 +00:00
Richard Smith
c82397332d
-Wc++98-compat and -Wc++98-compat-pedantic warnings for Sema, part 2.
...
llvm-svn: 142426
2011-10-18 21:39:00 +00:00
Douglas Gregor
e5c79d5ea8
Provide result types for code completions that describe built-in
...
expressions (this, sizeof, etc.).
llvm-svn: 142424
2011-10-18 21:20:17 +00:00
John McCall
91aee685d8
Add a __has_feature check for arc_cf_code_audited.
...
llvm-svn: 142423
2011-10-18 21:18:53 +00:00
John McCall
e314e27c58
Macro metaprogramming for builtin types.
...
llvm-svn: 142420
2011-10-18 21:02:43 +00:00
Richard Smith
0bf8a492fd
-Wc++98-compat and -Wc++98-compat-pedantic warnings for Sema, part 1.
...
llvm-svn: 142419
2011-10-18 20:49:44 +00:00
Daniel Dunbar
b274318bba
Frontend: Support -iframework.
...
llvm-svn: 142418
2011-10-18 20:40:38 +00:00
Richard Smith
aed32b4d8c
Simplify RecordDeclCXX::setBases slightly. No functional change.
...
Add test that a variadic base list which expands to 0 bases doesn't make the
class a non-aggregate. This test passed before the change, too.
llvm-svn: 142411
2011-10-18 20:08:55 +00:00
Fariborz Jahanian
2f31b33f34
objc: more changes in use of IBOutletCollection attribute.
...
'Class' is disallowed as argument. If the argument is missing,
NSObject is assumed. // rdar://10296078
llvm-svn: 142409
2011-10-18 19:54:31 +00:00
Argyrios Kyrtzidis
05c65fbdb6
[arcmt] Rewrite attributes in extensions as well. rdar://9992142
...
llvm-svn: 142407
2011-10-18 19:49:19 +00:00
Argyrios Kyrtzidis
b51684d7a1
Set the objc "property attributes as written" for extension properties as well.
...
llvm-svn: 142406
2011-10-18 19:49:16 +00:00
Richard Smith
c30493db3c
In C++11, a class's members are allowed to be nominated as friends.
...
llvm-svn: 142393
2011-10-18 18:33:57 +00:00
Argyrios Kyrtzidis
058b451d87
[driver] Make the driver to link the simulator arclite lib when passing -mios-simulator-version-min.
...
rdar://10218700
llvm-svn: 142372
2011-10-18 17:40:15 +00:00
Fariborz Jahanian
6b70865ec0
objc: diagnose invalid argument to an
...
iboutletcollection attribute intead of crashing.
// rdar://10296078
llvm-svn: 142364
2011-10-18 17:11:10 +00:00
Douglas Gregor
09deffa067
Make it possible to compute the type of 'this' without capturing
...
it. Refactoring to be used in a moment.
llvm-svn: 142360
2011-10-18 16:47:30 +00:00
Douglas Gregor
4205feffcd
Add code completions for C++0x expressions
...
llvm-svn: 142357
2011-10-18 16:29:03 +00:00
Benjamin Kramer
80ca407610
Use llvm::Triple's methods to parse FreeBSD version numbers.
...
Who could've thought that FreeBSD would ever reach version 10!
Patch from Dimitry Andric.
llvm-svn: 142349
2011-10-18 10:10:08 +00:00
Hans Wennborg
f99d04f841
Suggest %zu for size_t args to printf.
...
For PR11152. Make PrintSpecifier::fixType() suggest "%zu" for size_t, etc.
rather than looking at the underlying type and suggesting "%llu" or other
platform-specific length modifiers. Applies to C99 and C++11.
llvm-svn: 142342
2011-10-18 08:10:06 +00:00
Douglas Gregor
d793e7c3f7
Don't format the code completion for parameters of block literal
...
arguments as block literal arguments; the block literal argument code
completion should only go one level deep. Fixes <rdar://problem/10291294>.
llvm-svn: 142335
2011-10-18 04:23:19 +00:00
Richard Smith
83c19296ff
Add -Wc++11-compat warning for an inline specifier on an explicit instantiation.
...
llvm-svn: 142333
2011-10-18 03:44:03 +00:00
Douglas Gregor
f333f8c40d
When transforming the arguments for a C++ "new" expression, make sure
...
to drop the implicitly-generated value initialization expression used
for initializing scalars. Fixes <rdar://problem/10283928>.
llvm-svn: 142330
2011-10-18 02:43:19 +00:00
Richard Smith
050d261ec7
Refactor the checking for explicit template instantiations being performed in
...
the right namespace in C++11 mode. Teach the code to prefer the 'must be in
precisely this namespace' diagnostic whenever that's true, and fix a defect
which resulted in the -Wc++11-compat warning in C++98 mode sometimes being
omitted.
llvm-svn: 142329
2011-10-18 02:28:33 +00:00
John McCall
43d4dd49bf
Argyrios says this change is required for safety under PTH.
...
Me, I believe him.
llvm-svn: 142327
2011-10-18 01:36:41 +00:00
Eli Friedman
66005df1f1
Revert accidental commit.
...
llvm-svn: 142326
2011-10-18 01:18:41 +00:00
Eli Friedman
5e9534b0ae
Rewrite parts of MS ABI C++ layout. Based on work by r4start; I ended up doing this while I was trying to review his patch.
...
llvm-svn: 142325
2011-10-18 00:55:28 +00:00
John McCall
95ff270ee9
Fix several bugs with #pragma clang arc_cf_code_audited and macros.
...
llvm-svn: 142324
2011-10-18 00:44:04 +00:00
Argyrios Kyrtzidis
697729a7de
Revert r142311, -mios-simulator-version-min does not work correctly.
...
llvm-svn: 142322
2011-10-18 00:22:49 +00:00
Argyrios Kyrtzidis
7e16493c9b
Remove the hack where we sniff the __IPHONE_OS_VERSION_MIN_REQUIRED define.
...
We can use -mios-simulator-version-min now. rdar://10218700
llvm-svn: 142311
2011-10-17 23:41:26 +00:00
Richard Smith
9fcc5c31c4
Perform lvalue-to-rvalue conversions on __builtin_offsetof array argument index
...
before typechecking, as suggested by John.
llvm-svn: 142308
2011-10-17 23:29:39 +00:00
Argyrios Kyrtzidis
ffe8b1c7be
[arcmt] In ARC default for properties is 'strong' so just remove a 'retain' if possible,
...
instead of changing it to 'strong'. rdar://9984862.
llvm-svn: 142304
2011-10-17 23:14:16 +00:00
Richard Smith
b15c11c819
Add -Wc++98-compat warnings for uses of the new keywords 'alignof', 'char16_t',
...
'char32_t', 'constexpr', 'decltype', 'noexcept', 'nullptr' and 'static_assert'.
llvm-svn: 142302
2011-10-17 23:06:20 +00:00
Nick Lewycky
1d617acef9
Wire up support for the controlling the extended dwarf .file directive. With
...
r142300 but not this patch, clang -S may emit .s files that assemblers other
than llvm-mc can't parse.
llvm-svn: 142301
2011-10-17 23:05:52 +00:00
Rafael Espindola
70b8d76e64
Implement -static-libstdc++ for linux.
...
llvm-svn: 142290
2011-10-17 22:14:51 +00:00
Ted Kremenek
a08713ce86
Move about 20 random diagnostics under -W flags. Patch by Ahmed Charles!
...
llvm-svn: 142284
2011-10-17 21:47:53 +00:00
Eli Friedman
a4c2602b71
Initial implementation of __atomic_is_lock_free. The input is the size of an atomic type rather than an atomic type itself just to save some implementation pain; I can change that if it seems worthwhile.
...
I think this is the last hook needed for <atomic> besides defines for ATOMIC_CHAR_LOCK_FREE and friends.
llvm-svn: 142281
2011-10-17 21:44:23 +00:00
Rafael Espindola
cc35432550
Implement -static-libgcc on linux and refactor the code responsible for adding
...
libgcc to the link line into a helper function.
llvm-svn: 142269
2011-10-17 21:39:04 +00:00
DeLesley Hutchins
30abeb1680
Substitute for arguments in method calls -- functionality
...
llvm-svn: 142267
2011-10-17 21:38:02 +00:00
DeLesley Hutchins
a088f67bee
Substitute for arguments in method calls -- refactoring
...
llvm-svn: 142260
2011-10-17 21:33:35 +00:00
Richard Smith
b12bf69769
Refactor __attribute__ parsing, and add a diagnostic if the r_paren at the end
...
of an attrib is missing. gcc does not allow the closing parenthesis to be omitted.
llvm-svn: 142255
2011-10-17 21:20:17 +00:00
Tanya Lattner
49b3841398
The comparison of two vectors should return a signed result. hasIntegerRepresentation() used to always return false for vectors, but since it was changed, it also
...
changed the return type of a compare of two unsigned vectors to be unsigned. This patch removes the check for hasIntegerRepresentation since its not needed and returns the appropriate signed type.
I added a new test case and updated exisiting test cases that assumed an unsigned result.
llvm-svn: 142250
2011-10-17 21:00:38 +00:00
Fariborz Jahanian
502d2eee09
obj-c++: Fix a IRGen crash when getter is a reference type.
...
Fix is in Sema. // rdar://10153365
llvm-svn: 142249
2011-10-17 21:00:22 +00:00
Eli Friedman
15b1a7be1e
Add missing case to switch.
...
llvm-svn: 142246
2011-10-17 20:46:28 +00:00
John McCall
444bd25dff
Strip qualifiers off the type of an implicit property defined by
...
only a setter.
llvm-svn: 142236
2011-10-17 20:05:43 +00:00
Argyrios Kyrtzidis
bd8b150dfc
Introduce ASTConsumer::HandleTopLevelDeclInObjCContainer which accepts
...
top-level declarations that occurred inside an ObjC container.
This is useful to keep track of such decls otherwise when e.g. a function
is declared inside an objc interface, it is not passed to HandleTopLevelDecl
and it is not inside the DeclContext of the interface that is returned.
llvm-svn: 142232
2011-10-17 19:48:13 +00:00
Argyrios Kyrtzidis
690dccd9d4
Have ObjCMethodDecl::getCanonicalDecl take into account redeclared methods.
...
llvm-svn: 142231
2011-10-17 19:48:09 +00:00
Argyrios Kyrtzidis
1f4bee5601
Keep track when a ObjC interface/protocol was initially created as a forward reference.
...
llvm-svn: 142230
2011-10-17 19:48:06 +00:00
Douglas Gregor
7d75bf652b
Controlling macros are identifiers, not declarations.
...
llvm-svn: 142225
2011-10-17 18:53:12 +00:00
John McCall
4124c4924d
Teach the ARC compiler to not require __bridge casts when
...
passing/receiving CF objects at +0 to/from Objective-C methods
or audited C functions.
llvm-svn: 142219
2011-10-17 18:40:02 +00:00