| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 92138
|
| |
|
|
|
|
|
|
| |
This fixes throwing exceptions inside @catch blocks nested inside outer @try blocks and also fixes jumping from an inner @finally to an outer @finally (via any relevant @catch blocks).
The code exhibiting this bug was based on code from CGObjCMac. I believe that this bug may still be present on the Mac runtimes, although the test case in the bug contains a few GNUisms and won't compile without some minor tweaks with Apple's libobjc.
llvm-svn: 92117
|
| |
|
|
|
|
| |
worrying about the lifetime.
llvm-svn: 90052
|
| |
|
|
| |
llvm-svn: 89457
|
| |
|
|
|
|
| |
GNU ABI.
llvm-svn: 89133
|
| |
|
|
|
|
| |
structures for the GNU runtime.
llvm-svn: 88937
|
| |
|
|
|
|
| |
Fix the clang build.
llvm-svn: 84107
|
| |
|
|
| |
llvm-svn: 83964
|
| |
|
|
|
|
| |
(objc GC's API).
llvm-svn: 82724
|
| |
|
|
|
|
|
|
|
|
|
| |
Several of the existing methods were identical to their respective
specializations, and so have been removed entirely. Several more 'leaf'
optimizations were introduced.
The getAsFoo() methods which imposed extra conditions, like
getAsObjCInterfacePointerType(), have been left in place.
llvm-svn: 82501
|
| |
|
|
|
|
| |
which will be going away (ie. it's becoming a required parameter) later today.
llvm-svn: 82323
|
| |
|
|
|
|
|
|
| |
This fixes some bad -O0 codegen and the unnecessary clearing of al on entry to objc_msgSend for most message sends.
<rdar://problem/7102824> [irgen] unnecessary xorb on calls to objc_msgSend on x86_64
llvm-svn: 82118
|
| |
|
|
| |
llvm-svn: 82117
|
| |
|
|
| |
llvm-svn: 81778
|
| |
|
|
| |
llvm-svn: 81570
|
| |
|
|
| |
llvm-svn: 81462
|
| |
|
|
| |
llvm-svn: 81346
|
| |
|
|
|
|
| |
API for copying GC'able aggregates (Next runtime only).
llvm-svn: 80607
|
| |
|
|
|
|
|
| |
Added -fconstant-string-class= option.
Added __has_feature() test for non-fragile ABI.
llvm-svn: 80591
|
| |
|
|
|
|
|
|
|
|
| |
Objective-C code.
This currently breaks test/SemaObjC/id-isa-ref.m and issues some spurious warnings when you attempt to assign a struct objc_class* value to a Class variable. The test case probably should fail as it's written, because without the definition of Class the compiler should not assume struct objc_class* is a valid receiver type, but it's left broken because it would be nice if we could get that passing too for the special case of isa.
Approved by snaroff.
llvm-svn: 79248
|
| |
|
|
| |
llvm-svn: 78957
|
| |
|
|
| |
llvm-svn: 78946
|
| |
|
|
| |
llvm-svn: 78259
|
| |
|
|
| |
llvm-svn: 78161
|
| |
|
|
| |
llvm-svn: 77731
|
| |
|
|
| |
llvm-svn: 77722
|
| |
|
|
| |
llvm-svn: 77638
|
| |
|
|
| |
llvm-svn: 77514
|
| |
|
|
| |
llvm-svn: 77492
|
| |
|
|
| |
llvm-svn: 77349
|
| |
|
|
| |
llvm-svn: 77267
|
| |
|
|
| |
llvm-svn: 77012
|
| |
|
|
| |
llvm-svn: 76959
|
| |
|
|
| |
llvm-svn: 76327
|
| |
|
|
|
|
|
|
| |
llvm.used, just
populate CGM's list directly.
llvm-svn: 76266
|
| |
|
|
| |
llvm-svn: 75705
|
| |
|
|
| |
llvm-svn: 75641
|
| |
|
|
| |
llvm-svn: 75446
|
| |
|
|
|
|
|
|
|
|
|
|
| |
The idea is to segregate Objective-C "object" pointers from general C pointers (utilizing the recently added ObjCObjectPointerType). The fun starts in Sema::GetTypeForDeclarator(), where "SomeInterface *" is now represented by a single AST node (rather than a PointerType whose Pointee is an ObjCInterfaceType). Since a significant amount of code assumed ObjC object pointers where based on C pointers/structs, this patch is very tedious. It should also explain why it is hard to accomplish this in smaller, self-contained patches.
This patch does most of the "heavy lifting" related to moving from PointerType->ObjCObjectPointerType. It doesn't include all potential "cleanups". The good news is additional cleanups can be done later (some are noted in the code). This patch is so large that I didn't want to include any changes that are purely aesthetic.
By making the ObjC types truly built-in, they are much easier to work with (and require fewer "hacks"). For example, there is no need for ASTContext::isObjCIdStructType() or ASTContext::isObjCClassStructType()! We believe this change (and the follow-up cleanups) will pay dividends over time.
Given the amount of code change, I do expect some fallout from this change (though it does pass all of the clang tests). If you notice any problems, please let us know asap! Thanks.
llvm-svn: 75314
|
| |
|
|
| |
llvm-svn: 75041
|
| |
|
|
| |
llvm-svn: 75028
|
| |
|
|
| |
llvm-svn: 74986
|
| |
|
|
|
|
|
| |
when struct variables with GC'able members are copied into.
Will provide a test case later.
llvm-svn: 74984
|
| |
|
|
|
|
|
|
| |
errors when you reference a class before defining it (GNU runtime).
Patch by David Chisnall.
llvm-svn: 74772
|
| |
|
|
| |
llvm-svn: 74585
|
| |
|
|
|
|
|
| |
Remove ASTContext parameter from DeclContext's methods. This change cascaded down to other Decl's methods and changes to call sites started "escalating".
Timings using pre-tokenized "cocoa.h" showed only a ~1% increase in time run between and after this commit.
llvm-svn: 74506
|
| |
|
|
|
|
|
|
|
| |
variables in ObjC's Next runtime mode. Next runtime also implicitly applies
'used' attribute on some of its meta-data. This results in two
'llvm.used' arrays to be generated, and one of them is renamed to
'llvm.used1'.
llvm-svn: 74008
|
| |
|
|
|
|
|
|
| |
corresponding reference to this symbol for every compilation unit that references the class. This causes linker errors when you try linking a program which references some classes but doesn't define them. The attached patch implements this support in clang, so you can compile a class with clang, reference it in a file compiled with GCC, and have it all work correctly."
Patch by David Chisnall!
llvm-svn: 73364
|
| |
|
|
| |
llvm-svn: 72827
|
| |
|
|
|
|
|
|
|
|
| |
runtime, when
compiled with -fobjc-sender-dependent-dispatch. This is used in AOP, COP, implementing object
planes, and a few other things.
Patch by David Chisnall.
llvm-svn: 72275
|