Seo Sanghyeon
d27410b580
Fix warnings
...
llvm-svn: 53141
2008-07-05 02:01:25 +00:00
Argyrios Kyrtzidis
853fbea313
Replace CurFunctionDecl and CurMethodDecl with methods getCurFunctionDecl() and getCurMethodDecl() that return the appropriate Decl through CurContext.
...
llvm-svn: 52852
2008-06-28 06:07:14 +00:00
Argyrios Kyrtzidis
8a73d1f327
The assert at Sema::ObjCActOnStartOfMethodDef should check CurMethodDecl instead of CurFunctionDecl.
...
llvm-svn: 52719
2008-06-25 14:24:09 +00:00
Chris Lattner
5696e7badf
Change self/_cmd to be instances of ImplicitParamDecl instead of ParmVarDecl.
...
Patch by David Chisnall!
llvm-svn: 52422
2008-06-17 18:05:57 +00:00
Steve Naroff
946166f4e9
Second half of "fix" for <rdar://problem/5986085> clang on xcode: error: redefinition of 'XCElementToggler' as different kind of symbol
...
llvm-svn: 52024
2008-06-05 22:57:10 +00:00
Steve Naroff
31e1d41338
Fixed a recent test regression from last night (r51976).
...
llvm-svn: 52006
2008-06-05 15:03:27 +00:00
Steve Naroff
25449a5221
Fix <rdar://problem/5986833> clang on xcode: incompatible type returning '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
2008-06-05 14:49:39 +00:00
Steve Naroff
d1c3d1130b
Fix trivial crasher and downgrade an error to warning (to match GCC).
...
llvm-svn: 51976
2008-06-05 04:33:44 +00:00
Steve Naroff
4c290c7c0b
Make sure the source location for @property points the the @-sign (not the decl spec).
...
Also added a FIXME related to how we represent @properties in the ObjCInterfaceDecl AST.
llvm-svn: 51450
2008-05-22 23:24:08 +00:00
Fariborz Jahanian
8983f17ba0
Synthesized getter/setter method declarations need not have
...
an implementation. This fixes couple of failing prperty tests
caused by my previous patch.
llvm-svn: 50830
2008-05-07 20:53:44 +00:00
Fariborz Jahanian
ec6e4c8096
This patch introduces declaration of getter methods for ObjC2's
...
properties. Couple of property tests will fail with this patch.
Will fix them next.
llvm-svn: 50818
2008-05-07 17:43:59 +00:00
Fariborz Jahanian
09367d68ff
Patch to refactor setter/getter names of property attributes into Selector
...
(was IdentifierInfo * before). This will make method declartations whole
lot easier.
llvm-svn: 50747
2008-05-06 18:09:04 +00:00
Fariborz Jahanian
8d91686b0d
percolate @optional/@required protocols down to ASTs for
...
properties declared in the protocol.
llvm-svn: 50662
2008-05-05 18:51:55 +00:00
Fariborz Jahanian
98a6c4fa77
This patch is about merging ObjC2's properties declared in class
...
protocols into class's property list and performing semantics
on them for while doing so.
llvm-svn: 50587
2008-05-02 19:17:30 +00:00
Fariborz Jahanian
f303bdabdf
Patch to match and issue diagnostics on property type mismatch.
...
llvm-svn: 50532
2008-05-01 18:05:01 +00:00
Fariborz Jahanian
7cf18862c2
More ObjC2 property semantics work. Work in progress.
...
llvm-svn: 50508
2008-05-01 00:03:38 +00:00
Argyrios Kyrtzidis
ed1eec4812
Use PushOnScopeChains to introduce a decl into scope.
...
llvm-svn: 50320
2008-04-27 13:30:35 +00:00
Fariborz Jahanian
0a070ff570
Patch to diagnose inconsistancies between properties declared in current and
...
its super class. This patch is incomplete.
llvm-svn: 50228
2008-04-24 19:58:34 +00:00
Fariborz Jahanian
6efdf1ddab
Patch to build AST for property implementation declarations and
...
to print declaration from its AST.
llvm-svn: 50117
2008-04-23 00:06:01 +00:00
Fariborz Jahanian
c6bec7b6dc
More semantics checks of properties. Property implementation can implicitly use
...
ivar of same name.
Better diagnostics to bring home this point.
llvm-svn: 50065
2008-04-21 21:57:36 +00:00
Fariborz Jahanian
f2a7d7c949
Support for @dynamic AST build.
...
More property semantics checking.
First test case for ObjC2's property implementation.
llvm-svn: 50057
2008-04-21 21:05:54 +00:00
Fariborz Jahanian
a054e99fa8
Continuation of work on ObjC2's properties.
...
Added iterators, methods to find property and categories.
Use them in doing semantic analysis on property implementation
declarations. Fixed typos.
llvm-svn: 50050
2008-04-21 19:04:53 +00:00
Fariborz Jahanian
d83bdd3841
Fixed a bug in categories and properties.
...
llvm-svn: 49883
2008-04-18 00:30:47 +00:00
Fariborz Jahanian
ffe97a3925
Initial work for property implementation declarations.
...
Mostly semantic checking in this patch. This is on going
and incomplete.
llvm-svn: 49882
2008-04-18 00:19:30 +00:00
Fariborz Jahanian
8e36cddde0
Added property decl support for protocols.
...
Added assertion if unexpected property decls are found where they don't belong.
Consolidated property decl. printing by using a helper function.
llvm-svn: 49862
2008-04-17 18:25:18 +00:00
Fariborz Jahanian
9d981eb9ae
This patch adds support for declaraing properties in categories,
...
just as they are declared in objc classes.
llvm-svn: 49817
2008-04-16 21:08:45 +00:00
Fariborz Jahanian
0152a1a5db
New AST representation for each objc2's property declaration.
...
llvm-svn: 49699
2008-04-14 23:36:35 +00:00
Fariborz Jahanian
4572b45574
AST generation for objc2's property declarations.
...
llvm-svn: 49565
2008-04-11 23:40:25 +00:00
Steve Naroff
5a4611cdda
Add class and super class location info to ObjCInterfaceDecl...
...
llvm-svn: 49553
2008-04-11 19:35:35 +00:00
Chris Lattner
c5c95b52a8
Switch sema to maintaining its own scope chain information for variable
...
shadowing, instead of threading it through the AST. This patch contributed
by Argiris Kirtzidis!
llvm-svn: 49520
2008-04-11 07:00:53 +00:00
Chris Lattner
58258246ec
Several improvements from Doug Gregor related to default
...
argument handling. I'll fix up the c89 (void) thing next.
llvm-svn: 49459
2008-04-10 02:22:51 +00:00
Chris Lattner
aa9c7aed0f
Add support for C++ default arguments, and rework Parse-Sema
...
interaction for function parameters, fixing PR2046.
Patch by Doug Gregor!
llvm-svn: 49369
2008-04-08 04:40:51 +00:00
Chris Lattner
fc4379f916
remove the Decl::getCanonicalType() method.
...
llvm-svn: 49295
2008-04-06 23:10:54 +00:00
Chris Lattner
0a5ff0d34a
This patch contains these changes:
...
-Renamed ContextDecl -> DeclContext
-Removed DeclContext pointer from FieldDecl
-EnumDecl inherits from DeclContext, instead of TagDecl
Patch by Argiris Kirtzidis!
llvm-svn: 49261
2008-04-06 04:47:34 +00:00
Chris Lattner
c5ffed4a66
Introduce ContextDecl, patch by Argiris Kirtzidis!
...
-Added ContextDecl (no TranslationUnitDecl)
-ScopedDecl class has a ContextDecl member
-FieldDecl class has a ContextDecl member, so that a Field or a ObjCIvar can be traced back to their RecordDecl/ObjCInterfaceDecl easily
-FunctionDecl, ObjCMethodDecl, TagDecl, ObjCInterfaceDecl inherit from ContextDecl. With TagDecl as ContextDecl, enum constants have a EnumDecl as their context.
-Moved Decl class to a "DeclBase.h" along with ContextDecl class
-CurContext is handled by Sema
llvm-svn: 49208
2008-04-04 06:12:32 +00:00
Steve Naroff
778927532d
Change ObjCInterfaceDecl to inherit from NamedDecl (not TypeDecl). While ObjCInterfaceDecl is arguably a TypeDecl, it isn't a ScopedDecl. Since TypeDecl's are scoped, it makes sense to simply treat them as NamedDecl's. I could have fiddled a bit more with the hierarchy (in terms of creating a non-scoped TypeDecl), however this probably isn't worth the effort.
...
I also finished unifying access to scope decl change by converting Sema::getObjCInterfaceDecl() to use Sema::LookupDecl(). This is much cleaner now:-)
llvm-svn: 49107
2008-04-02 18:30:49 +00:00
Steve Naroff
2fc93f5c43
Two changes to Sema::LookupDecl() interface.
...
(1) Remove IdLoc (it's never used).
(2) Add a bool to enable/disable lazy builtin creaation (defaults to true).
This enables us to use LookupDecl() in Sema::isTypeName(), which is also part of this commit.
To make this work, I changed isTypeName() to be a non-const member function. I'm not happy with this, however I fiddled with making LookupDecl() and friends const and it got ugly pretty quickly. We can certainly add it back if/when someone has time to fiddle with it. For now, I thought this simplification was more important than retaining the const-ness.
llvm-svn: 49087
2008-04-02 14:35:35 +00:00
Steve Naroff
257520b1b4
Fairly large "cleaup" related to changing ObjCCompatibleAliasDecl superclass (to inherit from NamedDecl, instead of ScopedDecl).
...
- Added a DenseMap to associate an IdentifierInfo with the ObjCCompatibleAliasDecl.
- Renamed LookupScopedDecl->LookupDecl and changed it's return type to Decl. Also added lookup for ObjCCompatibleAliasDecl's.
- Removed Sema::LookupInterfaceDecl(). Converted clients to used LookupDecl().
- Some minor indentation changes.
Will deal with ObjCInterfaceDecl and getObjCInterfaceDecl() in a separate commit...
llvm-svn: 49058
2008-04-01 23:04:06 +00:00
Chris Lattner
ed0e16404c
clean up property memory allocation to move it into the ast classes
...
like the rest of the classes.
llvm-svn: 48434
2008-03-17 01:19:02 +00:00
Chris Lattner
41eec3d097
make property addition work list all other "add" methods. Do
...
the allocation in the class, not in sema.
llvm-svn: 48433
2008-03-16 21:23:50 +00:00
Chris Lattner
219b3e9c6c
add the last two Create methods for decls, woo!
...
llvm-svn: 48432
2008-03-16 21:17:37 +00:00
Chris Lattner
36ac1cae1f
add two more Create methods.
...
llvm-svn: 48428
2008-03-16 20:53:07 +00:00
Chris Lattner
d77aff8232
simplify the way ObjCCategoryDecl's get their referenced protocols list
...
specified. Previously, the ctor would allocate memory for the list and then
it would get filled in later. Move the allocation+filling in to be more
consistent with other stuff, e.g. the addMethods method.
llvm-svn: 48427
2008-03-16 20:47:45 +00:00
Chris Lattner
1dd77af9ce
Add create methods for ObjCCategoryDecl, ObjCForwardProtocolDecl, ObjCClassDecl.
...
llvm-svn: 48426
2008-03-16 20:34:23 +00:00
Chris Lattner
acc04a9261
minor cleanups, make getNumInstanceMethods always return unsigned.
...
llvm-svn: 48423
2008-03-16 20:19:15 +00:00
Chris Lattner
5074f8f3ef
fix a crasher where an invalid program that multiply defined
...
a protocol could smash more references in than are allocated.
llvm-svn: 48411
2008-03-16 01:25:17 +00:00
Chris Lattner
f87ca0a7d1
Give ObjCProtocolDecl a Create method.
...
llvm-svn: 48410
2008-03-16 01:23:04 +00:00
Chris Lattner
96c501ef7e
Add create methods for ObjCIvarDecl and ObjCInterfaceDecl
...
llvm-svn: 48408
2008-03-16 01:15:50 +00:00
Chris Lattner
011b0f5c5a
Make the parameter count of ObjCMethodDecl unsigned, you
...
can't have negative arguments.
llvm-svn: 48407
2008-03-16 01:07:14 +00:00
Chris Lattner
c557947488
remove some dead arguments to ObjCMethodDecl.
...
llvm-svn: 48406
2008-03-16 00:58:16 +00:00