- Jul 12, 2011
-
-
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
-
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
-
- Jul 11, 2011
-
-
Eli Friedman authored
llvm-svn: 134926
-
-
John McCall authored
llvm-svn: 134913
-
Fariborz Jahanian authored
require destruction and there is possibility of that without construction. Thanks Johnm for review and suggestions offline. // rdar://9535237. llvm-svn: 134906
-
Chandler Carruth authored
When two different types has the same text representation in the same diagnostic message, print an a.k.a. after the type if the a.k.a. gives extra information about the type. class versa_string; typedef versa_string string; namespace std {template <typename T> class vector;} using std::vector; void f(vector<string> v); namespace std { class basic_string; typedef basic_string string; template <typename T> class vector {}; void g() { vector<string> v; f(v); } } Old message: ---------------- test.cc:15:3: error: no matching function for call to 'f' f(&v); ^ test.cc:7:6: note: candidate function not viable: no known conversion from 'vector<string>' to 'vector<string>' for 1st argument void f(vector<string> v); ^ 1 error generated. New message: --------------- test.cc:15:3: error: no matching function for call to 'f' f(v); ^ test.cc:7:6: note: candidate function not viable: no known conversion from 'vector<string>' (aka 'std::vector<std::basic_string>') to 'vector<string>' (aka 'std::vector<versa_string>') for 1st argument void f(vector<string> v); ^ 1 error generated. llvm-svn: 134904
-
Douglas Gregor authored
functions. Fixes <rdar://problem/9731999>. llvm-svn: 134897
-
Jay Foad authored
llvm-svn: 134893
-
Abramo Bagnara authored
llvm-svn: 134892
-
John McCall authored
- an off-by-one error in emission of irregular array limits for InitListExprs - use an EH partial-destruction cleanup within the normal array-destruction cleanup - get the branch destinations right for the empty check Also some refactoring which unfortunately obscures these changes. llvm-svn: 134890
-
Jay Foad authored
llvm-svn: 134888
-
- Jul 10, 2011
-
-
John McCall authored
llvm-svn: 134880
-
Argyrios Kyrtzidis authored
llvm-svn: 134876
-
Argyrios Kyrtzidis authored
llvm-svn: 134875
-
Chris Lattner authored
is called whenever a tag type is completed. We previously used that as the sign to layout the codegen representation for the tag type, which worked but meant that we laid out *every* completed type, whether it was used or not. Now we just lay out the type if we've already seen it somehow else. This means that we lay out types we've used but haven't seen a body for, but we don't lay out tons of stuff that noone cares about. llvm-svn: 134866
-
Chris Lattner authored
us to revert the other half of r134860. Now things are back to a relatively tidy state. llvm-svn: 134865
-