aboutsummaryrefslogtreecommitdiffstats
path: root/test/Instrumentation
diff options
context:
space:
mode:
authorPeter Collingbourne <peter@pcc.me.uk>2013-08-09 22:47:24 +0000
committerPeter Collingbourne <peter@pcc.me.uk>2013-08-09 22:47:24 +0000
commit835738ce54edb4746cfa4cdfc76608fec03fab3a (patch)
tree9779f15e32d20228d7528ca356b2b82e524f7e0e /test/Instrumentation
parentaaae6e9cb8c8567409739d7cde1c5caaf35810cf (diff)
downloadexternal_llvm-835738ce54edb4746cfa4cdfc76608fec03fab3a.zip
external_llvm-835738ce54edb4746cfa4cdfc76608fec03fab3a.tar.gz
external_llvm-835738ce54edb4746cfa4cdfc76608fec03fab3a.tar.bz2
Kill some duplicated code for removing unreachable BBs.
This moves removeUnreachableBlocksFromFn from SimplifyCFGPass.cpp to Utils/Local.cpp and uses it to replace the implementation of llvm::removeUnreachableBlocks, which appears to do a strict subset of what removeUnreachableBlocksFromFn does. Differential Revision: http://llvm-reviews.chandlerc.com/D1334 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188119 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/Instrumentation')
-rw-r--r--test/Instrumentation/DataFlowSanitizer/args-unreachable-bb.ll14
1 files changed, 12 insertions, 2 deletions
diff --git a/test/Instrumentation/DataFlowSanitizer/args-unreachable-bb.ll b/test/Instrumentation/DataFlowSanitizer/args-unreachable-bb.ll
index db3dd83..b91f321 100644
--- a/test/Instrumentation/DataFlowSanitizer/args-unreachable-bb.ll
+++ b/test/Instrumentation/DataFlowSanitizer/args-unreachable-bb.ll
@@ -1,8 +1,8 @@
; RUN: opt < %s -dfsan -verify -dfsan-args-abi -S | FileCheck %s
target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128"
-define i8 @unreachable_bb() {
- ; CHECK: @unreachable_bb
+; CHECK-LABEL: @unreachable_bb1
+define i8 @unreachable_bb1() {
; CHECK: ret { i8, i16 } { i8 1, i16 0 }
; CHECK-NOT: bb2:
; CHECK-NOT: bb3:
@@ -18,3 +18,13 @@ bb3:
bb4:
br label %bb3
}
+
+declare void @abort() noreturn
+
+; CHECK-LABEL: @unreachable_bb2
+define i8 @unreachable_bb2() {
+ call void @abort() noreturn
+ ; CHECK-NOT: i8 12
+ ; CHECK: unreachable
+ ret i8 12
+}