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