1; RUN: opt -hotcoldsplit -S < %s | FileCheck %s
2
3target datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128"
4target triple = "x86_64-apple-macosx10.14.0"
5
6; Do not mark outlined functions which resume exception unwinding as noreturn.
7
8; CHECK-LABEL: define {{.*}}@foo.cold.1(
9; CHECK: resume
10; CHECK-NOT: noreturn
11define i32 @foo(i32 %cond) personality i8 0 {
12entry:
13  invoke void @llvm.donothing() to label %normal unwind label %exception
14
15exception:
16  %cleanup = landingpad i32 cleanup
17  br i1 undef, label %normal, label %continue_exception
18
19continue_exception:
20  call void @sideeffect(i32 0)
21  call void @sideeffect(i32 1)
22  call void @sink()
23  resume i32 undef
24
25normal:
26  br i1 undef, label %continue_exception, label %exit
27
28exit:
29  call void @sideeffect(i32 2)
30  ret i32 0
31}
32
33declare void @sideeffect(i32)
34
35declare void @sink() cold
36
37declare void @llvm.donothing() nounwind readnone
38