r210092 - Remove incorrect assertion.

Richard Smith richard-llvm at metafoo.co.uk
Tue Jun 3 01:40:27 PDT 2014


Author: rsmith
Date: Tue Jun  3 03:40:27 2014
New Revision: 210092

URL: http://llvm.org/viewvc/llvm-project?rev=210092&view=rev
Log:
Remove incorrect assertion.

Modified:
    cfe/trunk/lib/CodeGen/CGExprAgg.cpp
    cfe/trunk/test/CodeGenCXX/cxx0x-initializer-stdinitializerlist.cpp

Modified: cfe/trunk/lib/CodeGen/CGExprAgg.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGExprAgg.cpp?rev=210092&r1=210091&r2=210092&view=diff
==============================================================================
--- cfe/trunk/lib/CodeGen/CGExprAgg.cpp (original)
+++ cfe/trunk/lib/CodeGen/CGExprAgg.cpp Tue Jun  3 03:40:27 2014
@@ -439,10 +439,9 @@ void AggExprEmitter::EmitArrayInit(llvm:
   // type is an array (or array of array, etc.) of class type.
   Expr *filler = E->getArrayFiller();
   bool hasTrivialFiller = true;
-  if (CXXConstructExpr *cons = dyn_cast_or_null<CXXConstructExpr>(filler)) {
-    assert(cons->getConstructor()->isDefaultConstructor());
-    hasTrivialFiller = cons->getConstructor()->isTrivial();
-  }
+  if (CXXConstructExpr *cons = dyn_cast_or_null<CXXConstructExpr>(filler))
+    hasTrivialFiller = cons->getConstructor()->isDefaultConstructor() &&
+                       cons->getConstructor()->isTrivial();
 
   // Any remaining elements need to be zero-initialized, possibly
   // using the filler expression.  We can skip this if the we're

Modified: cfe/trunk/test/CodeGenCXX/cxx0x-initializer-stdinitializerlist.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/cxx0x-initializer-stdinitializerlist.cpp?rev=210092&r1=210091&r2=210092&view=diff
==============================================================================
--- cfe/trunk/test/CodeGenCXX/cxx0x-initializer-stdinitializerlist.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/cxx0x-initializer-stdinitializerlist.cpp Tue Jun  3 03:40:27 2014
@@ -448,3 +448,10 @@ namespace DR1070 {
   };
   C c = {};
 }
+
+namespace ArrayOfInitList {
+  struct S {
+    S(std::initializer_list<int>);
+  };
+  S x[1] = {};
+}





More information about the cfe-commits mailing list