diff options
Diffstat (limited to 'test/Transforms/InstCombine/objsize.ll')
-rw-r--r-- | test/Transforms/InstCombine/objsize.ll | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/test/Transforms/InstCombine/objsize.ll b/test/Transforms/InstCombine/objsize.ll index fed067c..bdb3e09 100644 --- a/test/Transforms/InstCombine/objsize.ll +++ b/test/Transforms/InstCombine/objsize.ll @@ -1,5 +1,9 @@ +; Test a pile of objectsize bounds checking. ; RUN: opt < %s -instcombine -S | FileCheck %s -@a = common global [60 x i8] zeroinitializer, align 1 ; <[60 x i8]*> +; We need target data to get the sizes of the arrays and structures. +target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128" + +@a = private global [60 x i8] zeroinitializer, align 1 ; <[60 x i8]*> @.str = private constant [8 x i8] c"abcdefg\00" ; <[8 x i8]*> define i32 @foo() nounwind { @@ -27,6 +31,13 @@ cond.false: ret i8* %2; } +define i32 @f() nounwind { +; CHECK: @f +; CHECK-NEXT: ret i32 0 + %1 = call i32 @llvm.objectsize.i32(i8* getelementptr ([60 x i8]* @a, i32 1, i32 0), i1 false) + ret i32 %1 +} + @window = external global [0 x i8] define i1 @baz() nounwind { @@ -37,5 +48,4 @@ define i1 @baz() nounwind { ret i1 %2 } - declare i32 @llvm.objectsize.i32(i8*, i1) nounwind readonly
\ No newline at end of file |