| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
| |
- Add Sema::CurMethodDecl, in preparation for adding ObjcIvarRefExpr.
- Add ObjcInterfaceDecl::lookupInstanceVariable(), in prep for adding ivars.
- A couple renames in ObjcInterfaceDecl, while I was in the vicinity:-)
llvm-svn: 44015
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
about private methods (r43989).
While the diff is large, the idea is very simple. When we parse method definitions (in an @implementation), we need to add them incrementally (rather than wait until the @end).
Other details...
- Renamed Sema::ActOnAddMethodsToObjcDecl() to Sema::ActOnAtEnd(). The methods are now optional arguments.
- Removed Parser::AllImplMethods (a nice cleanup).
- Added location info to ObjcImplementationDecl (since we will need it very soon:-)
- Modified message.m test to no longer allow the bogus diagnostic.
llvm-svn: 43995
|
|
|
|
| |
llvm-svn: 43986
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(1) serialize out top-level decls BEFORE serializing out translation unit
structures like ASTContext.
(2) deserialize out translation unit structures like ASTContext before
top-level decls by first skipping the decls in the bitstream, deserializing
ASTContext and friends, and then jumping back to the bitstream block with the
decls and then deserializing them.
Change (1) allows us to utilize the pointer-tracking system in the Serializer
to only serialize out metadata that is actually referenced by the ASTS.
Change (2) allows us to deserialize the metadata first as before, which
signficantly reduces the amount of pointer backpatching the deserializer
would have to do if the decls were deserialized first.
llvm-svn: 43974
|
|
|
|
| |
llvm-svn: 43947
|
|
|
|
|
|
|
| |
- tweak scanForProtocolRefs heuristic.
- disable RewriteInclude() for now.
llvm-svn: 43942
|
|
|
|
|
|
| |
previous one, works:-)
llvm-svn: 43890
|
|
|
|
| |
llvm-svn: 43882
|
|
|
|
|
|
|
| |
Disable rewrite-tabs. This speeds up processing of the commentified huge
crazy testcase steve gave me from 20s to 6.6s in a release build.
llvm-svn: 43880
|
|
|
|
|
|
|
|
| |
- declare functions we use.
- cast arguments to objc_exception_match().
- don't take the & of _stack.buf.
llvm-svn: 43831
|
|
|
|
| |
llvm-svn: 43830
|
|
|
|
| |
llvm-svn: 43820
|
|
|
|
|
|
| |
Still need to rewrite @throw (and do more testing)...
llvm-svn: 43803
|
|
|
|
| |
llvm-svn: 43791
|
|
|
|
| |
llvm-svn: 43790
|
|
|
|
|
|
| |
file had the correct preamble.
llvm-svn: 43785
|
|
|
|
| |
llvm-svn: 43778
|
|
|
|
|
|
| |
ASTContext and top-level decls.
llvm-svn: 43773
|
|
|
|
|
|
| |
serialization of simple ASTs.
llvm-svn: 43738
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
silly warning.
llvm-svn: 43706
|
|
|
|
| |
llvm-svn: 43705
|
|
|
|
|
|
|
| |
- fix a couple bugs in RewriteObjCStringLiteral.
- convert "Class" -> "id" in RewriteMessageExpr.
llvm-svn: 43704
|
|
|
|
| |
llvm-svn: 43690
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- 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
|
|
|
|
| |
llvm-svn: 43665
|
|
|
|
|
|
|
| |
ASTConsumer to process the AST before it is destroyed.
This allows elimination of HandleObjcMetaDataEmission.
llvm-svn: 43659
|
|
|
|
|
|
| |
- Also removed a tab from the generated struct (minor).
llvm-svn: 43616
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
been generated).
llvm-svn: 43600
|
|
|
|
|
|
| |
2) Fixed a test failure (which should have failed all along!).
llvm-svn: 43589
|
|
|
|
|
|
| |
asserted).
llvm-svn: 43586
|
|
|
|
| |
llvm-svn: 43585
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- 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
|
|
|
|
|
|
| |
This fixes the recent regression with selector-1.m and -parse-noop.
llvm-svn: 43575
|
|
|
|
|
|
|
|
| |
Make target info available to clang code generator. This is far from complete but this helps clang codegen module make progress.
At the moment target triplet and target description strings are hard coded in clang::TargetInfo
llvm-svn: 43572
|
|
|
|
| |
llvm-svn: 43560
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 43544
|
|
|
|
| |
llvm-svn: 43543
|
|
|
|
|
|
|
| |
This is far from complete but this helps clang codegen module
make progress.
llvm-svn: 43536
|
|
|
|
|
|
| |
generate these declaration on the fly when rewriting a message expression.
llvm-svn: 43529
|
|
|
|
| |
llvm-svn: 43503
|
|
|
|
|
|
| |
- Rewrite categories.
llvm-svn: 43501
|
|
|
|
|
|
| |
rewritten properly).
llvm-svn: 43494
|
|
|
|
| |
llvm-svn: 43493
|
|
|
|
| |
llvm-svn: 43481
|
|
|
|
| |
llvm-svn: 43454
|
|
|
|
| |
llvm-svn: 43439
|
|
|
|
| |
llvm-svn: 43409
|