Fariborz Jahanian
f76f2b0c1c
Patch for objc2's property ASTs, as well as pretty-priting the ASTs.
...
llvm-svn: 43778
2007-11-06 22:01:00 +00:00
Chris Lattner
45d561ad99
improve decl merging logic to be more correct with
...
functions. Patch contributed by Nuno Lopes, thanks!
llvm-svn: 43757
2007-11-06 06:07:26 +00:00
Chris Lattner
3209725c68
Add better validation for array types when merging decls. Patch
...
contributed by Oliver Hunt, thanks!
llvm-svn: 43750
2007-11-06 04:28:31 +00:00
Fariborz Jahanian
ac73ff8868
Remaining work to collect objective-c's type qualifiers and use them to encode
...
method types.
llvm-svn: 43617
2007-11-01 17:18:37 +00:00
Devang Patel
32714064b1
Propagate bitfield info.
...
llvm-svn: 43613
2007-11-01 16:29:56 +00:00
Fariborz Jahanian
7a9c47480d
1) More additions for objective-c's qualifier type.
...
2) Fixed a test failure (which should have failed all along!).
llvm-svn: 43589
2007-10-31 23:53:01 +00:00
Fariborz Jahanian
95b6076c77
Fixed problem with rewriting stand-alone @implementation (with no matching @interface).
...
A new test case added.
llvm-svn: 43568
2007-10-31 18:48:14 +00:00
Steve Naroff
6d40db0dde
Implement a more sensible strategy for ObjC built-in types (addressing a long standing FIXME in Sema::GetObjcIdType()).
...
This removes several gross hacks to work around the previous "lazy" behavior.
Two notes:
- MinimalActions still needs to be taught about the built-in types (This breaks one of the -noop test cases). I started this, then added a FIXME.
- I didn't convert Sema::GetObjcProtoType() yet.
llvm-svn: 43567
2007-10-31 18:42:27 +00:00
Fariborz Jahanian
d728e949bb
After Anders check-in, we can now encode 'Class' type.
...
llvm-svn: 43556
2007-10-31 16:00:13 +00:00
Fariborz Jahanian
ca5338196f
Added new type and bitfield fields in some decl types in preparation for objective-c's type qualifiers.
...
Added initialization of Class/SEMA types.
llvm-svn: 43534
2007-10-31 00:12:35 +00:00
Chris Lattner
0b11172e8c
minor tweaks
...
llvm-svn: 43515
2007-10-30 20:57:56 +00:00
Fariborz Jahanian
18d7b30241
Revisited my last patch to be able to do encoding of ivar types with 'id'.
...
llvm-svn: 43507
2007-10-30 18:27:03 +00:00
Fariborz Jahanian
509d8d6fc6
Added type encoding for 'id' type.
...
llvm-svn: 43504
2007-10-30 17:06:23 +00:00
Steve Naroff
5448cf6d61
- Add location info to category/protocol AST's
...
- Rewrite categories.
llvm-svn: 43501
2007-10-30 13:30:57 +00:00
Steve Naroff
4cd61acc33
Remove a couple FIXME's for rewriting ObjC interfaces (which are now being rewritten properly).
...
llvm-svn: 43494
2007-10-30 03:43:13 +00:00
Steve Naroff
c54840433f
More support for rewriting ObjC intefaces. Still some edge cases to handle...
...
llvm-svn: 43493
2007-10-30 02:23:23 +00:00
Steve Naroff
33a1e80dd1
This commit contains lot's of small tweaks to how we pass around and store SourceLocation's for interfaces/protocols/categories/implementations.
...
llvm-svn: 43475
2007-10-29 21:38:07 +00:00
Steve Naroff
161a92b976
Start rewriting ObjC interfaces. As a start, we comment out all the methods. This involved refining how the parser/AST passes/manages SourceLocations for ObjcMethodDecl's.
...
llvm-svn: 43404
2007-10-26 20:53:56 +00:00
Fariborz Jahanian
3339d0d14e
This patch allows synthesis generation of ivar offset for legacy objective-c @implementation
...
decl without an @interface decl.
llvm-svn: 43403
2007-10-26 20:50:24 +00:00
Chris Lattner
8beb9dee0e
Fix a crash on test/Sema/invalid-decl.c
...
llvm-svn: 43188
2007-10-19 20:10:30 +00:00
Steve Naroff
eee59ebb15
Add a FIXME to an assert.
...
Change a dyn_cast_or_null back to cast (which is more efficient).
llvm-svn: 43152
2007-10-18 22:17:45 +00:00
Fariborz Jahanian
c34409c281
Patch to rewrite ivar tables metadata for classes defined.
...
llvm-svn: 43151
2007-10-18 22:09:03 +00:00
Steve Naroff
8569d77349
Fix the following bug...
...
unsigned char asso_values[] = { 34 };
int legal2() {
return asso_values[0];
}
The code that creates the new constant array type was operating on the original type.
As a result, the constant type being generated was "unsigned char [1][]" (which is wrong).
The fix is to operate on the element type - in this case, the correct type is "unsigned char [1]"
I added this case to array-init.c, which clearly didn't catch this bogosity...
llvm-svn: 43112
2007-10-18 03:27:23 +00:00
Anders Carlsson
f94cd1ffe6
Generate code for static variables that don't have initializers. Also, report an error if a static initializer is not constant.
...
llvm-svn: 43058
2007-10-17 00:52:43 +00:00
Chris Lattner
a7c19feca2
Add a new Rewriter::getRangeSize method.
...
Rename SourceRange::Begin()/End() to getBegin()/getEnd() for
consistency with other code.
Start building the rewriter towards handling @encode.
llvm-svn: 43047
2007-10-16 22:36:42 +00:00
Fariborz Jahanian
ebac2cb235
Patch to diagnose duplicate method implementations.
...
llvm-svn: 43046
2007-10-16 21:52:23 +00:00
Steve Naroff
d275426449
Remove ObjcMethodDecl::getNumMethodParams/getMethodParamDecl, they aren't used/needed.
...
Change ObjcMethodDecl::getMethodType to getResultType, to match FunctionDecl.
llvm-svn: 43045
2007-10-16 21:36:54 +00:00
Steve Naroff
698495522d
Bad cast...need to use dyn_cast_or_null. Also changed Sema::InitBuiltinVaListType (which had the same bug).
...
llvm-svn: 43023
2007-10-16 00:00:18 +00:00
Anders Carlsson
7e13ab88a2
Add code generation and sema checking for __builtin_va_arg.
...
llvm-svn: 43006
2007-10-15 20:28:48 +00:00
Fariborz Jahanian
d4b3015dd7
Several name lookup conflict detection fixes involving objective-c names.
...
llvm-svn: 43000
2007-10-15 19:16:57 +00:00
Steve Naroff
ca0ecfe048
Add category lookup (removing a couple FIXME's).
...
Changed ObjcInterfaceDecl::ListCategories->CategoryList.
llvm-svn: 42968
2007-10-14 18:27:41 +00:00
Steve Naroff
5811baf1a0
- Added Sema::AddFactoryMethodToGlobalPool and Sema::AddInstanceMethodToGlobalPool and DenseMaps. This will allow us to efficiently lookup a method from a selector given no type information (for the "id" data type).
...
- Fixed some funky "}
else {" indentation in Sema::ActOnAddMethodsToObjcDecl(). I'd prefer we stay away from this style...it wastes space and isn't any easier to read (from my perspective, at least:-)
- Changed Parser::ParseObjCInterfaceDeclList() to only call Action::ActOnAddMethodsToObjcDecl() when it actually has methods to add (since most interface have methods, this is a very minor cleanup).
llvm-svn: 42957
2007-10-14 00:58:41 +00:00
Anders Carlsson
24ebce6fca
Generate code for va_start and va_end.
...
llvm-svn: 42939
2007-10-12 23:56:29 +00:00
Fariborz Jahanian
fd0312ed79
Patch to check for duplicate method decls in protocols.
...
llvm-svn: 42938
2007-10-12 23:43:31 +00:00
Fariborz Jahanian
ecfe4f1453
Check and diagnose that objective-c objects may not be statically allocated.
...
llvm-svn: 42936
2007-10-12 22:10:42 +00:00
Fariborz Jahanian
02fbb68e85
Fixed typo in comment.
...
llvm-svn: 42928
2007-10-12 19:53:08 +00:00
Fariborz Jahanian
c7afeebb12
Fixed a @compatible_alias bug. In the process, discovered unnecessary 2ndry lookup
...
ok class names and streamlined this logic to do the lookup once.
llvm-svn: 42926
2007-10-12 19:38:20 +00:00
Steve Naroff
b915146a5d
Replace one FIXME with another. We handle protocols just fine now. The ObjC decl will only be 0 when we have an error on the ObjC decl. I would prefer we pass in a decl that is marked as invalid. I don't think this is critical to fix now, however I'd like us to be consistent. There are currently many places that don't mark the decl as invalid (which need to be fixed)...
...
llvm-svn: 42923
2007-10-12 18:49:25 +00:00
Fariborz Jahanian
d52cd41630
Fixed a bug whereby, struct tag name matches a typedef/objc-class name
...
and hid them.
llvm-svn: 42915
2007-10-12 16:34:10 +00:00
Fariborz Jahanian
49c6425ee6
This patch implementa objective-c's @compatibilty-alias declaration.
...
llvm-svn: 42883
2007-10-11 23:42:27 +00:00
Anders Carlsson
87c149bf51
Add __builtin_va_start to the list of builtins, make __builtin_va_list available to builtin functions.
...
llvm-svn: 42857
2007-10-11 01:00:40 +00:00
Fariborz Jahanian
70e8f1024a
Patch to create protocol conforming class types.
...
llvm-svn: 42856
2007-10-11 00:55:41 +00:00
Chris Lattner
9c7a0361c0
Fix 80 col violations.
...
llvm-svn: 42849
2007-10-10 23:42:28 +00:00
Steve Naroff
783a7a0698
Refinements to Sema::GetObjcIdType()...
...
- Cache the typedef, not the type (avoids importing AST/Type.h).
- Emit an error if "id" cannot be found.
- Comment the routine and add a FIXME to reconsider how we emulate GCC's new fangled behavior. This isn't a priority for now, since almost no code depends on having "id" built-in.
- Add a test.
llvm-svn: 42845
2007-10-10 23:24:43 +00:00
Steve Naroff
7f549f1897
- Make sure default return/argument types (for methods) default to "id".
...
- Cache the "id" type in Sema...initialize ObjcIdType and TUScope (oops).
- Fix ActOnInstanceMessage to allow for "id" type receivers...still work to do (next).
llvm-svn: 42842
2007-10-10 21:53:07 +00:00
Steve Naroff
93eb5f1438
Remove Scope argument from ObjC actions that either don't need it or can now use TUScope.
...
Also improve a recently added comment.
llvm-svn: 42826
2007-10-10 17:32:04 +00:00
Steve Naroff
c62adb6d1a
Make sure methods with no return type default to "id".
...
This fixes a crasher in Sema::MatchTwoMethodDeclarations(), identified by selector-overload.m (just added).
Added Action::ActOnTranslationUnitScope() and renamed Action::PopScope to ActOnPopScope.
Added a Translation Unit Scope instance variable to Sema (will be very useful to ObjC-related actions, since ObjC declarations are always file-scoped).
llvm-svn: 42817
2007-10-09 22:01:59 +00:00
Fariborz Jahanian
c8e7a93b02
Minor code clean up to make it more readable.
...
llvm-svn: 42803
2007-10-09 18:22:59 +00:00
Fariborz Jahanian
06f84f5f84
Remove addition of protocol names to declaration scopes, use a separate
...
DenseMap to keep track of such declarations and derive ObjcProtocolDecl
directyly from NamedScope.
llvm-svn: 42801
2007-10-09 18:03:53 +00:00
Chris Lattner
a55a2cc25c
rename some "Parse" actions to "ActOn". Move code around in
...
ParseFunctionDefinition so that ActOnFunctionDefBody is always
called if ActOnStartOfFunctionDef is called. This fixes a crash
reported by Nuno Lopes.
llvm-svn: 42793
2007-10-09 17:14:05 +00:00