| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
| |
of category implementation is undeclared. Issue error instead.
llvm-svn: 61882
|
|
|
|
|
|
|
| |
change the semantics. Please correct this if the precedence was
actually supposed to be something different.
llvm-svn: 61099
|
|
|
|
|
|
|
|
| |
instead of converting them to strings first. This also fixes a
bunch of minor inconsistencies in the diagnostics emitted by clang
and adds a bunch of FIXME's to DiagnosticKinds.def.
llvm-svn: 59948
|
|
|
|
|
|
|
|
|
|
|
| |
uses of getName() with uses of getDeclName(). This upgrades a bunch of
diags to take DeclNames instead of std::strings.
This also tweaks a couple of diagnostics to be cleaner and changes
CheckInitializerTypes/PerformInitializationByConstructor to pass
around DeclarationNames instead of std::strings.
llvm-svn: 59947
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
a new NamedDecl::getAsString() method.
Change uses of Selector::getName() to just pass in a Selector
where possible (e.g. to diagnostics) instead of going through
an std::string.
This also adds new formatters for objcinstance and objcclass
as described in the dox.
llvm-svn: 59933
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
with implicit quotes around them. This has a bunch of follow-on
effects and requires tweaking to a whole lot of code. This causes
a regression in two tests (xfailed) by causing it to emit things like:
Line 10: duplicate interface declaration for category 'MyClass1' ('Category1')
instead of:
Line 10: duplicate interface declaration for category 'MyClass1(Category1)'
I will fix this in a follow-up commit.
As part of this, I had to start switching stuff to use ->getDeclName() instead
of Decl::getName() for consistency. This is good, but I was planning to do this
as an independent patch. There will be several follow-on patches
to clean up some of the mess, but this patch is already too big.
llvm-svn: 59917
|
|
|
|
| |
llvm-svn: 59831
|
|
|
|
| |
llvm-svn: 59714
|
|
|
|
|
|
|
| |
just check for it when needed. It doesn't incur real cost
in any hot paths.
llvm-svn: 59708
|
|
|
|
|
|
| |
The core fix in Sema::ActOnClassMessage(). All the other changes have to do with passing down the SourceLocation for the receiver (to properly position the cursor when producing an error diagnostic).
llvm-svn: 59639
|
|
|
|
| |
llvm-svn: 59609
|
|
|
|
|
|
|
|
| |
__builtin_prefetch code to only emit one diagnostic per builtin_prefetch.
While this has nothing to do with the rest of the patch, the code seemed
like overkill when I was updating it.
llvm-svn: 59588
|
|
|
|
|
|
| |
Missing special lookup rule in Sema::ActOnInstanceMessage().
llvm-svn: 59467
|
|
|
|
|
|
| |
'super'. Remove ObjCThis from PredefinedExpr
llvm-svn: 58698
|
|
|
|
|
|
|
|
| |
scope) fails to handle overloaded selectors properly.
Long standing bug in Sema::ActOnInstanceMessage(). We now warn when messaging an "id" with multiple method signatures in scope. The diags are a little verbose, however they can be streamlined if necessary.
llvm-svn: 56843
|
|
|
|
| |
llvm-svn: 56791
|
|
|
|
|
|
| |
effectively declare it for methods below.
llvm-svn: 56771
|
|
|
|
|
|
|
|
|
| |
(1) Additional arguments to variadic methods should have default
promotions applied.
(2) Additional arguments to non-variadic methods were allowed.
llvm-svn: 56084
|
|
|
|
|
|
|
|
|
| |
no method declaration was found.
- This was allowing arrays to pass "by value" among other things.
Add assert in CodeGen that arguments cannot have array type.
llvm-svn: 56080
|
|
|
|
|
|
|
| |
CheckMessageArgumentTypes.
- No functionality change.
llvm-svn: 56079
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Added as private members for each because it is not clear where to
put the common definition. Perhaps the IdentifierInfos all of these
"pseudo-keywords" should be collected into one place (this would
KnownFunctionIDs and Objective-C property IDs, for example).
Remove Token::isNamedIdentifier.
- There isn't a good reason to use strcmp when we have interned
strings, and there isn't a good reason to encourage clients to do
so.
llvm-svn: 54794
|
|
|
|
|
|
|
| |
- Drop TokenKinds.h from Action.h
- Move DeclSpec.h from Sema.h into individual Sema .cpp files
llvm-svn: 54625
|
|
|
|
| |
llvm-svn: 54605
|
|
|
|
|
|
| |
ASTContext::getCanonicalType instead (PR2189)
llvm-svn: 54105
|
|
|
|
|
|
|
| |
(a) removes a bogus warning.
(b) removes an undesirable usage of the ObjCMessageExpr constructor that takes an IdentifierInfo * (which I will abolish).
llvm-svn: 54042
|
|
|
|
|
|
|
|
| |
This fixes a critical rewriter bug (<rdar://problem/6096760> clang ObjC rewriter: 'self' not expected value in class method called with 'super').
Also added a couple FIXME's since I'm not happy with my fix to Sema. It would be nicer if the super handling for class/instance messages was the same (based on PreDefinedExpr).
llvm-svn: 53994
|
|
|
|
|
|
| |
simplifying code along the way and fixing a problem and memory leak or two.
llvm-svn: 53876
|
|
|
|
|
|
|
| |
various objc lists over to it. First up, the protocol list
on ObjCInterfaceDecl.
llvm-svn: 53856
|
|
|
|
|
|
| |
@implementation to resolve nullary selector references.
llvm-svn: 53845
|
|
|
|
|
|
|
| |
it goes and makes std::strings out of them, which is not
defined.
llvm-svn: 53843
|
|
|
|
| |
llvm-svn: 53842
|
|
|
|
|
|
|
|
|
|
|
|
| |
interface. This fixes a bug where we used to accept:
void test2(NSNumber x) {
[x METH];
}
which doesn't make sense and GCC rejects.
llvm-svn: 53841
|
|
|
|
| |
llvm-svn: 53837
|
|
|
|
| |
llvm-svn: 53836
|
|
|
|
| |
llvm-svn: 53833
|
|
|
|
|
|
|
| |
protocol. Simplify some code to use unconditional form of the
protocol access list.
llvm-svn: 53832
|
|
|
|
|
|
| |
and getCurMethodDecl() that return the appropriate Decl through CurContext.
llvm-svn: 52852
|
|
|
|
|
|
| |
contain the ObjCInterfaceDecl* of the target class if it was available when the ObjCMessageExpr object was constructed. The original interfaces of the class has been preserved (requiring no functionality changes from clients), but now a "getClasSInfo" method returns both the ObjCInterfaceDecl* and IdentifierInfo* of the target class.
llvm-svn: 52676
|
|
|
|
|
|
|
|
| |
also modifies Sema so that Objective-C constant strings are treated as untyped objects if the interface for the constant string class can not be found. This is consistent with Apple GCC. I thought it was consistent with GNU GCC, since this was causing failures when trying to compile GNUstep with (GNU) GCC, but it appears that this is not the case when attempting to produce a simple test case to demonstrate it. Possibly there is a way of making the error go away, but I haven't found out what it is yet."
Patch by David Chisnall!
llvm-svn: 52599
|
|
|
|
|
|
| |
Patch by David Chisnall with objc rewriter and stmtdumper updates from me.
llvm-svn: 52580
|
|
|
|
|
|
|
|
|
| |
'void', expected 'int'.
- Changed Sema::ObjCActOnStartOfMethodDef() to more accurately type "self" in factory methods.
- Changed Sema::ActOnInstanceMessage() to use the new type to restrict the lookup.
llvm-svn: 52005
|
|
|
|
| |
llvm-svn: 51969
|
|
|
|
| |
llvm-svn: 51964
|
|
|
|
|
|
|
|
| |
to be
assigned to less protocol qualified object on LHS.
llvm-svn: 51956
|
|
|
|
|
|
| |
for private class methods.
llvm-svn: 51938
|
|
|
|
|
|
|
|
|
|
| |
interface types on the RHS.
This eliminates a bogus warning identified in the test below.
This fixes <rdar://problem/5968256> clang on xcode: error: incompatible type initializing 'NSObject<XCSelectionSource> *', expected 'id<NSObject,XCSelectionSource>'
llvm-svn: 51832
|
|
|
|
| |
llvm-svn: 51809
|
|
|
|
|
|
| |
- #include ExprObjC.h in many places
llvm-svn: 51703
|
|
|
|
|
|
|
|
|
|
| |
deleting dead code, making other code more obvious, and fixing a
bug. This fixes these (bogus) warnings in release mode:
SemaExprObjC.cpp:383: warning: 'RHSProtoE' may be used uninitialized in this function
SemaExprObjC.cpp:383: warning: 'RHSProtoI' may be used uninitialized in this function
llvm-svn: 49984
|
|
|
|
|
|
|
|
|
|
| |
While it is similar to the other compatibility predicates in ASTContext,
it is not used by them and is different.
In addition, greatly simplify ObjCQualifiedIdTypesAreCompatible and
fix some canonical type bugs. Also, simplify my Type::getAsObjC* methods.
llvm-svn: 49313
|