| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
| |
to a lockable type from error to warning.
llvm-svn: 154198
|
|
|
|
|
|
|
|
|
| |
root class is intentionally declared.
The warning this inhibits, -Wobjc-root-class, is opt-in for now. However, all clang unit tests that would trigger
the warning have been updated to use -Wno-objc-root-class. <rdar://problem/7446698>
llvm-svn: 154187
|
|
|
|
| |
llvm-svn: 152725
|
|
|
|
|
|
|
|
|
|
| |
(Lex to AST).
The member variable is always "LangOpts" and the member function is always "getLangOpts".
Reviewed by Chris Lattner
llvm-svn: 152536
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This submission improves Clang sema handling by using Clang tablegen
to generate common boilerplate code. As a start, it implements AttributeList
enumerator generation and case statements for AttributeList::getKind.
A new field "SemaHandler" is introduced in Attr.td and by default set to 1
as most of attributes in Attr.td have semantic checking in Sema. For a small
number of attributes that don't appear in Sema, the value is set to 0.
Also there are a small number of attributes that only appear in Sema but not
in Attr.td. Currently these attributes are still hardcoded in Sema AttributeList.
Reviewed by Delesley Hutchins.
llvm-svn: 152169
|
|
|
|
|
|
|
| |
issue the note if it is because message is sent to a forward class
declaration in delayed diagnostic. // rdar://10290322
llvm-svn: 151942
|
|
|
|
|
|
| |
__attribute__((NSObject)) on a property declaration. This is needed to have retain properties for non-object pointers. Fixes <rdar://problem/10930507>.
llvm-svn: 151786
|
|
|
|
|
|
| |
MS compatibility mode.
llvm-svn: 151295
|
|
|
|
| |
llvm-svn: 151225
|
|
|
|
| |
llvm-svn: 150702
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
value of class type, look for a unique conversion operator converting to
integral or unscoped enumeration type and use that. Implements [expr.const]p5.
Sema::VerifyIntegerConstantExpression now performs the conversion and returns
the converted result. Some important callers of Expr::isIntegralConstantExpr
have been switched over to using it (including all of those required for C++11
conformance); this switch brings a side-benefit of improved diagnostics and, in
several cases, simpler code. However, some language extensions and attributes
have not been moved across and will not perform implicit conversions on
constant expressions of literal class type where an ICE is required.
In passing, fix static_assert to perform a contextual conversion to bool on its
argument.
llvm-svn: 149776
|
|
|
|
|
|
| |
additional entry points are needed to implement C++11 odr-use marking correctly. No functional change in this patch; I'll actually make the change which fixes the odr-use marking in a followup patch.
llvm-svn: 149586
|
|
|
|
|
|
|
|
| |
like Darwin that don't support it. We should also complain about
invalid -fvisibility=protected, but that information doesn't seem
to exist at the most appropriate time, so I've left a FIXME behind.
llvm-svn: 149186
|
|
|
|
| |
llvm-svn: 149127
|
|
|
|
| |
llvm-svn: 149125
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
declarator just because we were able to build an invalid decl
for it. The invalid-type diagnostics, in particular, are still useful
to know, and may indicate something about why the decl is invalid.
Also, recover from an illegal pointer/reference-to-unqualified-retainable
type using __strong instead of __autoreleasing; in general, a random
object is much more likely to be __strong, so this avoids unnecessary
cascading errors in the most common case.
llvm-svn: 149074
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
will allow to disable
address safety analysis (such as e.g. AddressSanitizer or SAFECode) for a specific function.
When building with AddressSanitizer, add AddressSafety function attribute to every generated function
except for those that have __attribute__((no_address_safety_analysis)).
With this patch we will be able to
1. disable AddressSanitizer for a particular function
2. disable AddressSanitizer-hostile optimizations (such as some cases of load widening) when AddressSanitizer is on.
llvm-svn: 148842
|
|
|
|
| |
llvm-svn: 148592
|
|
|
|
|
|
| |
appropriate or when GCC requires it)
llvm-svn: 148292
|
|
|
|
|
|
| |
This allows -Wswitch-enum to find switches that need updating when these enums are modified.
llvm-svn: 148281
|
|
|
|
| |
llvm-svn: 147641
|
|
|
|
|
|
| |
'objc_disable_automatic_synthesis' to 'objc_requires_property_definitions'.
llvm-svn: 147622
|
|
|
|
|
|
| |
'objc_disable_automatic_synthesis'.
llvm-svn: 147567
|
|
|
|
|
|
| |
attribute.
llvm-svn: 147490
|
|
|
|
|
|
| |
attributes for later use.
llvm-svn: 147457
|
|
|
|
|
|
| |
on properties, prevent consequential error diagnostics. // rdar://10591336
llvm-svn: 146737
|
|
|
|
|
|
| |
// rdar://10095131
llvm-svn: 146304
|
|
|
|
|
|
| |
// rdar://10453342
llvm-svn: 145358
|
|
|
|
|
|
| |
code. We will reconsider promoting it back to an error later.
llvm-svn: 143470
|
|
|
|
|
|
|
| |
decl. in Darwin due to certain projects requirement.
// rdar://10277579
llvm-svn: 143082
|
|
|
|
| |
llvm-svn: 142760
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
'Class' is disallowed as argument. If the argument is missing,
NSObject is assumed. // rdar://10296078
llvm-svn: 142409
|
|
|
|
|
|
| |
attributes are found, propagate them to subsequent declarations.
llvm-svn: 141861
|
|
|
|
|
|
| |
or return types are dependent. Fixes PR9049.
llvm-svn: 141518
|
|
|
|
|
|
|
| |
for better self-documenting code, since the semantics
are subtly different from getDefinition().
llvm-svn: 141355
|
|
|
|
|
|
|
|
| |
unavailable;
only give an 'unavailable' error on the @implementation of the category. rdar://10234078
llvm-svn: 141335
|
|
|
|
|
|
|
|
| |
interface/implementation
don't emit unavailable errors.
llvm-svn: 141334
|
|
|
|
|
|
| |
functions. // rdar://10186536
llvm-svn: 141037
|
|
|
|
| |
llvm-svn: 141002
|
|
|
|
|
|
| |
on declarators written as types.
llvm-svn: 140931
|
|
|
|
|
|
|
| |
a reference type, since inner reference is much like an inner pointer.
// rdar://10139365
llvm-svn: 140880
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
annotation to Objective-C object types. Fixes <rdar://problem/10142685>.
llvm-svn: 140778
|
|
|
|
|
|
|
| |
in arc mode and are in system headers as unavailable.
// rdar://10186625
llvm-svn: 140565
|
|
|
|
| |
llvm-svn: 140407
|
|
|
|
| |
llvm-svn: 140367
|
|
|
|
| |
llvm-svn: 140268
|
|
|
|
|
|
|
|
| |
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
|