- Jun 18, 2011
-
-
Benjamin Kramer authored
llvm-svn: 133346
-
Benjamin Kramer authored
llvm-svn: 133345
-
- Jun 17, 2011
-
-
Douglas Gregor authored
separate aggregate temporary and then memcpy it over to the destination. This fixes a regression I introduced with r133235, where the compound literal on the RHS of an assignment makes use of the structure on the LHS of the assignment. I'm deeply suspicious of AggExprEmitter::VisitBinAssign()'s optimization where it emits the RHS of an aggregate assignment directly into the LHS lvalue without checking whether there is any aliasing between the LHS/RHS. However, I'm not in a position to revisit this now. Big thanks to Eli for finding the regression! llvm-svn: 133261
-
John McCall authored
static initializer check, as required by the Itanium ABI. llvm-svn: 133250
-
John McCall authored
they should still be officially __strong for the purposes of errors, block capture, etc. Make a new bit on variables, isARCPseudoStrong(), and set this for 'self' and these enumeration-loop variables. Change the code that was looking for the old patterns to look for this bit, and change IR generation to find this bit and treat the resulting variable as __unsafe_unretained for the purposes of init/destroy in the two places it can come up. llvm-svn: 133243
-
Douglas Gregor authored
C++, which means: - binding the temporary as needed in Sema, so that we generate the appropriate call to the destructor, and - emitting the compound literal into the appropriate location for the aggregate, rather than trying to emit it as a temporary and memcpy() it. Fixes PR10138 / <rdar://problem/9615901>. llvm-svn: 133235
-
Eric Christopher authored
register constraint. Note that we're not checking if the register itself is valid for the constraint. Fixes rdar://9382985 llvm-svn: 133226
-
- Jun 16, 2011
-
-
Fariborz Jahanian authored
getLVForNamespaceScopeDecl(). // rdar://9609649 llvm-svn: 133182
-
Fariborz Jahanian authored
declaration of global var is __private_extern__. // rdar://9609649 llvm-svn: 133157
-
John McCall authored
llvm-svn: 133144
-
John McCall authored
llvm-svn: 133110
-
John McCall authored
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
-
Eli Friedman authored
llvm-svn: 133095
-
- Jun 15, 2011
-
-
Eli Friedman authored
Use isAnyComplexType here so we don't pass complex numbers into the aggregate handling code; found by inspection. llvm-svn: 133070
-
Eli Friedman authored
llvm-svn: 133069
-
Devang Patel authored
- llvm.dbg.declare already receives line number information from ParmDecl - Additional extra stoppoint messes up gdb's understanding of where function body starts. llvm-svn: 133065
-
- Jun 14, 2011
-
-
Bruno Cardoso Lopes authored
whether it's a data or instruction cache access. llvm-svn: 132977
-
Peter Collingbourne authored
llvm-svn: 132973
-
Eli Friedman authored
The LLVM IR representation of byval arguments has a rather strange property: if the alignment of an argument to a call is less than the specified byval alignment for that argument, there is no way to specify the alignment of the implied copy. Therefore, we must ensure that the alignment of the argument is at least the byval alignment. To do this, we have to mess with the alignment of relevant alloca's in some cases, and insert a copy that conceptually shouldn't be necessary in some cases. This patch tries relatively hard to avoid creating an extra copy if it can be avoided (see test3 in the included testcase), but it is not possible to avoid in some cases (like test2 in the included testcase). rdar://9483886 llvm-svn: 132957
-
Devang Patel authored
This fixes radar 8757124. llvm-svn: 132949
-
- Jun 11, 2011
-
-
Richard Smith authored
llvm-svn: 132878
-
Douglas Gregor authored
Related result types apply Cocoa conventions to the type of message sends and property accesses to Objective-C methods that are known to always return objects whose type is the same as the type of the receiving class (or a subclass thereof), such as +alloc and -init. This tightens up static type safety for Objective-C, so that we now diagnose mistakes like this: t.m:4:10: warning: incompatible pointer types initializing 'NSSet *' with an expression of type 'NSArray *' [-Wincompatible-pointer-types] NSSet *array = [[NSArray alloc] init]; ^ ~~~~~~~~~~~~~~~~~~~~~~ /System/Library/Frameworks/Foundation.framework/Headers/NSObject.h:72:1: note: instance method 'init' is assumed to return an instance of its receiver type ('NSArray *') - (id)init; ^ It also means that we get decent type inference when writing code in Objective-C++0x: auto array = [[NSMutableArray alloc] initWithObjects:@"one", @"two",nil]; // ^ now infers NSMutableArray* rather than id llvm-svn: 132868
-
- Jun 10, 2011
-
-
Eli Friedman authored
PR10120: Make CodeGenModule::getVTableLinkage use NamedDecl::getLinkage to determine whether the vtable should be externally visible, instead of a rough approximation of it which messes up with templates. While I'm here, zap the other user of isInAnonymousNamespace outside of Decl.cpp. llvm-svn: 132861
-
- Jun 08, 2011
-
-
Stuart Hastings authored
rdar://problem/9037836 llvm-svn: 132737
-
- Jun 05, 2011
-
-
Douglas Gregor authored
with a type-dependent expression, infer the placeholder type 'Context.DependentTy' to indicate that this is just a placeholder. Fixes PR9982 / <rdar://problem/9486685>. llvm-svn: 132657
-
- Jun 04, 2011
-
-
Tanya Lattner authored
__builtin_astype(): Used to reinterpreted as another data type of the same size using for both scalar and vector data types. Added test case. llvm-svn: 132612
-
Devang Patel authored
Emit debug info only if there is an insertion point. The debug info should not force an insertion point. Codegen may later on decide to not emit code for some reason, see extensive comment in CodeGenFunction::EmitStmt(), and debug info should not get in the way. llvm-svn: 132610
-
- Jun 03, 2011
-
-
Devang Patel authored
Emit debug info only if there is an insertion point. The debug info should not force an insertion point. Codegen may later on decide to not emit code for some reason, see extensive comment in CodeGenFunction::EmitStmt(), and debug info should not get in the way. llvm-svn: 132576
-
Devang Patel authored
llvm-svn: 132560
-
Devang Patel authored
llvm-svn: 132557
-
Eric Christopher authored
llvm-svn: 132548
-
- Jun 02, 2011
-
-
Akira Hatanaka authored
llvm-svn: 132443
-
- Jun 01, 2011
-
-
Devang Patel authored
llvm-svn: 132368
-
- May 31, 2011
-
-
Devang Patel authored
llvm-svn: 132361
-
Devang Patel authored
llvm-svn: 132357
-
- May 30, 2011
-
-
David Chisnall authored
llvm-svn: 132311
-
- May 28, 2011
-
-
John McCall authored
It's quite likely that this will explode, but I need to know how. :) llvm-svn: 132269
-
Benjamin Kramer authored
llvm-svn: 132260
-
David Chisnall authored
llvm-svn: 132259
-
David Chisnall authored
llvm-svn: 132258
-