Conservative fix for PR17827 - don't optimize a shift + and + compare sequence where...
[oota-llvm.git] / test / Transforms / ADCE / dce_pure_invoke.ll
index 608c6554129a41f3054dc4fbbf0d0a9a7238580e..8e7851804575bf73fe4481fc3983a9415a7c8afc 100644 (file)
@@ -1,13 +1,19 @@
-; RUN: llvm-as < %s | opt -adce | llvm-dis | not grep null
+; RUN: opt < %s -adce -S | grep null
 
-declare int %strlen(sbyte*)
+declare i32 @strlen(i8*) readnone
 
-int %test() {
-       ;; Dead call should be deleted!
-       invoke int %strlen(sbyte *null) to label %Cont unwind label %Other
-Cont:
-       ret int 0
-Other:
-       ret int 1
+define i32 @test() {
+       ; invoke of pure function should not be deleted!
+       invoke i32 @strlen( i8* null ) readnone
+                       to label %Cont unwind label %Other              ; <i32>:1 [#uses=0]
+
+Cont:          ; preds = %0
+       ret i32 0
+
+Other:         ; preds = %0
+         %exn = landingpad {i8*, i32} personality i32 (...)* @__gxx_personality_v0
+                  cleanup
+       ret i32 1
 }
 
+declare i32 @__gxx_personality_v0(...)