- Nov 07, 2007
-
-
Steve Naroff authored
Finishing touches on code generation for @try and friends. - declare functions we use. - cast arguments to objc_exception_match(). - don't take the & of _stack.buf. llvm-svn: 43831
-
Fariborz Jahanian authored
llvm-svn: 43830
-
Steve Naroff authored
Implement rewrite for @throw. llvm-svn: 43820
-
Steve Naroff authored
Rewrite ObjC @try/@catch/@finally. Some minor tweaks to the AST nodes... Still need to rewrite @throw (and do more testing)... llvm-svn: 43803
-
Fariborz Jahanian authored
llvm-svn: 43791
-
- Nov 05, 2007
-
-
Fariborz Jahanian authored
2) Fixed a regression in meta-data generation caused by removal of '_interface' prefix from synthesize class name. 3) Added stubs for @try/@catch/@finally statements. llvm-svn: 43716
-
Steve Naroff authored
Declare objc_selector outside the prototype for objc_msgSend(), removing a silly warning. llvm-svn: 43706
-
Steve Naroff authored
Rewrite @selector(sel). llvm-svn: 43705
-
Steve Naroff authored
- change the synthesized typedef (for classes) to be of type "objc_object". - fix a couple bugs in RewriteObjCStringLiteral. - convert "Class" -> "id" in RewriteMessageExpr. llvm-svn: 43704
-
Steve Naroff authored
Remove HandleObjcMetaDataEmission(), I inadvertantly resurrected it. llvm-svn: 43690
-
- Nov 04, 2007
-
-
Steve Naroff authored
Two additions... - Synthesize the funky cast for objc_msgSend(). For the basic case, it looks like... ((id (*)(id, SEL))(void *)objc_msgSend)(obj, sel); The "void *" cast is needed to workaround a GCC "bandaid" (Chris says it has something to do with the inliner). Without the extra "void *" cast, we get spurious warnings/notes that look like... xx.m:17: warning: function called through a non-compatible type xx.m:17: note: if this code is reached, the program will abort - Add prototypes for the ObjC functions we call, objc_msgSend/objc_getClass for now (don't depend on them being included). llvm-svn: 43685
-
- Nov 03, 2007
-
-
Steve Naroff authored
Implement rewrite rules for ObjC string constants. llvm-svn: 43665
-
Chris Lattner authored
ASTConsumer to process the AST before it is destroyed. This allows elimination of HandleObjcMetaDataEmission. llvm-svn: 43659
-
- Nov 01, 2007
-
-
Steve Naroff authored
- Remove _interface_ prefix for the synthesized tag names. - Also removed a tab from the generated struct (minor). llvm-svn: 43616
-
Steve Naroff authored
Implement rewrite rule for commenting out protocol references. For example: extern id /*<NSObject>*/ NSAllocateObject(Class aClass, unsigned extraBytes, NSZone *zone); extern void NSDeallocateObject(id /*<NSObject>*/object); extern id /*<NSObject>*/ NSCopyObject(id /*<NSObject>*/object, unsigned extraBytes, NSZone *zone); llvm-svn: 43612
-
Steve Naroff authored
Tweak RewriteInterfaceDecl() to generate a typedef (if one hasn't already been generated). llvm-svn: 43600
-
Fariborz Jahanian authored
2) Fixed a test failure (which should have failed all along!). llvm-svn: 43589
-
Fariborz Jahanian authored
llvm-svn: 43586
-
- Oct 31, 2007
-
-
Fariborz Jahanian authored
llvm-svn: 43585
-
Steve Naroff authored
Fix two rewriter bugs: - For @class, don't generate multiple typedefs. - Handle the following edge case interface... @interface NSMiddleSpecifier : NSObject {} @end ...which was incorrectly being rewritten to... struct _interface_NSMiddleSpecifier { struct _interface_NSObject _NSObject; }; {} llvm-svn: 43582
-
Fariborz Jahanian authored
llvm-svn: 43560
-
Steve Naroff authored
Checking in some code that is still under construction. I need to (finally) change the way Class/id/SEL/IMP are built-in...the current approach of doing it in the preprocessor is "broken". The other problem is Sema::GetObjcIdType/GetObjcSelType/GetObjcClassType, the hooks that initialize ASTContext lazily. These built-in types need to be done up front... llvm-svn: 43557
-
Steve Naroff authored
Add some plumbing to help cope with rewriting "id<p>", "Class<p>*". llvm-svn: 43543
-
Steve Naroff authored
Stop pre-defining objc_msgSend/objc_getClass in the preprocessor. Instead, I generate these declaration on the fly when rewriting a message expression. llvm-svn: 43529
-
- Oct 30, 2007
-
-
Steve Naroff authored
Rewrite protocols. llvm-svn: 43503
-
Steve Naroff authored
- Add location info to category/protocol AST's - Rewrite categories. llvm-svn: 43501
-
Steve Naroff authored
Remove a couple FIXME's for rewriting ObjC interfaces (which are now being rewritten properly). llvm-svn: 43494
-
Steve Naroff authored
More support for rewriting ObjC intefaces. Still some edge cases to handle... llvm-svn: 43493
-
- Oct 29, 2007
-
-
Fariborz Jahanian authored
llvm-svn: 43481
-
Fariborz Jahanian authored
llvm-svn: 43454
-
Anders Carlsson authored
llvm-svn: 43439
-
- Oct 27, 2007
-
-
Fariborz Jahanian authored
llvm-svn: 43409
-
- Oct 26, 2007
-
-
Steve Naroff authored
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
-
Fariborz Jahanian authored
Thanks to Steve N. to point out using of offsetof for this. llvm-svn: 43391
-
- Oct 25, 2007
-
-
Fariborz Jahanian authored
Changed the entire rewrite of metadata to write to std::string object instead of stdout. llvm-svn: 43360
-
Chris Lattner authored
printf as an example. llvm-svn: 43346
-
Fariborz Jahanian authored
instance/class methods metadata. llvm-svn: 43320
-
Steve Naroff authored
Still to do: - Chris will fix a bug in the rewriting engine for nested stmts. For example, the following: NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; tranlates to: NSAutoreleasePool * pool = objc_msgSend(objc_msgSend(objc_getClass("NSAutoreleasePool"), sel_getUid("alloc")), sel_getUid("init"))utoreleasePool"), sel_getUid("alloc")) init]; ...which is correct, except there is garbage after sel_getUid("init"). This is because the rewriter isn't updating the extent of the containing message expression. - Do the crazy cast thang. llvm-svn: 43316
-
- Oct 24, 2007
-
-
Fariborz Jahanian authored
llvm-svn: 43313
-
Fariborz Jahanian authored
protocol meta-data (unlike what documentation says). 2) Include objc.h so, we can compile the generated metadata with both gcc and clang. llvm-svn: 43311
-