Ted Kremenek
0c2c90b1ad
After further discussion, rename attribute 'objc_disable_automatic_synthesis' to 'objc_requires_property_definitions'.
...
llvm-svn: 147622
2012-01-05 22:47:47 +00:00
Ted Kremenek
dec9d12fc4
Rename attribute 'objc_suppress_autosynthesis' to 'objc_disable_automatic_synthesis'.
...
llvm-svn: 147567
2012-01-04 23:51:09 +00:00
Fariborz Jahanian
7249e36704
objc: diagnose misplacement of objc_suppress_autosynthesis
...
attribute.
llvm-svn: 147490
2012-01-03 22:52:32 +00:00
Fariborz Jahanian
9d4d20af55
objc: introduce objc_suppress_autosynthesis class
...
attributes for later use.
llvm-svn: 147457
2012-01-03 18:45:41 +00:00
Fariborz Jahanian
21c2484454
objc: after issuing the warning on direct use of __attribute__((NSObject))
...
on properties, prevent consequential error diagnostics. // rdar://10591336
llvm-svn: 146737
2011-12-16 15:54:29 +00:00
Fariborz Jahanian
88d510da9d
Add ability to supply additional message to availability macros,
...
// rdar://10095131
llvm-svn: 146304
2011-12-10 00:28:41 +00:00
Fariborz Jahanian
a45495a9f2
objc: warn if NSObject attribute appears other than in a typedef.
...
// rdar://10453342
llvm-svn: 145358
2011-11-29 01:48:40 +00:00
Ted Kremenek
5d6044e413
Downgrade err_iboutlet_object_type to a warning. It was breaking a bunch of code. We will reconsider promoting it back to an error later.
...
llvm-svn: 143470
2011-11-01 18:08:35 +00:00
Fariborz Jahanian
3249a1e862
Do not warn when weak-import attribute is applied to enum
...
decl. in Darwin due to certain projects requirement.
// rdar://10277579
llvm-svn: 143082
2011-10-26 23:59:12 +00:00
Peter Collingbourne
7d33cd3a2f
Fix grammar for C++11 alignment specifiers, and add a few FIXMEs.
...
llvm-svn: 142760
2011-10-23 20:07:52 +00:00
Fariborz Jahanian
47f9a73f51
c++: support gcc's application of weak attribute on
...
class declaration which forces any such class and any
class that inherits from such a class to have their
typeinfo symbols be marked as weak.
// rdar://10246395
A test/CodeGenCXX/weak-extern-typeinfo.cpp
M lib/Sema/SemaDeclCXX.cpp
M lib/Sema/SemaDeclAttr.cpp
M lib/CodeGen/CGRTTI.cpp
llvm-svn: 142693
2011-10-21 22:27:12 +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
Erik Verbruggen
ca98f2a63f
Allow for annotate attributes after access specifiers. When such
...
attributes are found, propagate them to subsequent declarations.
llvm-svn: 141861
2011-10-13 09:41:32 +00:00
Douglas Gregor
f892c7fe60
For the various CF and NS attributes, don't complain if the parameter
...
or return types are dependent. Fixes PR9049.
llvm-svn: 141518
2011-10-09 22:26:49 +00:00
John McCall
f937c023bf
Rename TagDecl::isDefinition -> isCompleteDefinition
...
for better self-documenting code, since the semantics
are subtly different from getDefinition().
llvm-svn: 141355
2011-10-07 06:10:15 +00:00
Argyrios Kyrtzidis
c281c96675
Implicitly assume that a ObjC category to an unavailable interface is also unavailable;
...
only give an 'unavailable' error on the @implementation of the category. rdar://10234078
llvm-svn: 141335
2011-10-06 23:23:27 +00:00
Argyrios Kyrtzidis
9321ad3f97
When using an unavailable/deprecated interface Foo inside Foo's interface/implementation
...
don't emit unavailable errors.
llvm-svn: 141334
2011-10-06 23:23:20 +00:00
Fariborz Jahanian
ed1933b02b
objc arc: Suppress certain arc diagnostics on unavailable
...
functions. // rdar://10186536
llvm-svn: 141037
2011-10-03 22:11:57 +00:00
Rafael Espindola
70107f989c
Propagate __attribute__((returns_twice)) from C to IL.
...
llvm-svn: 141002
2011-10-03 14:59:42 +00:00
John McCall
42856de542
Hey, maybe we shouldn't silently ignore decl attributes
...
on declarators written as types.
llvm-svn: 140931
2011-10-01 05:17:03 +00:00
Fariborz Jahanian
044a5be6fb
objc arc: allow objc_returns_inner_pointer on methods that return
...
a reference type, since inner reference is much like an inner pointer.
// rdar://10139365
llvm-svn: 140880
2011-09-30 20:50:23 +00:00
John McCall
32f5fe1467
Add explicit attributes to mark functions as having had their
...
CoreFoundation object-transfer properties audited, and add a #pragma
to cause them to be automatically applied to functions in a particular
span of code. This has to be implemented largely in the preprocessor
because of the requirement that the region be entirely contained in
a single file; that's hard to impose from the parser without registering
for a ton of callbacks.
llvm-svn: 140846
2011-09-30 05:12:12 +00:00
John McCall
f1e8b34f6c
Add an ns_bridged attribute, used to specify that a
...
pointer to the annotated struct type can be used as an
Objective-C object pointer. If an argument is given, the
type is actually "toll-free bridged" to the specific type
named there, rather than just to 'id'.
For now, we cannot rely on all types being so annotated,
and we'll always have to have exceptions for things like
CFTypeRef (aka const void*), but this is clearly a good
foundation for improving toolage in this area.
llvm-svn: 140779
2011-09-29 07:17:38 +00:00
Ted Kremenek
7fd1723619
Like IBOutletCollection, it only makes sense to apply the IBOutlet annotation to Objective-C object types. Fixes <rdar://problem/10142685>.
...
llvm-svn: 140778
2011-09-29 07:02:25 +00:00
Fariborz Jahanian
6d5d6a277a
objc-arc: mark functions which return types which can't be dealt with
...
in arc mode and are in system headers as unavailable.
// rdar://10186625
llvm-svn: 140565
2011-09-26 21:23:35 +00:00
David Blaikie
aa347f9392
Removing a bunch of dead returns/breaks after llvm_unreachables.
...
llvm-svn: 140407
2011-09-23 20:26:49 +00:00
David Blaikie
83d382b1ca
Switch assert(0/false) llvm_unreachable.
...
llvm-svn: 140367
2011-09-23 05:06:16 +00:00
David Blaikie
9c70e04bec
ArrayRef-ifying Function/BlockDecl's setParams
...
llvm-svn: 140268
2011-09-21 18:16:56 +00:00
Francois Pichet
0706d203cf
Rename LangOptions::Microsoft to LangOptions::MicrosoftExt to make it clear that this flag must be used only for Microsoft extensions and not emulation; to avoid confusion with the new LangOptions::MicrosoftMode flag.
...
Many of the code now under LangOptions::MicrosoftExt will eventually be moved under the LangOptions::MicrosoftMode flag.
llvm-svn: 139987
2011-09-17 17:15:52 +00:00
Caitlin Sadowski
086fb95da5
Thread safety: Adding FIXMEs and a couple cleanups
...
llvm-svn: 139894
2011-09-16 00:35:54 +00:00
Caitlin Sadowski
bf06c72aa9
Thread safety: cleaning up FIXME for trylocks
...
llvm-svn: 139805
2011-09-15 17:50:19 +00:00
Argyrios Kyrtzidis
8db67df663
Add the location of the interface reference to IBOutletCollectionAttr.
...
Depends on a llvm tablegen commit.
llvm-svn: 139618
2011-09-13 18:41:59 +00:00
Argyrios Kyrtzidis
309b4c49e4
Keep the source range of attributes. Depends on a llvm tablegen commit.
...
llvm-svn: 139600
2011-09-13 16:05:58 +00:00
Argyrios Kyrtzidis
635a9b4dcf
Record the full source range of an attribute.
...
llvm-svn: 139599
2011-09-13 16:05:53 +00:00
Julien Lerouge
5a6b6987dc
Bring llvm.annotation* intrinsics support back to where it was in llvm-gcc: can
...
annotate global, local variables, struct fields, or arbitrary statements (using
the __builtin_annotation), rdar://8037476.
llvm-svn: 139423
2011-09-09 22:41:49 +00:00
John McCall
b46f287e48
Clean up the sentinel-attribute checking code a lot. Document
...
what 'nullPos' is supposed to mean, at least at this one site.
Use closed forms for the arithmetic. Rip out some clever but
ultimately pointless code that was trying to use 0 or 0L depending
the size of a pointer vs. the size of int; first, it didn't work
on LLP64 systems, and second, the sentinel checking code requires
a pointer-typed value anyway, so this fixit would not have actually
removed the warning.
llvm-svn: 139361
2011-09-09 07:56:05 +00:00
Caitlin Sadowski
990d571226
Thread safety: added support for function scopes in attribute arguments.
...
This patch was written by DeLesley Hutchins.
llvm-svn: 139302
2011-09-08 17:42:31 +00:00
Eli Friedman
ce3e2c85b1
Make sure the FunctionDecl's created by "#pragma weak" have correct ParmVarDecl's. PR10878.
...
llvm-svn: 139224
2011-09-07 04:05:06 +00:00
Benjamin Kramer
2667afa980
Make helpers static, remove unused variables.
...
llvm-svn: 139078
2011-09-03 03:30:59 +00:00
Douglas Gregor
e8bbc12152
Extend the ASTContext constructor to delay the initialization of
...
builtin types (When requested). This is another step toward making
ASTUnit build the ASTContext as needed when loading an AST file,
rather than doing so after the fact. No actual functionality change (yet).
llvm-svn: 138985
2011-09-02 00:18:52 +00:00
Caitlin Sadowski
afbbd8e5ad
Thread-safety analysis: adding in a basic lockset tracking system. This
...
system flags an error when unlocking a lock which was not held, locking
the same lock twice, having a different lockset on each iteration of a
loop, or going out of scope while still holding a lock. In order to
successfully use the lockset, this patch also makes sure that attribute
arguments are attached correctly for later parsing.
This patch was also worked on by DeLesley Hutchins.
Note: This patch has been reviewed by Chandler Carruth and Jeffrey
Yasskin. Feel free to provide post-commit review comments for a
subsequent patch.
llvm-svn: 138350
2011-08-23 18:46:34 +00:00
Benjamin Kramer
56b675f8a1
Reflow code. No functionality change.
...
llvm-svn: 138032
2011-08-19 04:18:11 +00:00
Douglas Gregor
05a51ae0cf
Update a comment to match the recently-changed code
...
llvm-svn: 137216
2011-08-10 16:09:55 +00:00
Douglas Gregor
6f47e5cabf
For the availability attribute, allow a declaration to be deprecated
...
in the same version that it is introduced. Stuff happens.
llvm-svn: 137214
2011-08-10 15:31:35 +00:00
Caitlin Sadowski
4b1e8399c2
Thread Safety: Added basic argument parsing for all new attributes.
...
This patch special cases the parser for thread safety attributes so that all
attribute arguments are put in the argument list (instead of a special
parameter) since arguments may not otherwise resolve correctly without two-token
lookahead.
This patch also adds checks to make sure that attribute arguments are
lockable objects.
llvm-svn: 137130
2011-08-09 17:59:31 +00:00
Benjamin Kramer
3c05b7c161
Make helper functions static.
...
llvm-svn: 136679
2011-08-02 04:50:49 +00:00
Caitlin Sadowski
63fa667c68
Added basic parsing for all remaining attributes, thread safety
...
analysis. This includes checking that the attributes are applied in the
correct contexts and with the correct number of arguments.
llvm-svn: 136383
2011-07-28 20:12:35 +00:00
Douglas Gregor
1c4bfe5ac6
Make Sema::WeakUndeclaredIdentifiers lazily deserialized.
...
llvm-svn: 136368
2011-07-28 18:09:57 +00:00
Caitlin Sadowski
aac4d21ba7
Added parsing for guarded_var, pt_guarded_var, lockable,
...
scoped_lockable, and no_thread_safety_analysis attributes, all for thread safety analysis
llvm-svn: 136364
2011-07-28 17:21:07 +00:00
Douglas Gregor
fb65e592e0
Add support for C++0x unicode string and character literals, from Craig Topper!
...
llvm-svn: 136210
2011-07-27 05:40:30 +00:00