• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1; RUN: opt -bdce -S < %s | FileCheck %s
2
3declare i32 @strlen(i8*) readonly nounwind
4
5define void @test1() {
6  call i32 @strlen( i8* null )
7  ret void
8
9; CHECK-LABEL: @test1
10; CHECK-NOT: call
11; CHECK: ret void
12}
13
14define i32 @test2() personality i32 (...)* @__gxx_personality_v0 {
15  ; invoke of pure function should not be deleted!
16  invoke i32 @strlen( i8* null ) readnone
17                  to label %Cont unwind label %Other
18
19Cont:           ; preds = %0
20  ret i32 0
21
22Other:          ; preds = %0
23   %exn = landingpad {i8*, i32}
24            cleanup
25  ret i32 1
26
27; CHECK-LABEL: @test2
28; CHECK: invoke
29; CHECK: ret i32 1
30}
31
32declare i32 @__gxx_personality_v0(...)
33
34