summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CGObjCGNU.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* Fix -Wcast-qual warnings.Dan Gohman2010-04-191-1/+2
| | | | llvm-svn: 101786
* Don't just emit ivar metadata - emit CORRECT ivar metadata. (GNU runtime)David Chisnall2010-04-191-2/+8
| | | | llvm-svn: 101759
* Fix emitting ivar metadata for synthesized ivars and some 64-bit fixes. (GNU ↵David Chisnall2010-04-191-12/+15
| | | | | | runtime) llvm-svn: 101758
* Add some API code for future work.Fariborz Jahanian2010-04-121-0/+6
| | | | llvm-svn: 101052
* the big refactoring bits of PR3782.Rafael Espindola2010-03-301-3/+3
| | | | | | | | This introduces FunctionType::ExtInfo to hold the calling convention and the noreturn attribute. The next patch will extend it to include the regparm attribute and fix the bug. llvm-svn: 99920
* Fixed synthesizing properties declared in properties (GNU runtime).David Chisnall2010-03-201-1/+1
| | | | llvm-svn: 99077
* Fixed copy-and-paste error causing categories to contain the protocols ↵David Chisnall2010-03-131-2/+2
| | | | | | declared on the class, not the protocols declared on the category. llvm-svn: 98455
* Don't generate method metadata for @dynamic properties. Fixes PR6354.David Chisnall2010-02-261-7/+12
| | | | llvm-svn: 97199
* Use the power of types to track down another canonicalization bug inJohn McCall2010-02-261-3/+3
| | | | | | the ABI-computation interface. Fixes <rdar://problem/7691046>. llvm-svn: 97197
* StringRefize two random methods, remove a dead variable and a weird ↵Benjamin Kramer2010-02-091-6/+5
| | | | | | | | constructor call. This maybe fixes some of the errors GCC 4.5 gives on this code. llvm-svn: 95684
* Standardize the parsing of function type attributes in a way thatJohn McCall2010-02-051-3/+6
| | | | | | | | | | | | follows (as conservatively as possible) gcc's current behavior: attributes written on return types that don't apply there are applied to the function instead, etc. Only parse CC attributes as type attributes, not as decl attributes; don't accepet noreturn as a decl attribute on ValueDecls, either (it still needs to apply to other decls, like blocks). Consistently consume CC/noreturn information throughout codegen; enforce this by removing their default values in CodeGenTypes::getFunctionInfo(). llvm-svn: 95436
* Revert "Numerous changes to selector handling:", this breaks a whole bunch ofDaniel Dunbar2010-02-031-36/+25
| | | | | | working code, for no apparent reason. llvm-svn: 95244
* First pass at adding GC support for GNU runtime. GC ivar maps not yet ↵David Chisnall2010-02-031-6/+97
| | | | | | | | constructed, GC flag not set. Please don't try using this yet - the runtime support is still very immature and your code will almost certainly crash if you do. llvm-svn: 95222
* Numerous changes to selector handling:David Chisnall2010-02-031-25/+36
| | | | | | | | | | | | | | | | | | | | | | | - Don't use GlobalAliases with non-0 GEPs (GNU runtime) - this was unsupported and LLVM will be generating errors if you do it soon. This also simplifies the code generated by the GNU runtime a bit. - Make GetSelector() return a constant (GNU runtime), not a load of a store of a constant. - Recognise @selector() expressions as valid static initialisers (as GCC does). - Add methods to GCObjCRuntime to emit selectors as constants (needed for using @selector() expressions as constants. These need implementing for the Mac runtimes - I couldn't figure out how to do this, they seem to require a load. - Store an ObjCMethodDecl in an ObjCSelectorExpr so that we can get at the type information for the selector. This is needed for generating typed selectors from @selector() expressions (as GCC does). Ideally, this information should be stored in the Selector, but that would be an invasive change. We should eventually add checks for common uses of @selector() expressions. Possibly adding an attribute that can be applied to method args providing the types of a selector so, for example, you'd do something like this: - (id)performSelector: __attribute__((selector_types(id, SEL, id)))(SEL) withObject: (id)object; Then, any @selector() expressions passed to the method will be check to ensure that it conforms to this signature. We do this at run time on the GNU runtime already, but it would be nice to do it at compile time on all runtimes. - Made @selector() expressions emit type info if available and the runtime supports it. Someone more familiar with the Mac runtime needs to implement the GetConstantSelector() function in CGObjCMac. This currently just assert()s. llvm-svn: 95189
* Unique ObjC strings (GNU Runtime); fix for PR6142. Note: Doing this in the ↵David Chisnall2010-01-271-2/+10
| | | | | | runtime-specific code is a bit ugly. It would be a good idea to hoist all of the string / protocol uniqueing code up into CGObjCRuntime or CodeGenModule and only handle emitting the original versions in the runtime-specific code. llvm-svn: 94676
* Created __builtin___NSStringMakeConstantString() builtin, which generates ↵David Chisnall2010-01-231-10/+15
| | | | | | constant Objective-C strings. llvm-svn: 94274
* Made ObjC method name mangling match GCC (which does it in a stupid and ↵David Chisnall2010-01-141-2/+5
| | | | | | broken way that can give conflicts on method names containing underscores, but is needed for gdb to work because gdb does not know how to read ObjC class tables and relies on the mangling). llvm-svn: 93427
* Fix type mismatch on 64-bit platforms (GNU ObjC).David Chisnall2010-01-111-1/+1
| | | | llvm-svn: 93169
* Export a public symbol for classes with the GNU runtime. David Chisnall2010-01-081-5/+16
| | | | llvm-svn: 92973
* Fix for PR5691David Chisnall2010-01-061-1/+1
| | | | llvm-svn: 92846
* Pass ReturnValueSlot to EmitCall. No functionality change yet.Anders Carlsson2009-12-241-2/+2
| | | | llvm-svn: 92138
* Fix for bug 5691.David Chisnall2009-12-241-6/+24
| | | | | | | | 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
* Change LangOptions::ObjCConstantStringClass to an std::string to avoid ↵Daniel Dunbar2009-11-291-2/+2
| | | | | | worrying about the lifetime. llvm-svn: 90052
* Fixed crash when using undefined protocols (GNU runtime).David Chisnall2009-11-201-2/+7
| | | | llvm-svn: 89457
* Fixed bug where ivar offsets were being initialized as 0 with the fragile ↵David Chisnall2009-11-171-1/+1
| | | | | | GNU ABI. llvm-svn: 89133
* Fixed two minor differences between clang and GCC-generated runtime ↵David Chisnall2009-11-161-1/+3
| | | | | | structures for the GNU runtime. llvm-svn: 88937
* There is now only one version of eh.selector and eh.typeid.for.Duncan Sands2009-10-141-9/+4
| | | | | | Fix the clang build. llvm-svn: 84107
* Simplify pointer creation with the new Type::getInt*Ptr methods.Benjamin Kramer2009-10-131-2/+2
| | | | llvm-svn: 83964
* Patch fixes a code gen. bug in generation of objc_assign_ivarFariborz Jahanian2009-09-241-2/+4
| | | | | | (objc GC's API). llvm-svn: 82724
* Change all the Type::getAsFoo() methods to specializations of Type::getAs().John McCall2009-09-211-3/+3
| | | | | | | | | | | 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
* Make clang stop relying on ConstantStruct::get's default value for isPackedNick Lewycky2009-09-191-3/+3
| | | | | | which will be going away (ie. it's becoming a required parameter) later today. llvm-svn: 82323
* IRgen/ObjC: Correctly construct the function info for variadic message sends.Daniel Dunbar2009-09-171-2/+4
| | | | | | | | 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
* IRgen/ObjC: Make the target method decl available to GenerateMessageSendSuper.Daniel Dunbar2009-09-171-3/+5
| | | | llvm-svn: 82117
* Small fix to stop CGObjCGNU emitting symbols that break some versions of gas.David Chisnall2009-09-141-1/+1
| | | | llvm-svn: 81778
* Fix use of uninitialized, David please check.Daniel Dunbar2009-09-111-1/+1
| | | | llvm-svn: 81570
* Non fragile ABI for GNU runtime. Patch bu David Chisnall.Fariborz Jahanian2009-09-101-73/+359
| | | | llvm-svn: 81462
* Remove tabs, and whitespace cleanups.Mike Stump2009-09-091-129/+126
| | | | llvm-svn: 81346
* Re-implemented generation of objc_memmove_collectableFariborz Jahanian2009-08-311-2/+2
| | | | | | API for copying GC'able aggregates (Next runtime only). llvm-svn: 80607
* Updated GNU runtime non-fragile ABI.David Chisnall2009-08-311-43/+86
| | | | | | | Added -fconstant-string-class= option. Added __has_feature() test for non-fragile ABI. llvm-svn: 80591
* Initial patch to support definitions of id and Class from headers in ↵David Chisnall2009-08-171-10/+13
| | | | | | | | | | 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
* Update for LLVM API change.Owen Anderson2009-08-131-1/+1
| | | | llvm-svn: 78957
* Update for LLVM API change.Owen Anderson2009-08-131-24/+25
| | | | llvm-svn: 78946
* Update for LLVM API change.Owen Anderson2009-08-051-20/+23
| | | | llvm-svn: 78259
* cgobjcgnu was making invalid common globals.Chris Lattner2009-08-051-2/+2
| | | | llvm-svn: 78161
* Fixup spacing and 80-col violations.Mike Stump2009-07-311-20/+27
| | | | llvm-svn: 77731
* Update for LLVM API change.Owen Anderson2009-07-311-1/+1
| | | | llvm-svn: 77722
* Update for LLVM API changes.Owen Anderson2009-07-301-5/+5
| | | | llvm-svn: 77638
* Update for LLVM API change.Owen Anderson2009-07-291-64/+64
| | | | llvm-svn: 77514
* Update for LLVM API change.Owen Anderson2009-07-291-29/+29
| | | | llvm-svn: 77492
* Update for LLVM API change.Owen Anderson2009-07-281-8/+8
| | | | llvm-svn: 77349
OpenPOWER on IntegriCloud