Revert "[llvm][StackProtector] Add noreturn to __stack_chk_fail call" (#144452)
Reverts llvm/llvm-project#143976
Reverting since this broke a builder:
https://lab.llvm.org/buildbot/#/builders/190/builds/21563
diff --git a/llvm/lib/CodeGen/StackProtector.cpp b/llvm/lib/CodeGen/StackProtector.cpp
index dda392d..5f866ee 100644
--- a/llvm/lib/CodeGen/StackProtector.cpp
+++ b/llvm/lib/CodeGen/StackProtector.cpp
@@ -725,8 +725,8 @@
StackChkFail =
M->getOrInsertFunction("__stack_chk_fail", Type::getVoidTy(Context));
}
- CallInst *Call = B.CreateCall(StackChkFail, Args);
- Call->addFnAttr(Attribute::NoReturn);
+ cast<Function>(StackChkFail.getCallee())->addFnAttr(Attribute::NoReturn);
+ B.CreateCall(StackChkFail, Args);
B.CreateUnreachable();
return FailBB;
}
diff --git a/llvm/test/Transforms/StackProtector/cross-dso-cfi-stack-chk-fail.ll b/llvm/test/Transforms/StackProtector/cross-dso-cfi-stack-chk-fail.ll
deleted file mode 100644
index af03039..0000000
--- a/llvm/test/Transforms/StackProtector/cross-dso-cfi-stack-chk-fail.ll
+++ /dev/null
@@ -1,33 +0,0 @@
-;; This is a minimal reproducer that caused StackProtector to crash with a bad cast when
-;; CrossDSOCFI is used. This test just needs to not crash.
-; RUN: opt -mtriple=x86_64-pc-linux-gnu %s -passes=lowertypetests,cross-dso-cfi,stack-protector
-
-define hidden void @__stack_chk_fail() !type !1{
- unreachable
-}
-
-define void @store_captures() sspstrong {
-entry:
- %a = alloca i32, align 4
- %j = alloca ptr, align 8
- store ptr %a, ptr %j, align 8
- ret void
-}
-
-define void @func(ptr %0) {
-entry:
- %1 = call i1 @llvm.type.test(ptr %0, metadata !"typeid")
- br i1 %1, label %cont, label %trap
-
-trap: ; preds = %entry
- call void @llvm.trap()
- unreachable
-
-cont: ; preds = %entry
- call void %0()
- ret void
-}
-
-!llvm.module.flags = !{!0}
-!0 = !{i32 4, !"Cross-DSO CFI", i32 1}
-!1 = !{i64 0, !"typeid"}
diff --git a/llvm/test/Transforms/StackProtector/stack-chk-fail-alias.ll b/llvm/test/Transforms/StackProtector/stack-chk-fail-alias.ll
deleted file mode 100644
index ab0a6e3..0000000
--- a/llvm/test/Transforms/StackProtector/stack-chk-fail-alias.ll
+++ /dev/null
@@ -1,21 +0,0 @@
-;; __stack_chk_fail should have the noreturn attr even if it is an alias
-; RUN: opt -mtriple=x86_64-pc-linux-gnu %s -passes=stack-protector -S | FileCheck %s
-
-define hidden void @__stack_chk_fail_impl() {
- unreachable
-}
-
-@__stack_chk_fail = hidden alias void (), ptr @__stack_chk_fail_impl
-
-; CHECK-LABEL: @store_captures(
-; CHECK: CallStackCheckFailBlk:
-; CHECK-NEXT: call void @__stack_chk_fail() [[ATTRS:#.*]]
-define void @store_captures() sspstrong {
-entry:
- %a = alloca i32, align 4
- %j = alloca ptr, align 8
- store ptr %a, ptr %j, align 8
- ret void
-}
-
-; CHECK: attributes [[ATTRS]] = { noreturn }