[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