aboutsummaryrefslogtreecommitdiff
path: root/test/SemaObjC
AgeCommit message (Collapse)Author
2008-12-08Changed 'readonly' 'retain/copy' diagnostics intoFariborz Jahanian
warning as it is allowed in gcc and will break projects. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@60710 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-08Since we do not allow a readonly property to be 'copy'retain', weFariborz Jahanian
must allow the continuation class to extend it to a 'readwrite' and 'copy/retain'. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@60709 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-06Use of properties declared in protocols in the categoryFariborz Jahanian
via the category's protocol list1s, with appropriate diagnsostics and a test case. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@60634 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-06Improve error reporting of property and setter/getterFariborz Jahanian
type mimatches. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@60630 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-06Patch to diagnose a variety of misuse of propertyFariborz Jahanian
attributes. Example would be, readonly, assign or assign, copy, etc. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@60620 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-05This test checks for duplicate implementation of the same Fariborz Jahanian
property. It also checks for duplicate use of the same ivar in two different iproperty implementations. It also caught an error for a test case used in CodeGen :). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@60610 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-05Fixed a test case. Added a test case showing property setter'sFariborz Jahanian
type mismatch (related to my last patch). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@60599 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-05(instance/class) Method type checking between class and its implementation.Fariborz Jahanian
(instance/class) Method type checking between category and its implementation. And a test case for all. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@60598 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-05Patch for diagnosing type mismatch between Fariborz Jahanian
methods in class and its implementation. This is work in progress. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@60573 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-04instead of forcing blocks on by default, make them default to off, but letChris Lattner
specific targets default them to on. Default blocks to on on 10.6 and later. Add a -fblocks option that allows the user to override the target's default. Use -fblocks in the various testcases that use blocks. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@60563 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-04Output better diagnostics for continuation classFariborz Jahanian
property attribute mis-specification. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@60562 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-26Removed a FIXME. Added a test case for anonymous category.Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@60115 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-26Set default property attributes on each property.Fariborz Jahanian
Implemented anonymous category (also know as continuation class) used to override main class's property attribute. This is work in propgress. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@60114 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-26Fix a minor typo in the handling of the conditional operator for Objective-C ↵Douglas Gregor
interface pointers git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@60096 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-25Patch to allow over-riding of readonly property to Fariborz Jahanian
a writable property in one of its category. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@60035 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-24Patch to remove bogus waring when a property declarationFariborz Jahanian
is imported from a protocol into the implementation. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59988 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-24Change a whole lot of diagnostics to take QualType's directly Chris Lattner
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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59948 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-24Rename NamedDecl::getName() to getNameAsString(). Replace a bunch of Chris Lattner
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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59947 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-24Rename NamedDecl::getIdentifierName() to ::getNameAsCString() and make itChris Lattner
assert if the name is not an identifier. Update callers to do the right thing and avoid this method in unsafe cases. This also fixes an objc warning that was missing a space, and migrates a couple more to taking IdentifierInfo and QualTypes instead of std::strings. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59936 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-24Rewrite FindDiagnostics to be more strict about the formatting of the Chris Lattner
expected-foo strings. Now the only allowed characters between expected-error and {{ is whitespace. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59925 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-23convert some more warnings to NOTEs.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59923 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-23remove warn_previous_declarationChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59922 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-23make the 'to match this' diagnostic a note.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59921 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-23Make all the 'redefinition' diagnostics more consistent, and make the Chris Lattner
"previously defined here" diagnostics all notes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59920 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-23make some objc redefinition warnings more consistent: call definitions Chris Lattner
"definitions", not declarations. Point out the location of the original definition. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59919 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-23Tweak duplicate category diagnostic to work like the duplicate protocol ↵Chris Lattner
diagnostic. Also, point out where the previous decl was. This unxfails two tests. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59918 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-23Convert IdentifierInfo's to be printed the same as DeclarationNames Chris Lattner
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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59917 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-22Support for implicit property assignment. Error assigning toFariborz Jahanian
'implicit' property with no 'setter'. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59878 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-22And a test case for my last patch.Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59875 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-21merge some simple call diagnostics.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59831 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-20__weak ivar need not warn.Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59743 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-20Added a test case for __weak field decls. Change SetVarDeclObjCAttributeFariborz Jahanian
to static function. Added comments. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59738 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-19Fix <rdar://problem/6150376> [sema] crash on invalid message send.Steve Naroff
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). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59639 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-18Fix <rdar://problem/6329769> [sema] crash on duplication definition of ↵Steve Naroff
interface with protocols. As soon as we detect duplicate interfaces, discontinue further semantic checks (returning the original interface). This is now consistent with how we handle protocols (and less error prone in general). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59541 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-17Fix <rdar://problem/6333904> [sema] message lookup on super is incorrectSteve Naroff
Missing special lookup rule in Sema::ActOnInstanceMessage(). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59467 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-17Fix <rdar://problem/6316324> [sema] spurious warning on comparison of ↵Steve Naroff
qualified id. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59459 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-17Fix <rdar://problem/6320086> parser rejects block capturing ivar.Steve Naroff
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59444 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-27Fix <rdar://problem/6315646> clang on xcode: error: invalid operands to ↵Steve Naroff
binary expression ('id<NSTableViewDelegate>' and 'XCExtendedArrayController *'). There is still a bug here (as the FIXME in the test case indicates). Prior to this patch, the bug would generate an error. Now, we simply do nothing (which is less harmful until we can get it right). The complete bug fix will require changing ASTContext::mergeTypes(), which I'd like to defer for now. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58241 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-22Fix <rdar://problem/6311947> clang on xcode (regression): error: use of ↵Steve Naroff
undeclared identifier 'expandedValue'. Mea culpa: I introduced this regresson in the following 2 commits: r57529 (10/14), r57841 (10/20). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58007 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-22Fix <rdar://problem/6257675> error: member reference base type ↵Steve Naroff
('NSUserDefaults *') is not a structure or union. Teach Sema::ActOnMemberReferenceExpr() to look through local category implementations associated with the class. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57995 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-21Fix <rdar://problem/6257645> clang static analyzer crashes when encountering ↵Steve Naroff
blocks as objects ASTContext::isObjCObjectPointerType() needs to consider blocks as objects. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57913 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-21Fix a crasher during error recovery in Parser::ParseObjCTypeName().Steve Naroff
Found this while fixing another unrelated radar. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57904 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-21Fix <rdar://problem/6261178> clang-on-xcode: [sema] multiple method warning ↵Steve Naroff
is over enthusiastic. Fix <rdar://problem/6265257> warnings for ambiguous message send swamp other warnings. Reworked Sema::MatchTwoMethodDeclarations() to optionally match based on method size and alignment (the default in GCC). Changed Sema::LookupInstanceMethodInGlobalPool() to use this feature. Added -Wno-struct-selector-match to driver, however didn't hook it up yet. Added a FIXME that says this. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57898 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-20Fix <rdar://problem/6268365> Parser rejects property (dot notation) access ↵Steve Naroff
on id<protocol>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57850 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-20Sema::CheckCompareOperands() and ASTContext::mergeTypes(): Change handling ↵Steve Naroff
of ObjC qualified id types to be consistent with gcc. This changes a handful of test case errors into warnings (diff will tell you which cases have changed). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57841 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-20More property attribute recovery improvements. Instead of this:Chris Lattner
crash.m:8:12: error: type name requires a specifier or qualifier @property (readonlyx, getter=isAwesome) int _awesome; ^ crash.m:8:29: error: expected ';' at end of declaration list @property (readonlyx, getter=isAwesome) int _awesome; ^ crash.m:8:39: error: expected identifier or '(' @property (readonlyx, getter=isAwesome) int _awesome; ^ we now get: crash.m:8:12: error: unknown property attribute 'readonlyx' @property (readonlyx, getter=isAwesome) int _awesome; ^ Also, we can eliminate isObjCPropertyAttribute now. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57811 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-20add testcase for the recovery improvements in my last patch.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57810 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-20fix a crash on unnamed properties like:Chris Lattner
@property (readonly) int : 4; git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57805 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-20refactor a bunch of code:Chris Lattner
Check for @end in ParseObjCInterfaceDeclList instead of in each caller Handle @required and @optional with the same code Add some fixmes about some apparently objc2 code that is being accepted in objc1. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57803 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-19Improve attribute parsing & tests.Daniel Dunbar
- Support noreturn on function-typed variables. - Extend isFunctionOrMethod to return true for K&R functions and provide hasFunctionProto to check if a decl has information about its arguments. This code needs some serious cleaning, but works. - Add/improve test cases for noreturn and unused. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57778 91177308-0d34-0410-b5e6-96231b3b80d8