1; RUN: opt < %s -dfsan -verify -dfsan-args-abi -S | FileCheck %s 2target 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" 3target triple = "x86_64-unknown-linux-gnu" 4 5; CHECK: @__dfsan_shadow_width_bits = weak_odr constant i32 [[#SBITS:]] 6; CHECK: @__dfsan_shadow_width_bytes = weak_odr constant i32 [[#SBYTES:]] 7 8; CHECK-LABEL: @unreachable_bb1.dfsan 9define i8 @unreachable_bb1() { 10 ; CHECK: ret { i8, i[[#SBITS]] } { i8 1, i[[#SBITS]] 0 } 11 ; CHECK-NOT: bb2: 12 ; CHECK-NOT: bb3: 13 ; CHECK-NOT: bb4: 14 ret i8 1 15 16bb2: 17 ret i8 2 18 19bb3: 20 br label %bb4 21 22bb4: 23 br label %bb3 24} 25 26declare void @abort() noreturn 27 28; CHECK-LABEL: @unreachable_bb2.dfsan 29define i8 @unreachable_bb2() { 30 call void @abort() noreturn 31 ; CHECK-NOT: i8 12 32 ; CHECK: unreachable 33 ret i8 12 34} 35