aboutsummaryrefslogtreecommitdiff
path: root/lib/CodeGen/CGObjCGNU.cpp
AgeCommit message (Collapse)Author
2012-01-03Initialise constant Objective-C string isa pointers with a weak reference to ↵David Chisnall
the class, so that they are usable in +load methods if the string class has been compiled with clang - if it's been compiled with GCC, the ABI makes this impossible. (GNU runtimes) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147493 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-01Introduce the core infrastructure needed to model redeclaration chainsDouglas Gregor
for Objective-C protocols, including: - Using the first declaration as the canonical declaration - Using the definition as the primary DeclContext - Making sure that all declarations have a pointer to the definition data, and that we know which declaration is the definition - Serialization support for redeclaration chains and for adding definitions to already-serialized declarations. However, note that we're not taking advantage of much of this code yet, because we're still re-using ObjCProtocolDecls. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147410 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-01Fix -forwardingTargetForSelector: (GNUstep runtime) which was broken for theDavid Chisnall
old dispatch mechanism when I introduced the new one. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145609 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-28It turns out that the Objective-C message lookup functions can throw ↵David Chisnall
exceptions after all... git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143205 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-25Change an int64_t to an intptr_t so that we don't end up with crashes in the ↵David Chisnall
back end on large classes on 32-bit. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142918 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-24Remove debugging printfs that some idiot left in.David Chisnall
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142796 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-24Enable experimental support for objc_msgSend with GNUstep ObjC runtime.David Chisnall
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142795 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-08Apparently getPtrToInt() takes an explicit type parameter to allow you to ↵David Chisnall
generate invalid bitcode, not so that it can actually produce a value of this type. This should fix PR11085. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141482 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-08Fix warning on MSVC. Patch by Aaron Ballman.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141467 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-04Add bitmaps for strong / weak ivar layout (GNUstep runtime).David Chisnall
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141085 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-01When performing an @throw in ARC, retain + autoreleaseJohn McCall
the pointer, being sure to do so before running cleanups associated with that full-expression. rdar://10042689 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140945 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-27de-tmpify clang.Benjamin Kramer
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140637 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-23Switch assert(0/false) llvm_unreachable.David Blaikie
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140367 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-21Change "ivar" to true for a boolean function argument. Since string ↵Richard Trieu
literals are cast to true, this should no effect on behavior. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140231 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-13Switch LangOptions over to a .def file that describes header of theDouglas Gregor
language options. Use that .def file to declare the LangOptions class and initialize all of its members, eliminating a source of annoying initialization bugs. AST serialization changes are next up. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139605 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-12switch clang to use the new-new way of creating llvm::StructType's.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137472 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-08Fix typo so we don't use the wrong function for ending ObjC++ catch blocks ↵David Chisnall
(GNU runtimes) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137052 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-01Fix linkage type for tentative definition of ivar offset variables (GNUstep ↵David Chisnall
runtime) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136628 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-29Remove some unnecessary single element array temporaries.Jay Foad
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136461 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-23remove unneeded llvm:: namespace qualifiers on some core types now that ↵Chris Lattner
LLVM.h imports them into the clang namespace. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135852 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-22Add a const overload for ObjCInterfaceDecl::all_declared_ivar_begin.Jordy Rose
This was previously not-const only because it has to lazily construct a chain of ivars the first time it is called (and after the chain is invalidated). In practice, all the clients were just const_casting their const Decls; all those now-unnecessary const_casts have been removed. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135741 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-21Convert ConstantExpr::getGetElementPtr andJay Foad
ConstantExpr::getInBoundsGetElementPtr to use ArrayRef. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135673 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-18de-constify llvm::Type, patch by David Blaikie!Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135370 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-15Convert CallInst and InvokeInst APIs to use ArrayRef.Jay Foad
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135265 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-11De-constify Types in StructType::get() and TargetData::getIntPtrType().Jay Foad
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134893 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-09clang side to match the LLVM IR type system rewrite patch.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134831 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-07If we're using the pure non-fragile ABI, then skip some of the contortions ↵David Chisnall
required to support the transitional ABI. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134612 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-07Set a flag to tell the runtime when we're compiling in ARC mode and use the ↵David Chisnall
pure-nonfragile ABI for both ARC and GC mode. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134611 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-30Add support for weakly imported classes (GNU runtime).David Chisnall
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134140 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-29Add ARC support for the GNUstep runtime.David Chisnall
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134065 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-23Support for catching objc pointer objects in c++ catch-statementFariborz Jahanian
in fragile abi mode and some other cleanups. // rdar://8940528 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133747 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-22Alloa catching Objective-C id's being thrown with C++ throwFariborz Jahanian
in Darwin's fragile abi mode. // rdar://8940528 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133639 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-20Update to match mainline ConstantStruct::get API change. Also, use Chris Lattner
ConvertType on InitListExprs as they are being converted. This is needed for a forthcoming patch, and improves the IR generated anyway (see additional type names in testcases). This patch also converts a bunch of std::vector's in CGObjCMac to use C arrays. There are a ton more that should be converted as well. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133413 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-18update for api change.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133365 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-15Automatic Reference Counting.John McCall
Language-design credit goes to a lot of people, but I particularly want to single out Blaine Garst and Patrick Beard for their contributions. Compiler implementation credit goes to Argyrios, Doug, Fariborz, and myself, in no particular order. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133103 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-30Fix another incorrect type bug.David Chisnall
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132311 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-28Eliminate temporary argument vectors.Benjamin Kramer
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132260 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-28Fix another type mismatch.David Chisnall
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132259 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-28Fix missing cast.David Chisnall
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132258 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-25Remove bitcast to incorrect type.David Chisnall
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132077 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-23Fix bug introduced with r131930.David Chisnall
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131935 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-23Don't omit retain / release / autorelease message sends in hybrid GC mode.David Chisnall
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131932 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-23Fix some problems where functions must be bitcast but we're expecting a ↵David Chisnall
llvm::Function of the right type. PR9994. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131930 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-22Provide the runtime with information about the GC compile options (GNU runtimes)David Chisnall
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131877 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-17Patch to fix IR-gen crash generating structure ABI which implementsFariborz Jahanian
user specified string class via -fconstant-string-class option. pr9914. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131496 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-02Simplify code a bit by using CallArgList::add. No intended functionality ↵Eli Friedman
change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130699 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-02Remove a dead variable flagged by gcc's -Wunused-but-set-variable. NoNick Lewycky
functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130672 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-29Don't crash if the AST doesn't have a sensible ObjC id type.David Chisnall
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130500 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-23Remove unused STL header includes.Jay Foad
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130068 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-22Replace a couple of literal 8s with ASTContext::getCharWidth(). No change inKen Dyck
functionality intended. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130002 91177308-0d34-0410-b5e6-96231b3b80d8