r292194 - [AST] AttributedType should derive type properties from the EquivalentType

Hans Wennborg via cfe-commits cfe-commits at lists.llvm.org
Tue Jan 31 10:39:19 PST 2017


Ping?

On Thu, Jan 26, 2017 at 3:42 PM, Hans Wennborg <hans at chromium.org> wrote:
> Should we merge this to the release branch?
>
> On Mon, Jan 16, 2017 at 8:14 PM, David Majnemer via cfe-commits
> <cfe-commits at lists.llvm.org> wrote:
>> Author: majnemer
>> Date: Mon Jan 16 22:14:25 2017
>> New Revision: 292194
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=292194&view=rev
>> Log:
>> [AST] AttributedType should derive type properties from the EquivalentType
>>
>> Using the canonical type instead of the equivalent type can result in
>> insufficient template instantiations.
>>
>> This fixes PR31656.
>>
>> Differential Revision: https://reviews.llvm.org/D28788
>>
>> Modified:
>>     cfe/trunk/include/clang/AST/Type.h
>>     cfe/trunk/test/CodeGenCXX/microsoft-abi-default-cc.cpp
>>
>> Modified: cfe/trunk/include/clang/AST/Type.h
>> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/AST/Type.h?rev=292194&r1=292193&r2=292194&view=diff
>> ==============================================================================
>> --- cfe/trunk/include/clang/AST/Type.h (original)
>> +++ cfe/trunk/include/clang/AST/Type.h Mon Jan 16 22:14:25 2017
>> @@ -3832,13 +3832,13 @@ private:
>>
>>    friend class ASTContext; // creates these
>>
>> -  AttributedType(QualType canon, Kind attrKind,
>> -                 QualType modified, QualType equivalent)
>> -    : Type(Attributed, canon, canon->isDependentType(),
>> -           canon->isInstantiationDependentType(),
>> -           canon->isVariablyModifiedType(),
>> -           canon->containsUnexpandedParameterPack()),
>> -      ModifiedType(modified), EquivalentType(equivalent) {
>> +  AttributedType(QualType canon, Kind attrKind, QualType modified,
>> +                 QualType equivalent)
>> +      : Type(Attributed, canon, equivalent->isDependentType(),
>> +             equivalent->isInstantiationDependentType(),
>> +             equivalent->isVariablyModifiedType(),
>> +             equivalent->containsUnexpandedParameterPack()),
>> +        ModifiedType(modified), EquivalentType(equivalent) {
>>      AttributedTypeBits.AttrKind = attrKind;
>>    }
>>
>>
>> Modified: cfe/trunk/test/CodeGenCXX/microsoft-abi-default-cc.cpp
>> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/microsoft-abi-default-cc.cpp?rev=292194&r1=292193&r2=292194&view=diff
>> ==============================================================================
>> --- cfe/trunk/test/CodeGenCXX/microsoft-abi-default-cc.cpp (original)
>> +++ cfe/trunk/test/CodeGenCXX/microsoft-abi-default-cc.cpp Mon Jan 16 22:14:25 2017
>> @@ -45,3 +45,12 @@ void __cdecl static_baz() {}
>>  void static_qux() {}
>>  // GCABI-LABEL: define void @_Z10static_quxv
>>  // MSABI: define void @"\01?static_qux@@YAXXZ"
>> +
>> +namespace PR31656 {
>> +template <int I>
>> +void __cdecl callee(int args[I]);
>> +// GCABI-LABEL: declare void @_ZN7PR316566calleeILi1EEEvPi(
>> +// MSABI: declare void @"\01??$callee@$00 at PR31656@@YAXQAH at Z"(
>> +
>> +void caller() { callee<1>(0); }
>> +}
>>
>>
>> _______________________________________________
>> cfe-commits mailing list
>> cfe-commits at lists.llvm.org
>> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


More information about the cfe-commits mailing list