зеркало из https://github.com/microsoft/clang-1.git
Fix a stupid mistake in r151133. Reported to me by Joerg Sonnenberger.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151407 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Родитель
61dab36ccb
Коммит
5a13d4d2c1
|
@ -857,10 +857,12 @@ void AggExprEmitter::EmitNullInitializationToLValue(LValue lv) {
|
|||
llvm::Value *null = llvm::Constant::getNullValue(CGF.ConvertType(type));
|
||||
// Note that the following is not equivalent to
|
||||
// EmitStoreThroughBitfieldLValue for ARC types.
|
||||
if (lv.isBitField())
|
||||
if (lv.isBitField()) {
|
||||
CGF.EmitStoreThroughBitfieldLValue(RValue::get(null), lv);
|
||||
assert(lv.isSimple());
|
||||
CGF.EmitStoreOfScalar(null, lv, /* isInitialization */ true);
|
||||
} else {
|
||||
assert(lv.isSimple());
|
||||
CGF.EmitStoreOfScalar(null, lv, /* isInitialization */ true);
|
||||
}
|
||||
} else {
|
||||
// There's a potential optimization opportunity in combining
|
||||
// memsets; that would be easy for arrays, but relatively
|
||||
|
|
|
@ -123,3 +123,10 @@ struct test12 {
|
|||
struct test12 (*p)(void);
|
||||
} test12g;
|
||||
|
||||
|
||||
void test13(int x) {
|
||||
struct X { int a; int b : 10; int c; };
|
||||
struct X y = {.c = x};
|
||||
// CHECK: @test13
|
||||
// CHECK: and i32 {{.*}}, -1024
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче