; RUN: llc < %s ; PR4297 ; RUN: opt -S < %s -codegenprepare | 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" target triple = "x86_64-unknown-linux-gnu" %"byte[]" = type { i64, i8* } %"char[][]" = type { i64, %"byte[]"* } @.str = external dso_local constant [7 x i8] ; <[7 x i8]*> [#uses=1] ; CHECK-LABEL: @_Dmain ; CHECK: load i8, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str, i32 0, i32 0) ; CHECK: ret define fastcc i32 @_Dmain(%"char[][]" %unnamed) { entry: %tmp = getelementptr [7 x i8], [7 x i8]* @.str, i32 0, i32 0 ; <i8*> [#uses=1] br i1 undef, label %foreachbody, label %foreachend foreachbody: ; preds = %entry %tmp4 = getelementptr i8, i8* %tmp, i32 undef ; <i8*> [#uses=1] %tmp5 = load i8, i8* %tmp4 ; <i8> [#uses=0] unreachable foreachend: ; preds = %entry ret i32 0 }