Should we merge this to the release branch?
On Mon, Jan 16, 2017 at 8:14 PM, David Majnemer via cfe-commits <cfe-commits@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@PR31656@@YAXQAH@Z"( > + > +void caller() { callee<1>(0); } > +} > > > _______________________________________________ > cfe-commits mailing list > cfe-commits@lists.llvm.org > http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits