- Jul 23, 2011
-
-
Chris Lattner authored
llvm-svn: 135855
-
Chris Lattner authored
them into the clang namespace. llvm-svn: 135852
-
Chris Lattner authored
patch by Jon Mulder! llvm-svn: 135851
-
- Jul 22, 2011
-
-
John McCall authored
Introduce and document a new objc_returns_inner_pointer attribute, and consume it by performing a retain+autorelease on message receivers when they're not immediately loaded from an object with precise lifetime. llvm-svn: 135764
-
Jay Foad authored
ArrayRef. llvm-svn: 135761
-
Chris Lattner authored
Many thanks to Eli for reducing this great testcase. llvm-svn: 135752
-
John McCall authored
their loaded values, although it still worth doing this for __weak properties to get the autoreleased-return-value optimization. llvm-svn: 135747
-
Jordy Rose authored
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
-
- Jul 21, 2011
-
-
Jay Foad authored
ConstantExpr::getInBoundsGetElementPtr to use ArrayRef. llvm-svn: 135673
-
- Jul 20, 2011
-
-
Benjamin Kramer authored
llvm-svn: 135585
-
Chris Lattner authored
llvm-svn: 135577
-
Chris Lattner authored
some common llvm types: stringref and smallvector. This cleans up the codebase quite a bit. llvm-svn: 135576
-
rdar://9780211Chris Lattner authored
This is something of a hack, the problem is as follows: 1. we instantiate both copied of RetainPtr with the two different argument types (an id and protocol-qualified id). 2. We refer to the ctor of one of the instantiations when introducing global "x", this causes us to emit an llvm::Function for a prototype whose "this" has type "RetainPtr<id<bork> >*". 3. We refer to the ctor of the other instantiation when introducing global "y", however, because it *mangles to the same name as the other ctor* we just use a bitcasted version of the llvm::Function we previously emitted. 4. We emit deferred declarations, causing us to emit the body of the ctor, however the body we emit is for RetainPtr<id>, which expects its 'this' to have an IR type of "RetainPtr<id>*". Because of the mangling collision, we don't have this case, and explode. This is really some sort of weird AST invariant violation or something, but hey a bitcast makes the pain go away. llvm-svn: 135572
-
Chris Lattner authored
It doesn't matter in practice, but it is good to be tidy. llvm-svn: 135571
-
Chris Lattner authored
and ConvertTypeForMem are the same for pointers, it is best to just use ConvertType. Thanks Eli! llvm-svn: 135567
-
Chris Lattner authored
decaying an array of incomplete type (which has type [0 x i8]*) to a normal pointer (which has incompletetype*). llvm-svn: 135565
-
- Jul 19, 2011
-
-
Evan Cheng authored
llvm-svn: 135469
-
Devang Patel authored
llvm-svn: 135456
-
Devang Patel authored
llvm-svn: 135437
-
- Jul 18, 2011
-
-
Frits van Bommel authored
Migrate LLVM and Clang to use the new makeArrayRef(...) functions where previously explicit non-default constructors were used. Mostly mechanical with some manual reformatting. llvm-svn: 135390
-
Nick Lewycky authored
Fixes PR10233! llvm-svn: 135377
-
Chris Lattner authored
llvm-svn: 135370
-
- Jul 15, 2011
-
-
Joerg Sonnenberger authored
llvm-svn: 135285
-
Jay Foad authored
llvm-svn: 135265
-
John McCall authored
is right --- shouldn't there be a TypeLoc in here somewhere? --- but at least it doesn't have a redundant QualType and a broken children() method. Noticed this while doing things in serialization. llvm-svn: 135257
-
Chris Lattner authored
to prevent recursive compilation problems. This fixes a failure of CodeGen/decl.c on x86-32 targets that don't fill in the coerce-to type. llvm-svn: 135256
-
Chris Lattner authored
types. Fore xample, we used to lower: struct bar { int a; }; struct foo { void (*FP)(struct bar); } G; to: %struct.foo = type { {}* } since the function pointer would cause recursive translation of bar and we didn't know if that would get us into trouble. We are now smart enough to know that it is fine, so we get this type instead: %struct.foo = type { void (i32)* } Codegen still needs to be prepared for uncooperative types at any place, which is why I let the maximally uncooperative code sit around for awhile to help shake out the bugs. llvm-svn: 135244
-
John McCall authored
to represent a fully-substituted non-type template parameter. This should improve source fidelity, as well as being generically useful for diagnostics and such. llvm-svn: 135243
-
- Jul 14, 2011
-
-
Benjamin Kramer authored
llvm-svn: 135155
-
- Jul 13, 2011
-
-
Bruno Cardoso Lopes authored
llvm-svn: 135091
-
Devang Patel authored
llvm-svn: 135083
-
John McCall authored
llvm-svn: 135054
-
John McCall authored
them, too. llvm-svn: 135038
-
John McCall authored
llvm-svn: 135036
-
John McCall authored
partial destruction. llvm-svn: 135033
-
Chris Lattner authored
i32. They almost always end up this way in the end anyway, and if we get lucky, this avoids generating some bitcasts. llvm-svn: 135032
-
Chris Lattner authored
like arguments. Thanks PR10337! :) llvm-svn: 135030
-
John McCall authored
llvm-svn: 135029
-
John McCall authored
storage duration, then explicitly exempt ownership-qualified types from it. llvm-svn: 135028
-
John McCall authored
which implicitly makes it EH-safe as well. llvm-svn: 135025
-