[cfe-commits] r151407 - in /cfe/trunk: lib/CodeGen/CGExprAgg.cpp test/CodeGen/init.c
Eli Friedman
eli.friedman at gmail.com
Fri Feb 24 15:53:50 PST 2012
Author: efriedma
Date: Fri Feb 24 17:53:49 2012
New Revision: 151407
URL: http://llvm.org/viewvc/llvm-project?rev=151407&view=rev
Log:
Fix a stupid mistake in r151133. Reported to me by Joerg Sonnenberger.
Modified:
cfe/trunk/lib/CodeGen/CGExprAgg.cpp
cfe/trunk/test/CodeGen/init.c
Modified: cfe/trunk/lib/CodeGen/CGExprAgg.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGExprAgg.cpp?rev=151407&r1=151406&r2=151407&view=diff
==============================================================================
--- cfe/trunk/lib/CodeGen/CGExprAgg.cpp (original)
+++ cfe/trunk/lib/CodeGen/CGExprAgg.cpp Fri Feb 24 17:53:49 2012
@@ -857,10 +857,12 @@
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
Modified: cfe/trunk/test/CodeGen/init.c
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/init.c?rev=151407&r1=151406&r2=151407&view=diff
==============================================================================
--- cfe/trunk/test/CodeGen/init.c (original)
+++ cfe/trunk/test/CodeGen/init.c Fri Feb 24 17:53:49 2012
@@ -123,3 +123,10 @@
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
+}
More information about the cfe-commits
mailing list