Author: leonardchan Date: Fri May 10 11:05:15 2019 New Revision: 360448 URL: http://llvm.org/viewvc/llvm-project?rev=360448&view=rev Log: Fix and test for assertion error in P41835.
Modified: cfe/trunk/lib/AST/ASTContext.cpp cfe/trunk/test/Frontend/macro_defined_type.cpp Modified: cfe/trunk/lib/AST/ASTContext.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/AST/ASTContext.cpp?rev=360448&r1=360447&r2=360448&view=diff ============================================================================== --- cfe/trunk/lib/AST/ASTContext.cpp (original) +++ cfe/trunk/lib/AST/ASTContext.cpp Fri May 10 11:05:15 2019 @@ -2758,6 +2758,12 @@ QualType ASTContext::getFunctionTypeWith return getParenType( getFunctionTypeWithExceptionSpec(PT->getInnerType(), ESI)); + // Might be wrapped in a macro qualified type. + if (const auto *MQT = dyn_cast<MacroQualifiedType>(Orig)) + return getMacroQualifiedType( + getFunctionTypeWithExceptionSpec(MQT->getUnderlyingType(), ESI), + MQT->getMacroIdentifier()); + // Might have a calling-convention attribute. if (const auto *AT = dyn_cast<AttributedType>(Orig)) return getAttributedType( Modified: cfe/trunk/test/Frontend/macro_defined_type.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Frontend/macro_defined_type.cpp?rev=360448&r1=360447&r2=360448&view=diff ============================================================================== --- cfe/trunk/test/Frontend/macro_defined_type.cpp (original) +++ cfe/trunk/test/Frontend/macro_defined_type.cpp Fri May 10 11:05:15 2019 @@ -13,3 +13,9 @@ void Func() { auto NODEREF *auto_i_ptr2 = i_ptr; auto NODEREF auto_i2 = i; // expected-warning{{'noderef' can only be used on an array or pointer type}} } + +// Added test for fix for P41835 +#define _LIBCPP_FLOAT_ABI __attribute__((pcs("aapcs"))) +struct A { + _LIBCPP_FLOAT_ABI int operator()() throw(); // expected-warning{{'pcs' calling convention ignored for this target}} +}; _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits