[cfe-commits] r105404 - in /cfe/trunk: lib/CodeGen/CGClass.cpp test/CodeGenCXX/member-init-assignment.cpp

Eli Friedman eli.friedman at gmail.com
Thu Jun 3 12:58:07 PDT 2010


Author: efriedma
Date: Thu Jun  3 14:58:07 2010
New Revision: 105404

URL: http://llvm.org/viewvc/llvm-project?rev=105404&view=rev
Log:
Don't intentionally try to ignore the value of a scalar expression when we
actually care about it. Fixes PR7291.


Added:
    cfe/trunk/test/CodeGenCXX/member-init-assignment.cpp
Modified:
    cfe/trunk/lib/CodeGen/CGClass.cpp

Modified: cfe/trunk/lib/CodeGen/CGClass.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGClass.cpp?rev=105404&r1=105403&r2=105404&view=diff
==============================================================================
--- cfe/trunk/lib/CodeGen/CGClass.cpp (original)
+++ cfe/trunk/lib/CodeGen/CGClass.cpp Thu Jun  3 14:58:07 2010
@@ -467,7 +467,7 @@
   } else if (FieldType->isArrayType() && !MemberInit->getInit()) {
     CGF.EmitNullInitialization(LHS.getAddress(), Field->getType());
   } else if (!CGF.hasAggregateLLVMType(Field->getType())) {
-    RHS = RValue::get(CGF.EmitScalarExpr(MemberInit->getInit(), true));
+    RHS = RValue::get(CGF.EmitScalarExpr(MemberInit->getInit()));
     CGF.EmitStoreThroughLValue(RHS, LHS, FieldType);
   } else if (MemberInit->getInit()->getType()->isAnyComplexType()) {
     CGF.EmitComplexExprIntoAddr(MemberInit->getInit(), LHS.getAddress(),

Added: cfe/trunk/test/CodeGenCXX/member-init-assignment.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/member-init-assignment.cpp?rev=105404&view=auto
==============================================================================
--- cfe/trunk/test/CodeGenCXX/member-init-assignment.cpp (added)
+++ cfe/trunk/test/CodeGenCXX/member-init-assignment.cpp Thu Jun  3 14:58:07 2010
@@ -0,0 +1,12 @@
+// RUN: %clang_cc1 %s -emit-llvm-only -verify
+// PR7291
+
+struct Foo {
+  unsigned file_id;
+
+  Foo(unsigned arg);
+};
+
+Foo::Foo(unsigned arg) : file_id(arg = 42)
+{ }
+





More information about the cfe-commits mailing list