Propagate alignment on lvalues through EmitLValueForField. PR12395.

llvm-svn: 154789
This commit is contained in:
Eli Friedman
2012-04-16 03:54:45 +00:00
parent 1ac08679fd
commit 7f1ff60021
8 changed files with 102 additions and 80 deletions

View File

@@ -362,8 +362,12 @@ void CodeGenFunction::StartFunction(GlobalDecl GD, QualType RetTy,
LambdaThisCaptureField);
if (LambdaThisCaptureField) {
// If this lambda captures this, load it.
LValue ThisLValue = EmitLValueForField(CXXABIThisValue,
LambdaThisCaptureField, 0);
QualType LambdaTagType =
getContext().getTagDeclType(LambdaThisCaptureField->getParent());
LValue LambdaLV = MakeNaturalAlignAddrLValue(CXXABIThisValue,
LambdaTagType);
LValue ThisLValue = EmitLValueForField(LambdaLV,
LambdaThisCaptureField);
CXXThisValue = EmitLoadOfLValue(ThisLValue).getScalarVal();
}
} else {