[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 16:36:13 PDT 2010


On Thu, Jun 3, 2010 at 4:18 PM, Douglas Gregor <dgregor at apple.com> wrote:
>
> On Jun 3, 2010, at 12:58 PM, Eli Friedman wrote:
>
>> 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)
>> +{ }
>> +
>
> Could we check the generated IR in this test?
>
>        - Doug

Sure; done in r105434.

-Eli




More information about the cfe-commits mailing list