================ @@ -3140,13 +3140,35 @@ const FunctionType *ASTContext::adjustFunctionType(const FunctionType *T, return cast<FunctionType>(Result.getTypePtr()); } +QualType ASTContext::adjustFunctionResultType(QualType FunctionType, + QualType ResultType) { + // Might be wrapped in a macro qualified type. + if (const auto *MQT = dyn_cast<MacroQualifiedType>(FunctionType)) { + return getMacroQualifiedType( + adjustFunctionResultType(MQT->getUnderlyingType(), ResultType), + MQT->getMacroIdentifier()); + } + + // Might have a calling-convention attribute. + if (const auto *AT = dyn_cast<AttributedType>(FunctionType)) { + return getAttributedType( + AT->getAttrKind(), + adjustFunctionResultType(AT->getModifiedType(), ResultType), + adjustFunctionResultType(AT->getEquivalentType(), ResultType)); + } + + // Anything else must be a function type. Rebuild it with the new return + // value. ---------------- Sirraide wrote:
Just refactored this and extracted the code that handles the sugar into a separate function (see the latest commit). https://github.com/llvm/llvm-project/pull/85325 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits