Chris Lattner
9c81833c8d
reapply the patches reverted in r149477, which enable ConstantDataArray.
...
llvm-svn: 149801
2012-02-05 02:30:40 +00:00
David Chisnall
af066bbb1f
size() == 0 -> empty().
...
Spotted by rjmcall.
llvm-svn: 149526
2012-02-01 19:16:56 +00:00
Argyrios Kyrtzidis
a11b35a9b0
Revert r149363 which was part a series of commits that were reverted in llvm
...
commit 149470. This fixes test/CodeGen/PR3589-freestanding-libcalls.c.
Original log:
ConstantArray::get() (for strings) is going away, use
ConstantDataArray::getString instead.
Many instances of ConstantArray::get() could be moved to
use more efficient ConstantDataArray methods that avoid a ton
of intermediate Constant*'s for each element (e.g.
GetConstantArrayFromStringLiteral). I don't plan on doing this
in the short-term though.
llvm-svn: 149477
2012-02-01 06:36:49 +00:00
David Chisnall
92d436b49a
Support @compatibility_alias at run time (GNUstep Runtime)
...
Patch by Niels Grewe!
llvm-svn: 149401
2012-01-31 18:59:20 +00:00
Chris Lattner
f4a4bec3a0
ConstantArray::get() (for strings) is going away, use
...
ConstantDataArray::getString instead.
Many instances of ConstantArray::get() could be moved to
use more efficient ConstantDataArray methods that avoid a ton
of intermediate Constant*'s for each element (e.g.
GetConstantArrayFromStringLiteral). I don't plan on doing this
in the short-term though.
llvm-svn: 149363
2012-01-31 06:13:55 +00:00
David Blaikie
f47fa304a4
Remove unnecessary default cases in switches over enums.
...
This allows -Wswitch-enum to find switches that need updating when these enums are modified.
llvm-svn: 148281
2012-01-17 02:30:50 +00:00
Fariborz Jahanian
1e1b54926b
objc++: some declarations related to atomic
...
properties of c++ object types with non-trivial
assignment copy. Not used yet. // rdar://6137845
llvm-svn: 147666
2012-01-06 18:07:23 +00:00
David Chisnall
207a630052
Restore r147493 and remove the part of the test that was checking the wrong thing.
...
llvm-svn: 147530
2012-01-04 12:02:13 +00:00
Rafael Espindola
f90b6d1580
Revert r147493. It broke test/CodeGenObjC/constant-strings.m.
...
llvm-svn: 147511
2012-01-04 01:32:19 +00:00
David Chisnall
31640e1606
Initialise constant Objective-C string isa pointers with a weak reference to 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)
...
llvm-svn: 147493
2012-01-03 23:18:17 +00:00
Douglas Gregor
a715bfff98
Introduce the core infrastructure needed to model redeclaration chains
...
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.
llvm-svn: 147410
2012-01-01 19:51:50 +00:00
David Chisnall
6aec31a5cf
Fix -forwardingTargetForSelector: (GNUstep runtime) which was broken for the
...
old dispatch mechanism when I introduced the new one.
llvm-svn: 145609
2011-12-01 18:40:09 +00:00
David Chisnall
0cc83e7518
It turns out that the Objective-C message lookup functions can throw exceptions after all...
...
llvm-svn: 143205
2011-10-28 17:55:06 +00:00
David Chisnall
e89ac0666b
Change an int64_t to an intptr_t so that we don't end up with crashes in the back end on large classes on 32-bit.
...
llvm-svn: 142918
2011-10-25 10:12:21 +00:00
David Chisnall
d5bcd07e5d
Remove debugging printfs that some idiot left in.
...
llvm-svn: 142796
2011-10-24 14:11:46 +00:00
David Chisnall
8c93cf2a27
Enable experimental support for objc_msgSend with GNUstep ObjC runtime.
...
llvm-svn: 142795
2011-10-24 14:07:03 +00:00
David Chisnall
e0dc7cb2e2
Apparently getPtrToInt() takes an explicit type parameter to allow you to generate invalid bitcode, not so that it can actually produce a value of this type. This should fix PR11085.
...
llvm-svn: 141482
2011-10-08 08:54:36 +00:00
Eli Friedman
235266700a
Fix warning on MSVC. Patch by Aaron Ballman.
...
llvm-svn: 141467
2011-10-08 01:03:47 +00:00
David Chisnall
cdd207e43e
Add bitmaps for strong / weak ivar layout (GNUstep runtime).
...
llvm-svn: 141085
2011-10-04 15:35:30 +00:00
John McCall
248512a573
When performing an @throw in ARC, retain + autorelease
...
the pointer, being sure to do so before running cleanups
associated with that full-expression. rdar://10042689
llvm-svn: 140945
2011-10-01 10:32:24 +00:00
Benjamin Kramer
76399eb2ad
de-tmpify clang.
...
llvm-svn: 140637
2011-09-27 21:06:10 +00:00
David Blaikie
83d382b1ca
Switch assert(0/false) llvm_unreachable.
...
llvm-svn: 140367
2011-09-23 05:06:16 +00:00
Richard Trieu
e4f3180fec
Change "ivar" to true for a boolean function argument. Since string literals are cast to true, this should no effect on behavior.
...
llvm-svn: 140231
2011-09-21 02:46:06 +00:00
Douglas Gregor
79a91418bd
Switch LangOptions over to a .def file that describes header of the
...
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.
llvm-svn: 139605
2011-09-13 17:21:33 +00:00
Chris Lattner
5ec04a51fa
switch clang to use the new-new way of creating llvm::StructType's.
...
llvm-svn: 137472
2011-08-12 17:43:31 +00:00
David Chisnall
51ed0d112b
Fix typo so we don't use the wrong function for ending ObjC++ catch blocks (GNU runtimes)
...
llvm-svn: 137052
2011-08-08 17:26:06 +00:00
David Chisnall
28dc7f94f8
Fix linkage type for tentative definition of ivar offset variables (GNUstep runtime)
...
llvm-svn: 136628
2011-08-01 17:36:53 +00:00
Jay Foad
5709f7c5f7
Remove some unnecessary single element array temporaries.
...
llvm-svn: 136461
2011-07-29 13:56:53 +00:00
Chris Lattner
0e62c1cc0b
remove unneeded llvm:: namespace qualifiers on some core types now that LLVM.h imports
...
them into the clang namespace.
llvm-svn: 135852
2011-07-23 10:55:15 +00:00
Jordy Rose
a91768e569
Add a const overload for ObjCInterfaceDecl::all_declared_ivar_begin.
...
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.
llvm-svn: 135741
2011-07-22 02:08:32 +00:00
Jay Foad
ed8db7d9df
Convert ConstantExpr::getGetElementPtr and
...
ConstantExpr::getInBoundsGetElementPtr to use ArrayRef.
llvm-svn: 135673
2011-07-21 14:31:17 +00:00
Chris Lattner
2192fe50da
de-constify llvm::Type, patch by David Blaikie!
...
llvm-svn: 135370
2011-07-18 04:24:23 +00:00
Jay Foad
5bd375a6cc
Convert CallInst and InvokeInst APIs to use ArrayRef.
...
llvm-svn: 135265
2011-07-15 08:37:34 +00:00
Jay Foad
7c57be3e2b
De-constify Types in StructType::get() and TargetData::getIntPtrType().
...
llvm-svn: 134893
2011-07-11 09:56:20 +00:00
Chris Lattner
a5f58b05e8
clang side to match the LLVM IR type system rewrite patch.
...
llvm-svn: 134831
2011-07-09 17:41:47 +00:00
David Chisnall
1bfe6d374d
If we're using the pure non-fragile ABI, then skip some of the contortions required to support the transitional ABI.
...
llvm-svn: 134612
2011-07-07 12:34:51 +00:00
David Chisnall
a918b88952
Set a flag to tell the runtime when we're compiling in ARC mode and use the pure-nonfragile ABI for both ARC and GC mode.
...
llvm-svn: 134611
2011-07-07 11:22:31 +00:00
David Chisnall
08d6733ed7
Add support for weakly imported classes (GNU runtime).
...
llvm-svn: 134140
2011-06-30 10:14:37 +00:00
David Chisnall
920e83b00b
Add ARC support for the GNUstep runtime.
...
llvm-svn: 134065
2011-06-29 13:16:41 +00:00
Fariborz Jahanian
831f0fc2e0
Support for catching objc pointer objects in c++ catch-statement
...
in fragile abi mode and some other cleanups. // rdar://8940528
llvm-svn: 133747
2011-06-23 19:00:08 +00:00
Fariborz Jahanian
0a3cfcc87f
Alloa catching Objective-C id's being thrown with C++ throw
...
in Darwin's fragile abi mode. // rdar://8940528
llvm-svn: 133639
2011-06-22 20:21:51 +00:00
Chris Lattner
e64d7ba153
Update to match mainline ConstantStruct::get API change. Also, use
...
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.
llvm-svn: 133413
2011-06-20 04:01:35 +00:00
Chris Lattner
845511fe1c
update for api change.
...
llvm-svn: 133365
2011-06-18 22:49:11 +00:00
John McCall
31168b077c
Automatic Reference Counting.
...
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.
llvm-svn: 133103
2011-06-15 23:02:42 +00:00
David Chisnall
fcb37e944f
Fix another incorrect type bug.
...
llvm-svn: 132311
2011-05-30 12:00:26 +00:00
Benjamin Kramer
df1fb13a5c
Eliminate temporary argument vectors.
...
llvm-svn: 132260
2011-05-28 14:26:31 +00:00
David Chisnall
7441d8823f
Fix another type mismatch.
...
llvm-svn: 132259
2011-05-28 14:23:43 +00:00
David Chisnall
8a42d19b33
Fix missing cast.
...
llvm-svn: 132258
2011-05-28 14:09:01 +00:00
David Chisnall
e4e5c0f219
Remove bitcast to incorrect type.
...
llvm-svn: 132077
2011-05-25 20:33:17 +00:00
David Chisnall
b85775c3ba
Fix bug introduced with r131930.
...
llvm-svn: 131935
2011-05-23 23:15:11 +00:00