This revision was not accepted when it landed; it landed in state "Needs
Review".
This revision was automatically updated to reflect the committed changes.
Closed by commit rC320978: No -fsanitize=function warning when calling noexcept
function through non… (authored by sberg, committed by ).
Changed prior to commit:
https://reviews.llvm.org/D40720?vs=125152&id=127340#toc
Repository:
rC Clang
https://reviews.llvm.org/D40720
Files:
lib/CodeGen/CGExpr.cpp
Index: lib/CodeGen/CGExpr.cpp
===================================================================
--- lib/CodeGen/CGExpr.cpp
+++ lib/CodeGen/CGExpr.cpp
@@ -4504,10 +4504,14 @@
Builder.CreateICmpEQ(CalleeRTTI, FTRTTIConst);
llvm::Constant *StaticData[] = {
EmitCheckSourceLocation(E->getLocStart()),
- EmitCheckTypeDescriptor(CalleeType)
+ EmitCheckTypeDescriptor(CalleeType),
+ cast<FunctionProtoType>(FnType)->isNothrow(getContext())
+ ? llvm::Constant::getNullValue(FTRTTIConst->getType())
+ : FTRTTIConst
};
EmitCheck(std::make_pair(CalleeRTTIMatch, SanitizerKind::Function),
- SanitizerHandler::FunctionTypeMismatch, StaticData, CalleePtr);
+ SanitizerHandler::FunctionTypeMismatch, StaticData,
+ {CalleePtr, CalleeRTTI});
Builder.CreateBr(Cont);
EmitBlock(Cont);
Index: lib/CodeGen/CGExpr.cpp
===================================================================
--- lib/CodeGen/CGExpr.cpp
+++ lib/CodeGen/CGExpr.cpp
@@ -4504,10 +4504,14 @@
Builder.CreateICmpEQ(CalleeRTTI, FTRTTIConst);
llvm::Constant *StaticData[] = {
EmitCheckSourceLocation(E->getLocStart()),
- EmitCheckTypeDescriptor(CalleeType)
+ EmitCheckTypeDescriptor(CalleeType),
+ cast<FunctionProtoType>(FnType)->isNothrow(getContext())
+ ? llvm::Constant::getNullValue(FTRTTIConst->getType())
+ : FTRTTIConst
};
EmitCheck(std::make_pair(CalleeRTTIMatch, SanitizerKind::Function),
- SanitizerHandler::FunctionTypeMismatch, StaticData, CalleePtr);
+ SanitizerHandler::FunctionTypeMismatch, StaticData,
+ {CalleePtr, CalleeRTTI});
Builder.CreateBr(Cont);
EmitBlock(Cont);
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits