- Jul 12, 2011
-
-
Peter Collingbourne authored
llvm-svn: 134996
-
Benjamin Kramer authored
llvm-svn: 134995
-
Douglas Gregor authored
block pointers) that don't have any qualification to be POD types. We were previously considering them to be non-POD types, because this was convenient in C++ for is_pod-like traits. However, we now end up inferring lifetime in such cases (template arguments infer __strong), so it is not necessary. Moreover, we want rvalues of object type (which have their lifetime stripped) to be PODs to allow, e.g., va_arg(arglist, id) to function properly. Fixes <rdar://problem/9758798>. llvm-svn: 134993
-
Fariborz Jahanian authored
implicit ivar accesses to go through the 'self' variable rather than the real 'self' for the method. // rdar://9730771 llvm-svn: 134992
-
John McCall authored
llvm-svn: 134989
-
John McCall authored
and kill a lot of redundant code. llvm-svn: 134988
-
Douglas Gregor authored
dependent. This covers an odd class of types such as int (&)[sizeof(sizeof(T() + T()))]; which involve template parameters but, because of some trick typically involving a form of expression that is never type-dependent, resolve down to a non-dependent type. Such types need to be mangled essentially as they were written in the source code (involving template parameters), rather than via their canonical type. In general, instantiation-dependent types should be mangled as they were written in the source. However, since we can't do that now without non-trivial refactoring of the AST (see the new FIXME), I've gone for this partial solution: only use the as-written-in-the-source mangling for these strange types that are instantiation-dependent but not dependent. This provides better compatibility with previous incarnations of Clang and with GCC. In the future, we'd like to get this right. Fixes <rdar://problem/9663282>. llvm-svn: 134984
-
Benjamin Kramer authored
Found by valgrind. llvm-svn: 134983
-
Jay Foad authored
StructType::get() and TargetData::getIntPtrType(). llvm-svn: 134982
-
Chandler Carruth authored
builds introduced in r134972: lib/CodeGen/CGExpr.cpp:1294:7: error: no matching function for call to 'EmitBitCastOfLValueToProperType' lib/CodeGen/CGExpr.cpp:1278:1: note: candidate function not viable: no known conversion from 'CGBuilderTy' (aka 'IRBuilder<false>') to 'llvm::IRBuilder<> &' for 1st argument This fixes the issue by passing CodeGenFunction on down, and using its builder directly rather than passing just the builder down. This may not be the best / cleanest fix, Chris please review. It at least fixes builds. llvm-svn: 134977
-
Hans Wennborg authored
It would be cool if we could do overload resolution to suggest the right function, but at least this fixes the crashing. llvm-svn: 134976
-
Douglas Gregor authored
llvm-svn: 134974
-
Douglas Gregor authored
isSugared() and desugar() routines previously provided were never actually called, since the corresponding types (DependentTypeOfExprType, DependentDecltypeType) don't have corresponding type classes. Outside of the current (incomplete) patch I'm working on, I haven't found a way to trigger this problem. llvm-svn: 134973
-
Chris Lattner authored
uncompleted struct types. We now do what llvm-gcc does and compile them into [i8 x 0]. If the type is later completed, we make sure that it is appropriately cast. We compile the terrible example to something like this now: %struct.A = type { i32, i32, i32 } @g = external global [0 x i8] define void @_Z1fv() nounwind { entry: call void @_Z3fooP1A(%struct.A* bitcast ([0 x i8]* @g to %struct.A*)) ret void } declare void @_Z3fooP1A(%struct.A*) define %struct.A* @_Z2f2v() nounwind { entry: ret %struct.A* getelementptr inbounds ([0 x %struct.A]* bitcast ([0 x i8]* @g to [0 x %struct.A]*), i32 0, i64 1) } llvm-svn: 134972
-
Chris Lattner authored
fixes the -m32 build of oggenc. llvm-svn: 134971
-
Chris Lattner authored
stuff like this: typedef struct { int x, y, z; } foo_t; foo_t g; into: %"struct.<anonymous>" = type { i32, i32, i32 } we now get: %struct.foo_t = type { i32, i32, i32 } This doesn't change the behavior of the compiler, but makes the IR much easier to read. llvm-svn: 134969
-
Douglas Gregor authored
llvm-svn: 134967
-
Chris Lattner authored
llvm-svn: 134966
-
Argyrios Kyrtzidis authored
No functionality change. llvm-svn: 134965
-
Chris Lattner authored
llvm-svn: 134964
-
Douglas Gregor authored
non-instantiation-dependent sizeof and alignof expressions. llvm-svn: 134963
-
Chris Lattner authored
expectations in EmitCall. Next patch will take this further. llvm-svn: 134962
-
Douglas Gregor authored
code so that they only occur in a single place. No functionality change. llvm-svn: 134961
-
Argyrios Kyrtzidis authored
[ARC] Complain about property without storage attribute when @synthesizing it, not at its declaration. For this sample: @interface Foo @property id x; @end we get: t.m:2:1: error: ARC forbids properties of Objective-C objects with unspecified storage attribute @property id x; ^ 1 error generated. The error should be imposed on the implementor of the interface, not the user. If the user uses a header of a non-ARC library whose source code he does not have, we are basically asking him to go change the header of the library (bad in general), possible overriding how the property is implemented if he gets confused and says "Oh I'll just add 'copy' then" (even worse). Second issue is that we don't emit any error for 'readonly' properties, e.g: @interface Foo @property (readonly) id x; // no error here @end @implementation Foo @synthesize x; // no error here too @end We should give an error when the implementor is @synthesizing a property which doesn't have any storage specifier; this is when the explicit specifier is important, because we are going to create an ivar and we want its ownership to be explicit. Related improvements: -OBJC_PR_unsafe_unretained turned out to not fit in ObjCPropertyDecl's bitfields, fix it. -For properties of extension classes don't drop PropertyAttributesAsWritten values. -Have PropertyAttributesAsWritten actually only reflect what the user wrote rdar://9756610. llvm-svn: 134960
-
Bruno Cardoso Lopes authored
llvm-svn: 134952
-
Bruno Cardoso Lopes authored
passing. llvm-svn: 134951
-
Bill Wendling authored
an assert on Darwin llvm-gcc builds. Assertion failed: (castIsValid(op, S, Ty) && "Invalid cast!"), function Create, file /Users/buildslave/zorg/buildbot/smooshlab/slave-0.8/build.llvm-gcc-i386-darwin9-RA/llvm.src/lib/VMCore/Instructions.cpp, line 2067. etc. http://smooshlab.apple.com:8013/builders/llvm-gcc-i386-darwin9-RA/builds/2354 --- Reverse-merging r134888 into '.': U lib/CodeGen/CodeGenModule.cpp llvm-svn: 134950
-
Bruno Cardoso Lopes authored
which is: { <4 x float>, <4 x float> } should continue to go through memory. llvm-svn: 134946
-
John McCall authored
people write useful cleanup classes. llvm-svn: 134942
-
Bruno Cardoso Lopes authored
specified, 128 avx code is used and we're not sure yet if this the behavior we want (and if it does, some improvements are needed before relying on it). llvm-svn: 134939
-
Chandler Carruth authored
Patch by Caitlin Sadowski. llvm-svn: 134938
-
Chandler Carruth authored
into a static helper. Original patch by Caitlin Sadowski, style tweaks by me. llvm-svn: 134937
-
Bruno Cardoso Lopes authored
llvm-svn: 134935
-
Bruno Cardoso Lopes authored
add one more testcase. llvm-svn: 134934
-
Douglas Gregor authored
llvm-svn: 134932
-
NAKAMURA Takumi authored
Revert r134898, "test/Frontend/dependency-gen.c: Mark XFAIL: mingw due to PR10331. to appease mingw-target (and non-mingw-host) builds. PR10331 is still alive I suppose. llvm-svn: 134931
-
- Jul 11, 2011
-
-
Argyrios Kyrtzidis authored
llvm-svn: 134928
-
Argyrios Kyrtzidis authored
llvm-svn: 134927
-
Eli Friedman authored
llvm-svn: 134926
-
Eli Friedman authored
llvm-svn: 134925
-