[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