usama54321 created this revision. Herald added a project: All. usama54321 requested review of this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits.
rdar://113144087 Repository: rG LLVM Github Monorepo https://reviews.llvm.org/D157445 Files: clang/lib/CodeGen/CodeGenFunction.cpp clang/test/CodeGen/ubsan-function-attributed.c Index: clang/test/CodeGen/ubsan-function-attributed.c =================================================================== --- /dev/null +++ clang/test/CodeGen/ubsan-function-attributed.c @@ -0,0 +1,3 @@ +// RUN: %clang_cc1 -emit-llvm -triple x86_64 -std=c17 -fsanitize=function %s -o /dev/null + +long __attribute__((ms_abi)) f() {} Index: clang/lib/CodeGen/CodeGenFunction.cpp =================================================================== --- clang/lib/CodeGen/CodeGenFunction.cpp +++ clang/lib/CodeGen/CodeGenFunction.cpp @@ -570,6 +570,9 @@ llvm::ConstantInt * CodeGenFunction::getUBSanFunctionTypeHash(QualType Ty) const { + if (isa<AttributedType>(Ty)) + Ty = Ty.getDesugaredType(getContext()); + // Remove any (C++17) exception specifications, to allow calling e.g. a // noexcept function through a non-noexcept pointer. if (!isa<FunctionNoProtoType>(Ty))
Index: clang/test/CodeGen/ubsan-function-attributed.c =================================================================== --- /dev/null +++ clang/test/CodeGen/ubsan-function-attributed.c @@ -0,0 +1,3 @@ +// RUN: %clang_cc1 -emit-llvm -triple x86_64 -std=c17 -fsanitize=function %s -o /dev/null + +long __attribute__((ms_abi)) f() {} Index: clang/lib/CodeGen/CodeGenFunction.cpp =================================================================== --- clang/lib/CodeGen/CodeGenFunction.cpp +++ clang/lib/CodeGen/CodeGenFunction.cpp @@ -570,6 +570,9 @@ llvm::ConstantInt * CodeGenFunction::getUBSanFunctionTypeHash(QualType Ty) const { + if (isa<AttributedType>(Ty)) + Ty = Ty.getDesugaredType(getContext()); + // Remove any (C++17) exception specifications, to allow calling e.g. a // noexcept function through a non-noexcept pointer. if (!isa<FunctionNoProtoType>(Ty))
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits