- Jul 24, 2008
-
-
Steve Naroff authored
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
-
- Jul 23, 2008
-
-
Ted Kremenek authored
When constructing an ObjCIvarDecl object in Sema, provide its visibility up front instead of setting it afterwards. This change also fixes a subtle bug where the access control of an ivar would be initialized to garbage if we didn't have an explicit visibility specifier (e.g., @private). llvm-svn: 53955
-
-
- Jul 22, 2008
-
-
Ted Kremenek authored
llvm-svn: 53914
-
Daniel Dunbar authored
This closes <rdar://problem/6080720>, support for __builtin_constant_p has been filed separately. llvm-svn: 53885
-
Chris Lattner authored
of a specific smallvector size. Fix protocol lists to pass down proper location info, so we get diagnostics like this: t.m:3:35: error: cannot find protocol definition for 'NSCopying', referenced by 'NSWhatever' @interface NSWhatever : NSObject <NSCopying> ^ instead of this: t.m:3:44: error: cannot find protocol definition for 'NSCopying', referenced by 'NSWhatever' @interface NSWhatever : NSObject <NSCopying> ^ Add a new IdentifierLocPair typedef which is just a pair<IdentifierInfo*, SourceLocation> llvm-svn: 53883
-
Ted Kremenek authored
Fix indexing bug. llvm-svn: 53882
-
- Jul 21, 2008
-
-
Ted Kremenek authored
llvm-svn: 53881
-
Chris Lattner authored
simplifying code along the way and fixing a problem and memory leak or two. llvm-svn: 53876
-
Chris Lattner authored
llvm-svn: 53864
-
Chris Lattner authored
References to forward definitions should be warnings. llvm-svn: 53863
-
Chris Lattner authored
various objc lists over to it. First up, the protocol list on ObjCInterfaceDecl. llvm-svn: 53856
-
Chris Lattner authored
be consistent with ObjCInterfaceDecl. llvm-svn: 53852
-
Argyrios Kyrtzidis authored
llvm-svn: 53849
-
Chris Lattner authored
the standard "set these as the list of protocols" interface instead of a strange "set this as the size and then set each one to the value" interface. The problem with the later is that it a) is completely different from everything else, b) is awkward, and c) doesn't handle the case when a referenced protocol is invalid: it set it to null. This meant that all clients downstream would have to handle null protocols in the protocol list, and empirically they didn't. Fix this by not setting invalid protocols in the referenced protocol list, fixing the crash on test/Sema/objc-interface-1.m While I'm at it, clean up some locations so that we produce: t.m:1:25: error: cannot find interface declaration for 'NSObject', superclass of 'NSWhatever' @interface NSWhatever : NSObject <NSCopying> ~~~~~~~~~~~~~~~~~~~~~ ^ instead of: t.m:1:1: error: cannot find interface declaration for 'NSObject', superclass of 'NSWhatever' @interface NSWhatever : NSObject <NSCopying> ^ llvm-svn: 53846
-
Chris Lattner authored
@implementation to resolve nullary selector references. llvm-svn: 53845
-
Chris Lattner authored
it goes and makes std::strings out of them, which is not defined. llvm-svn: 53843
-
Chris Lattner authored
llvm-svn: 53842
-
Chris Lattner authored
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
-
Chris Lattner authored
llvm-svn: 53837
-
Chris Lattner authored
llvm-svn: 53836
-
Chris Lattner authored
have better source ranges. Before: t.m:11:53: error: member reference is not to a structure or union CGFloat maxOffsetY = [_outlineLayer contentSize].height - [_outlineLayer frame].size.height; ^~~~~~~ after: t.m:11:54: error: member reference base type ('id') is not a structure or union CGFloat maxOffsetY = [_outlineLayer contentSize].height - [_outlineLayer frame].size.height; ~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^ llvm-svn: 53834
-
Chris Lattner authored
llvm-svn: 53833
-
Chris Lattner authored
protocol. Simplify some code to use unconditional form of the protocol access list. llvm-svn: 53832
-
Chris Lattner authored
This code would previously crash on x.y where x is 'id'. llvm-svn: 53827
-
Chris Lattner authored
don't care which class actually defines it. llvm-svn: 53825
-
Chris Lattner authored
from: t.m:8:7: error: member reference is not to a structure or union pool->farm = 0; ^ ~~~~ to: t.m:8:7: error: 'NSAutoreleasePool' has member named 'farm' pool->farm = 0; ~~~~^ ~~~~ llvm-svn: 53824
-
Chris Lattner authored
llvm-svn: 53823
-
Chris Lattner authored
llvm-svn: 53822
-
Chris Lattner authored
llvm-svn: 53821
-
Chris Lattner authored
id<NSCopyable>* is not an "objc pointer type", id<NSCopyable> is. llvm-svn: 53820
-
Chris Lattner authored
interfaces. Just because they x->isPointerType() doesn't mean it is valid to just cast to a pointertype. We have to handle typedefs etc as well. llvm-svn: 53819
-
Chris Lattner authored
llvm-svn: 53817
-
- Jul 17, 2008
-
-
Argyrios Kyrtzidis authored
Unify ctx_iterator/ctx_begin()/ctx_end() and iterator/begin()/end() so that a single iterator type is used for both traversing decls of the same declaration context *and* of the parent declaration contexts, depending on the value of the bool parameter 'LookInParentCtx' that is passed to IdentifierResolver::begin(). llvm-svn: 53724
-
- Jul 16, 2008
-
-
Argyrios Kyrtzidis authored
When in C++, make EnumConstant names hide tag names in the same scope, instead of colliding with them. llvm-svn: 53702
-
Steve Naroff authored
- Make sure ObjCIvarDecl propagates the bitfield width. - RewriteObjC::SynthesizeIvarOffsetComputation(): Avoid using the __OFFSETOF__ mumbo jumbo for bitfields (since it isn't legal C). This fixes <rdar://problem/5986079> clang ObjC rewriter: bitfields and ivar access don't mix. llvm-svn: 53694
-
Argyrios Kyrtzidis authored
When checking for name collision between a tag and a previously defined namespace, the collision occured even when the tag was in a different nested scope. Fix it by taking into account the scope when checking for namespace-tag name collisions. llvm-svn: 53667
-
Ted Kremenek authored
Added parsing/sema support for __attribute__ ((IBOutlet)), a clang-specific attribute that the static analyzer will use to recognize what ivars are IBOutlets. llvm-svn: 53644
-
- Jul 14, 2008
-
-
Nate Begeman authored
Add some code to handle vector comparisons, which is the language side of the llvm vicmp/vfcmp instructions. Also make the vector-vector and vector-scalar asign checks a bit more sane under the presence of lax vector conversions. llvm-svn: 53565
-
- Jul 11, 2008
-
-
Chris Lattner authored
llvm-svn: 53467
-