r293702.
On Tue, Jan 31, 2017 at 11:12 AM, Richard Smith <richardsm...@google.com> wrote: > Sure, let's take this for Clang 4. > > On 31 January 2017 at 10:39, Hans Wennborg <h...@chromium.org> wrote: >> >> Ping? >> >> On Thu, Jan 26, 2017 at 3:42 PM, Hans Wennborg <h...@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@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