r292194 - [AST] AttributedType should derive type properties from the EquivalentType
Hans Wennborg via cfe-commits
cfe-commits at lists.llvm.org
Thu Jan 26 15:42:05 PST 2017
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