- Apr 08, 2009
-
-
Fariborz Jahanian authored
used as receiver. llvm-svn: 68631
-
-
- Mar 29, 2009
-
-
Chris Lattner authored
productions (except the already broken ObjC cases like @class X,Y;) in the parser that can produce more than one Decl return a DeclGroup instead of a Decl, etc. This allows elimination of the Decl::NextDeclarator field, and exposes various clients that should look at all decls in a group, but which were only looking at one (such as the dumper, printer, etc). These have been fixed. Still TODO: 1) there are some FIXME's in the code about potentially using DeclGroup for better location info. 2) ParseObjCAtDirectives should return a DeclGroup due to @class etc. 3) I'm not sure what is going on with StmtIterator.cpp, or if it can be radically simplified now. 4) I put a truly horrible hack in ParseTemplate.cpp. I plan to bring up #3/4 on the mailing list, but don't plan to tackle #1/2 in the short term. llvm-svn: 68002
-
- Mar 28, 2009
-
-
Chris Lattner authored
pointer. Its purpose in life is to be a glorified void*, but which does not implicitly convert to void* or other OpaquePtr's with a different UID. Introduce Action::DeclPtrTy which is a typedef for OpaquePtr<0>. Change the entire parser/sema interface to use DeclPtrTy instead of DeclTy*. This makes the C++ compiler enforce that these aren't convertible to other opaque types. We should also convert ExprTy, StmtTy, TypeTy, AttrTy, BaseTy, etc, but I don't plan to do that in the short term. The one outstanding known problem with this patch is that we lose the bitmangling optimization where ActionResult<DeclPtrTy> doesn't know how to bitmangle the success bit into the low bit of DeclPtrTy. I will rectify this with a subsequent patch. llvm-svn: 67952
-
- Mar 18, 2009
-
-
Fariborz Jahanian authored
whose sema decl is at the translation unit. llvm-svn: 67249
-
- Mar 12, 2009
-
-
Fariborz Jahanian authored
the selector for the property setter. llvm-svn: 66834
-
- Mar 10, 2009
-
-
Steve Naroff authored
llvm-svn: 66551
-
- Mar 09, 2009
-
-
Steve Naroff authored
This fixes <rdar://problem/6496506> Implement class setter/getter for properties. llvm-svn: 66465
-
- Mar 05, 2009
-
-
Chris Lattner authored
Introduce a new PrettyStackTraceDecl. Use it to add the top level LLVM IR generation stuff in Backend.cpp to stack traces. We now get crashes like: Stack dump: 0. Program arguments: clang t.c -emit-llvm 1. <eof> parser at end of file 2. t.c:1:5: LLVM IR generation of declaration 'a' Abort for IR generation crashes. llvm-svn: 66153
-
Chris Lattner authored
Stack dump: 0. message.m:53:13: in compound statement ('{}') 1. message.m:53:13: parsing Objective-C method 'xx' 2. clang message.m llvm-svn: 66121
-
- Mar 04, 2009
-
-
Fariborz Jahanian authored
c-style functions declared inside objc @implementations. llvm-svn: 66087
-
- Mar 03, 2009
-
-
rdar://problem/6640991Steve Naroff authored
Also necessary to fix: <rdar://problem/6632061> [sema] non object types should not be allowed in @catch statements <rdar://problem/6252237> [sema] qualified id should be disallowed in @catch statements llvm-svn: 65964
-
- Mar 02, 2009
-
-
rdar://problem/6636803Steve Naroff authored
Parser::ParseObjCMethodDefinition(): Make sure we don't exit the BodyScope until ActOnFinishFunctionBody() is complete. llvm-svn: 65880
-
- Feb 28, 2009
-
-
Steve Naroff authored
llvm-svn: 65695
-
- Feb 18, 2009
-
-
Douglas Gregor authored
us whether there was an error in trying to parse a type-name (type-id in C++). This allows propagation of errors further in the compiler, suppressing more bogus error messages. llvm-svn: 64922
-
Chris Lattner authored
llvm-svn: 64893
-
- Feb 15, 2009
-
-
Chris Lattner authored
llvm-svn: 64609
-
Chris Lattner authored
llvm-svn: 64608
-
- Feb 14, 2009
-
-
Anders Carlsson authored
llvm-svn: 64560
-
- Feb 11, 2009
-
-
rdar://problem/6505139Steve Naroff authored
Fix <rdar://problem/6505139> [clang on growl]: need to allow unnamed selectors as the first argument llvm-svn: 64320
-
-
- Feb 05, 2009
-
-
Sebastian Redl authored
This shrinks OwningResult by one pointer. Since it is no longer larger than OwningPtr, merge the two. This leads to simpler client code and speeds up my benchmark by 2.7%. For some reason, this exposes a previously hidden bug, causing a regression in SemaCXX/condition.cpp. llvm-svn: 63867
-
- Jan 29, 2009
-
-
Chris Lattner authored
redundant #includes. Patch by Anders Johnsen! llvm-svn: 63271
-
- Jan 27, 2009
-
-
Chris Lattner authored
.def file for each library. This means that adding a diagnostic to sema doesn't require all the other libraries to be rebuilt. Patch by Anders Johnsen! llvm-svn: 63111
-
- Jan 18, 2009
-
-
Sebastian Redl authored
llvm-svn: 62466
-
Sebastian Redl authored
llvm-svn: 62465
-
Fariborz Jahanian authored
llvm-svn: 62432
-
- Jan 12, 2009
-
-
Douglas Gregor authored
or enum to be outside that struct, union, or enum. Fixes several regressions: <rdar://problem/6487662> <rdar://problem/6487669> <rdar://problem/6487684> <rdar://problem/6487702> PR clang/3305 PR clang/3312 There is still some work to do in Objective-C++, but this requires that each of the Objective-C entities (interfaces, implementations, etc.) to be introduced into the context stack with PushDeclContext/PopDeclContext. This will be a separate fix, later. llvm-svn: 62091
-
- Jan 09, 2009
-
-
-
Fariborz Jahanian authored
parameter list. This is work in progress. llvm-svn: 61964
-
- Jan 08, 2009
-
-
Douglas Gregor authored
introduce a Scope for the body of a tag. This reduces the number of semantic differences between C and C++ structs and unions, and will help with other features (e.g., anonymous unions) in C. Some important points: - Fields are now in the "member" namespace (IDNS_Member), to keep them separate from tags and ordinary names in C. See the new test in Sema/member-reference.c for an example of why this matters. In C++, ordinary and member name lookup will find members in both the ordinary and member namespace, so the difference between IDNS_Member and IDNS_Ordinary is erased by Sema::LookupDecl (but only in C++!). - We always introduce a Scope and push a DeclContext when we're defining a tag, in both C and C++. Previously, we had different actions and different Scope/CurContext behavior for enums, C structs/unions, and C++ structs/unions/classes. Now, it's one pair of actions. (Yay!) There's still some fuzziness in the handling of struct/union/enum definitions within other struct/union/enum definitions in C. We'll need to do some more cleanup to eliminate some reliance on CurContext before we can solve this issue for real. What we want is for something like this: struct X { struct T { int x; } t; }; to introduce T into translation unit scope (placing it at the appropriate point in the IdentifierResolver chain, too), but it should still have struct X as its lexical declaration context. PushOnScopeChains isn't smart enough to do that yet, though, so there's a FIXME test in nested-redef.c llvm-svn: 61940
-
- Dec 21, 2008
-
-
Sebastian Redl authored
llvm-svn: 61309
-
- Dec 17, 2008
-
-
Fariborz Jahanian authored
llvm-svn: 61114
-
- Dec 13, 2008
-
-
Sebastian Redl authored
llvm-svn: 60983
-
Sebastian Redl authored
llvm-svn: 60982
-
- Dec 11, 2008
-
-
Sebastian Redl authored
llvm-svn: 60906
-
Sebastian Redl authored
llvm-svn: 60904
-
Sebastian Redl authored
llvm-svn: 60900
-
Sebastian Redl authored
llvm-svn: 60895
-
Sebastian Redl authored
llvm-svn: 60888
-