StackSafetyAnalysis: Don't use anonymous values in test

This commit is contained in:
Matt Arsenault 2022-12-02 17:28:07 -05:00
parent 3d47afdf5a
commit 81c163e3e1
4 changed files with 106 additions and 106 deletions

View File

@ -11,24 +11,24 @@ entry:
define dso_local void @Write4(i8* %p) #0 {
entry:
%0 = bitcast i8* %p to i32*
store i32 0, i32* %0, align 1
%cast = bitcast i8* %p to i32*
store i32 0, i32* %cast, align 1
ret void
}
define dso_local void @Write4_2(i8* %p, i8* %q) #0 {
entry:
%0 = bitcast i8* %p to i32*
store i32 0, i32* %0, align 1
%1 = bitcast i8* %q to i32*
store i32 0, i32* %1, align 1
%cast0 = bitcast i8* %p to i32*
store i32 0, i32* %cast0, align 1
%cast1 = bitcast i8* %q to i32*
store i32 0, i32* %cast1, align 1
ret void
}
define dso_local void @Write8(i8* %p) #0 {
entry:
%0 = bitcast i8* %p to i64*
store i64 0, i64* %0, align 1
%cast0 = bitcast i8* %p to i64*
store i64 0, i64* %cast0, align 1
ret void
}
@ -89,9 +89,9 @@ entry:
br i1 %cmp, label %return, label %if.end
if.end:
%0 = load i32, i32* %p, align 4
%1 = load i32, i32* %acc, align 4
%add = add nsw i32 %1, %0
%load0 = load i32, i32* %p, align 4
%load1 = load i32, i32* %acc, align 4
%add = add nsw i32 %load1, %load0
store i32 %add, i32* %acc, align 4
%add.ptr = getelementptr inbounds i32, i32* %p, i64 1
%sub = add nsw i32 %size, -1

View File

@ -565,7 +565,7 @@ entry:
; CHECK-NEXT: p[]: [0,4){{$}}
; CHECK-NEXT: allocas uses:
; GLOBAL-NEXT: safe accesses:
; GLOBAL-NEXT: store i32 0, i32* %0, align 1
; GLOBAL-NEXT: store i32 0, i32* %cast, align 1
; CHECK-EMPTY:
; CHECK-LABEL: @Write4_2{{$}}
@ -574,8 +574,8 @@ entry:
; CHECK-NEXT: q[]: [0,4){{$}}
; CHECK-NEXT: allocas uses:
; GLOBAL-NEXT: safe accesses:
; GLOBAL-NEXT: store i32 0, i32* %0, align 1
; GLOBAL-NEXT: store i32 0, i32* %1, align 1
; GLOBAL-NEXT: store i32 0, i32* %cast0, align 1
; GLOBAL-NEXT: store i32 0, i32* %cast1, align 1
; CHECK-EMPTY:
; CHECK-LABEL: @Write8{{$}}
@ -583,7 +583,7 @@ entry:
; CHECK-NEXT: p[]: [0,8){{$}}
; CHECK-NEXT: allocas uses:
; GLOBAL-NEXT: safe accesses:
; GLOBAL-NEXT: store i64 0, i64* %0, align 1
; GLOBAL-NEXT: store i64 0, i64* %cast0, align 1
; CHECK-EMPTY:
; CHECK-LABEL: @WriteAndReturn8{{$}}
@ -648,8 +648,8 @@ entry:
; CHECK-NEXT: acc[]: [0,4), @RecursiveNoOffset(arg2, [0,1)){{$}}
; CHECK-NEXT: allocas uses:
; GLOBAL-NEXT: safe accesses:
; GLOBAL-NEXT: %0 = load i32, i32* %p, align 4
; GLOBAL-NEXT: %1 = load i32, i32* %acc, align 4
; GLOBAL-NEXT: %load0 = load i32, i32* %p, align 4
; GLOBAL-NEXT: %load1 = load i32, i32* %acc, align 4
; GLOBAL-NEXT: store i32 %add, i32* %acc, align 4
; CHECK-EMPTY:

View File

@ -164,14 +164,14 @@ entry:
%z = alloca i64, align 8
%z1 = alloca i64, align 8
%z2 = alloca i64, align 8
%0 = bitcast i64* %x1 to i8*
call void @llvm.lifetime.start.p0i8(i64 -1, i8* %0)
; CHECK: call void @llvm.lifetime.start.p0i8(i64 -1, i8* %0)
%x1.cast = bitcast i64* %x1 to i8*
call void @llvm.lifetime.start.p0i8(i64 -1, i8* %x1.cast)
; CHECK: call void @llvm.lifetime.start.p0i8(i64 -1, i8* %x1.cast)
; CHECK-NEXT: Alive: <x1>
%1 = bitcast i64* %x2 to i8*
call void @llvm.lifetime.start.p0i8(i64 -1, i8* %1)
; CHECK: call void @llvm.lifetime.start.p0i8(i64 -1, i8* %1)
%x2.cast = bitcast i64* %x2 to i8*
call void @llvm.lifetime.start.p0i8(i64 -1, i8* %x2.cast)
; CHECK: call void @llvm.lifetime.start.p0i8(i64 -1, i8* %x2.cast)
; CHECK-NEXT: Alive: <x1 x2>
call void @capture64(i64* nonnull %x1)
@ -183,9 +183,9 @@ entry:
if.then: ; preds = %entry
; CHECK: if.then:
; CHECK-NEXT: Alive: <x1 x2>
%2 = bitcast i64* %y to i8*
call void @llvm.lifetime.start.p0i8(i64 -1, i8* %2)
; CHECK: call void @llvm.lifetime.start.p0i8(i64 -1, i8* %2)
%y.cast = bitcast i64* %y to i8*
call void @llvm.lifetime.start.p0i8(i64 -1, i8* %y.cast)
; CHECK: call void @llvm.lifetime.start.p0i8(i64 -1, i8* %y.cast)
; CHECK-NEXT: Alive: <x1 x2 y>
call void @capture64(i64* nonnull %y)
@ -194,14 +194,14 @@ if.then: ; preds = %entry
if.then3: ; preds = %if.then
; CHECK: if.then3:
; CHECK-NEXT: Alive: <x1 x2 y>
%3 = bitcast i64* %y1 to i8*
call void @llvm.lifetime.start.p0i8(i64 -1, i8* %3)
; CHECK: call void @llvm.lifetime.start.p0i8(i64 -1, i8* %3)
%y1.cast = bitcast i64* %y1 to i8*
call void @llvm.lifetime.start.p0i8(i64 -1, i8* %y1.cast)
; CHECK: call void @llvm.lifetime.start.p0i8(i64 -1, i8* %y1.cast)
; CHECK-NEXT: Alive: <x1 x2 y y1>
call void @capture64(i64* nonnull %y1)
call void @llvm.lifetime.end.p0i8(i64 -1, i8* %3)
; CHECK: call void @llvm.lifetime.end.p0i8(i64 -1, i8* %3)
call void @llvm.lifetime.end.p0i8(i64 -1, i8* %y1.cast)
; CHECK: call void @llvm.lifetime.end.p0i8(i64 -1, i8* %y1.cast)
; CHECK-NEXT: Alive: <x1 x2 y>
br label %if.end
@ -209,14 +209,14 @@ if.then3: ; preds = %if.then
if.else: ; preds = %if.then
; CHECK: if.else:
; CHECK-NEXT: Alive: <x1 x2 y>
%4 = bitcast i64* %y2 to i8*
call void @llvm.lifetime.start.p0i8(i64 -1, i8* %4)
; CHECK: call void @llvm.lifetime.start.p0i8(i64 -1, i8* %4)
%y2.cast = bitcast i64* %y2 to i8*
call void @llvm.lifetime.start.p0i8(i64 -1, i8* %y2.cast)
; CHECK: call void @llvm.lifetime.start.p0i8(i64 -1, i8* %y2.cast)
; CHECK-NEXT: Alive: <x1 x2 y y2>
call void @capture64(i64* nonnull %y2)
call void @llvm.lifetime.end.p0i8(i64 -1, i8* %4)
; CHECK: call void @llvm.lifetime.end.p0i8(i64 -1, i8* %4)
call void @llvm.lifetime.end.p0i8(i64 -1, i8* %y2.cast)
; CHECK: call void @llvm.lifetime.end.p0i8(i64 -1, i8* %y2.cast)
; CHECK-NEXT: Alive: <x1 x2 y>
br label %if.end
@ -224,8 +224,8 @@ if.else: ; preds = %if.then
if.end: ; preds = %if.else, %if.then3
; CHECK: if.end:
; CHECK-NEXT: Alive: <x1 x2 y>
call void @llvm.lifetime.end.p0i8(i64 -1, i8* %2)
; CHECK: call void @llvm.lifetime.end.p0i8(i64 -1, i8* %2)
call void @llvm.lifetime.end.p0i8(i64 -1, i8* %y.cast)
; CHECK: call void @llvm.lifetime.end.p0i8(i64 -1, i8* %y.cast)
; CHECK-NEXT: Alive: <x1 x2>
br label %if.end9
@ -234,12 +234,12 @@ if.else4: ; preds = %entry
; CHECK: if.else4:
; CHECK-NEXT: Alive: <x1 x2>
%5 = bitcast i64* %z to i8*
; CHECK: %5 = bitcast i64* %z to i8*
%z.cast = bitcast i64* %z to i8*
; CHECK: %z.cast = bitcast i64* %z to i8*
; CHECK-NEXT: Alive: <x1 x2>
call void @llvm.lifetime.start.p0i8(i64 -1, i8* %5)
; CHECK: call void @llvm.lifetime.start.p0i8(i64 -1, i8* %5)
call void @llvm.lifetime.start.p0i8(i64 -1, i8* %z.cast)
; CHECK: call void @llvm.lifetime.start.p0i8(i64 -1, i8* %z.cast)
; CHECK-NEXT: Alive: <x1 x2 z>
call void @capture64(i64* nonnull %z)
@ -248,14 +248,14 @@ if.else4: ; preds = %entry
if.then6: ; preds = %if.else4
; CHECK: if.then6:
; CHECK-NEXT: Alive: <x1 x2 z>
%6 = bitcast i64* %z1 to i8*
call void @llvm.lifetime.start.p0i8(i64 -1, i8* %6)
; CHECK: call void @llvm.lifetime.start.p0i8(i64 -1, i8* %6)
%z1.cast = bitcast i64* %z1 to i8*
call void @llvm.lifetime.start.p0i8(i64 -1, i8* %z1.cast)
; CHECK: call void @llvm.lifetime.start.p0i8(i64 -1, i8* %z1.cast)
; CHECK-NEXT: Alive: <x1 x2 z z1>
call void @capture64(i64* nonnull %z1)
call void @llvm.lifetime.end.p0i8(i64 -1, i8* %6)
; CHECK: call void @llvm.lifetime.end.p0i8(i64 -1, i8* %6)
call void @llvm.lifetime.end.p0i8(i64 -1, i8* %z1.cast)
; CHECK: call void @llvm.lifetime.end.p0i8(i64 -1, i8* %z1.cast)
; CHECK-NEXT: Alive: <x1 x2 z>
br label %if.end8
@ -263,14 +263,14 @@ if.then6: ; preds = %if.else4
if.else7: ; preds = %if.else4
; CHECK: if.else7:
; CHECK-NEXT: Alive: <x1 x2 z>
%7 = bitcast i64* %z2 to i8*
call void @llvm.lifetime.start.p0i8(i64 -1, i8* %7)
; CHECK: call void @llvm.lifetime.start.p0i8(i64 -1, i8* %7)
%z2.cast = bitcast i64* %z2 to i8*
call void @llvm.lifetime.start.p0i8(i64 -1, i8* %z2.cast)
; CHECK: call void @llvm.lifetime.start.p0i8(i64 -1, i8* %z2.cast)
; CHECK-NEXT: Alive: <x1 x2 z z2>
call void @capture64(i64* nonnull %z2)
call void @llvm.lifetime.end.p0i8(i64 -1, i8* %7)
; CHECK: call void @llvm.lifetime.end.p0i8(i64 -1, i8* %7)
call void @llvm.lifetime.end.p0i8(i64 -1, i8* %z2.cast)
; CHECK: call void @llvm.lifetime.end.p0i8(i64 -1, i8* %z2.cast)
; CHECK-NEXT: Alive: <x1 x2 z>
br label %if.end8
@ -278,8 +278,8 @@ if.else7: ; preds = %if.else4
if.end8: ; preds = %if.else7, %if.then6
; CHECK: if.end8:
; CHECK-NEXT: Alive: <x1 x2 z>
call void @llvm.lifetime.end.p0i8(i64 -1, i8* %5)
; CHECK: call void @llvm.lifetime.end.p0i8(i64 -1, i8* %5)
call void @llvm.lifetime.end.p0i8(i64 -1, i8* %z.cast)
; CHECK: call void @llvm.lifetime.end.p0i8(i64 -1, i8* %z.cast)
; CHECK-NEXT: Alive: <x1 x2>
br label %if.end9
@ -287,12 +287,12 @@ if.end8: ; preds = %if.else7, %if.then6
if.end9: ; preds = %if.end8, %if.end
; CHECK: if.end9:
; CHECK-NEXT: Alive: <x1 x2>
call void @llvm.lifetime.end.p0i8(i64 -1, i8* %1)
; CHECK: call void @llvm.lifetime.end.p0i8(i64 -1, i8* %1)
call void @llvm.lifetime.end.p0i8(i64 -1, i8* %x2.cast)
; CHECK: call void @llvm.lifetime.end.p0i8(i64 -1, i8* %x2.cast)
; CHECK-NEXT: Alive: <x1>
call void @llvm.lifetime.end.p0i8(i64 -1, i8* %0)
; CHECK: call void @llvm.lifetime.end.p0i8(i64 -1, i8* %0)
call void @llvm.lifetime.end.p0i8(i64 -1, i8* %x1.cast)
; CHECK: call void @llvm.lifetime.end.p0i8(i64 -1, i8* %x1.cast)
; CHECK-NEXT: Alive: <>
ret void
@ -495,14 +495,14 @@ entry:
%B.i2 = alloca [100 x i32], align 4
%A.i = alloca [100 x i32], align 4
%B.i = alloca [100 x i32], align 4
%0 = bitcast [100 x i32]* %A.i to i8*
call void @llvm.lifetime.start.p0i8(i64 -1, i8* %0)
; CHECK: call void @llvm.lifetime.start.p0i8(i64 -1, i8* %0)
%A.i.cast = bitcast [100 x i32]* %A.i to i8*
call void @llvm.lifetime.start.p0i8(i64 -1, i8* %A.i.cast)
; CHECK: call void @llvm.lifetime.start.p0i8(i64 -1, i8* %A.i.cast)
; CHECK-NEXT: Alive: <A.i>
%1 = bitcast [100 x i32]* %B.i to i8*
call void @llvm.lifetime.start.p0i8(i64 -1, i8* %1)
; CHECK: call void @llvm.lifetime.start.p0i8(i64 -1, i8* %1)
%B.i.cast = bitcast [100 x i32]* %B.i to i8*
call void @llvm.lifetime.start.p0i8(i64 -1, i8* %B.i.cast)
; CHECK: call void @llvm.lifetime.start.p0i8(i64 -1, i8* %B.i.cast)
; CHECK-NEXT: Alive: <A.i B.i>
call void @capture100x32([100 x i32]* %A.i)
@ -510,32 +510,32 @@ entry:
; CHECK-NEXT: Alive: <A.i B.i>
call void @capture100x32([100 x i32]* %B.i)
call void @llvm.lifetime.end.p0i8(i64 -1, i8* %0)
; CHECK: call void @llvm.lifetime.end.p0i8(i64 -1, i8* %0)
call void @llvm.lifetime.end.p0i8(i64 -1, i8* %A.i.cast)
; CHECK: call void @llvm.lifetime.end.p0i8(i64 -1, i8* %A.i.cast)
; CHECK-NEXT: Alive: <B.i>
call void @llvm.lifetime.end.p0i8(i64 -1, i8* %1)
; CHECK: call void @llvm.lifetime.end.p0i8(i64 -1, i8* %1)
call void @llvm.lifetime.end.p0i8(i64 -1, i8* %B.i.cast)
; CHECK: call void @llvm.lifetime.end.p0i8(i64 -1, i8* %B.i.cast)
; CHECK-NEXT: Alive: <>
%2 = bitcast [100 x i32]* %A.i1 to i8*
call void @llvm.lifetime.start.p0i8(i64 -1, i8* %2)
; CHECK: call void @llvm.lifetime.start.p0i8(i64 -1, i8* %2)
%A.i1.cast = bitcast [100 x i32]* %A.i1 to i8*
call void @llvm.lifetime.start.p0i8(i64 -1, i8* %A.i1.cast)
; CHECK: call void @llvm.lifetime.start.p0i8(i64 -1, i8* %A.i1.cast)
; CHECK-NEXT: Alive: <A.i1>
%3 = bitcast [100 x i32]* %B.i2 to i8*
call void @llvm.lifetime.start.p0i8(i64 -1, i8* %3)
; CHECK: call void @llvm.lifetime.start.p0i8(i64 -1, i8* %3)
%B.i2.cast = bitcast [100 x i32]* %B.i2 to i8*
call void @llvm.lifetime.start.p0i8(i64 -1, i8* %B.i2.cast)
; CHECK: call void @llvm.lifetime.start.p0i8(i64 -1, i8* %B.i2.cast)
; CHECK-NEXT: Alive: <A.i1 B.i2>
call void @capture100x32([100 x i32]* %A.i1)
call void @capture100x32([100 x i32]* %B.i2)
call void @llvm.lifetime.end.p0i8(i64 -1, i8* %2)
; CHECK: call void @llvm.lifetime.end.p0i8(i64 -1, i8* %2)
call void @llvm.lifetime.end.p0i8(i64 -1, i8* %A.i1.cast)
; CHECK: call void @llvm.lifetime.end.p0i8(i64 -1, i8* %A.i1.cast)
; CHECK-NEXT: Alive: <B.i2>
call void @llvm.lifetime.end.p0i8(i64 -1, i8* %3)
; CHECK: call void @llvm.lifetime.end.p0i8(i64 -1, i8* %3)
call void @llvm.lifetime.end.p0i8(i64 -1, i8* %B.i2.cast)
; CHECK: call void @llvm.lifetime.end.p0i8(i64 -1, i8* %B.i2.cast)
; CHECK-NEXT: Alive: <>
ret void
@ -578,24 +578,24 @@ entry:
%B.i2 = alloca [100 x i32], align 4
%A.i = alloca [100 x i32], align 4
%B.i = alloca [100 x i32], align 4
%0 = bitcast [100 x i32]* %A.i to i8*
call void @llvm.lifetime.start.p0i8(i64 -1, i8* %0)
; CHECK: call void @llvm.lifetime.start.p0i8(i64 -1, i8* %0)
%A.i.cast = bitcast [100 x i32]* %A.i to i8*
call void @llvm.lifetime.start.p0i8(i64 -1, i8* %A.i.cast)
; CHECK: call void @llvm.lifetime.start.p0i8(i64 -1, i8* %A.i.cast)
; CHECK-NEXT: Alive: <A.i A.i1 B.i2>
%1 = bitcast [100 x i32]* %B.i to i8*
call void @llvm.lifetime.start.p0i8(i64 -1, i8* %1)
; CHECK: call void @llvm.lifetime.start.p0i8(i64 -1, i8* %1)
%B.i.cast = bitcast [100 x i32]* %B.i to i8*
call void @llvm.lifetime.start.p0i8(i64 -1, i8* %B.i.cast)
; CHECK: call void @llvm.lifetime.start.p0i8(i64 -1, i8* %B.i.cast)
; CHECK-NEXT: Alive: <A.i A.i1 B.i B.i2>
call void @capture100x32([100 x i32]* %A.i)
call void @capture100x32([100 x i32]* %B.i)
call void @llvm.lifetime.end.p0i8(i64 -1, i8* %0)
; CHECK: call void @llvm.lifetime.end.p0i8(i64 -1, i8* %0)
call void @llvm.lifetime.end.p0i8(i64 -1, i8* %A.i.cast)
; CHECK: call void @llvm.lifetime.end.p0i8(i64 -1, i8* %A.i.cast)
; CHECK-NEXT: Alive: <A.i1 B.i B.i2>
call void @llvm.lifetime.end.p0i8(i64 -1, i8* %1)
; CHECK: call void @llvm.lifetime.end.p0i8(i64 -1, i8* %1)
call void @llvm.lifetime.end.p0i8(i64 -1, i8* %B.i.cast)
; CHECK: call void @llvm.lifetime.end.p0i8(i64 -1, i8* %B.i.cast)
; CHECK-NEXT: Alive: <A.i1 B.i2>
br label %block2
@ -714,26 +714,26 @@ entry:
if.then: ; preds = %entry
; CHECK: if.then:
; CHECK-NEXT: Alive: <>
%0 = getelementptr inbounds %struct.char_array, %struct.char_array* %a, i64 0, i32 0, i64 0
call void @llvm.lifetime.start.p0i8(i64 500, i8* nonnull %0)
; CHECK: call void @llvm.lifetime.start.p0i8(i64 500, i8* nonnull %0)
%gep0 = getelementptr inbounds %struct.char_array, %struct.char_array* %a, i64 0, i32 0, i64 0
call void @llvm.lifetime.start.p0i8(i64 500, i8* nonnull %gep0)
; CHECK: call void @llvm.lifetime.start.p0i8(i64 500, i8* nonnull %gep0)
; CHECK-NEXT: Alive: <a>
tail call void @capture8(i8* %0)
call void @llvm.lifetime.end.p0i8(i64 500, i8* nonnull %0)
; CHECK: call void @llvm.lifetime.end.p0i8(i64 500, i8* nonnull %0)
tail call void @capture8(i8* %gep0)
call void @llvm.lifetime.end.p0i8(i64 500, i8* nonnull %gep0)
; CHECK: call void @llvm.lifetime.end.p0i8(i64 500, i8* nonnull %gep0)
; CHECK-NEXT: Alive: <>
br label %if.end
if.else: ; preds = %entry
; CHECK: if.else:
; CHECK-NEXT: Alive: <>
%1 = getelementptr inbounds %struct.char_array, %struct.char_array* %b, i64 0, i32 0, i64 0
call void @llvm.lifetime.start.p0i8(i64 500, i8* nonnull %1)
; CHECK: call void @llvm.lifetime.start.p0i8(i64 500, i8* nonnull %1)
%gep1 = getelementptr inbounds %struct.char_array, %struct.char_array* %b, i64 0, i32 0, i64 0
call void @llvm.lifetime.start.p0i8(i64 500, i8* nonnull %gep1)
; CHECK: call void @llvm.lifetime.start.p0i8(i64 500, i8* nonnull %gep1)
; CHECK-NEXT: Alive: <b>
tail call void @capture8(i8* %1)
call void @llvm.lifetime.end.p0i8(i64 500, i8* nonnull %1)
; CHECK: call void @llvm.lifetime.end.p0i8(i64 500, i8* nonnull %1)
tail call void @capture8(i8* %gep1)
call void @llvm.lifetime.end.p0i8(i64 500, i8* nonnull %gep1)
; CHECK: call void @llvm.lifetime.end.p0i8(i64 500, i8* nonnull %gep1)
; CHECK-NEXT: Alive: <>
br label %if.end

View File

@ -495,7 +495,7 @@ define signext i8 @SimpleLoop() {
; CHECK-NEXT: allocas uses:
; CHECK-NEXT: x[10]: [0,10){{$}}
; GLOBAL-NEXT: safe accesses:
; GLOBAL-NEXT: %1 = load volatile i8, i8* %p.09, align 1
; GLOBAL-NEXT: %load = load volatile i8, i8* %p.09, align 1
; CHECK-EMPTY:
entry:
%x = alloca [10 x i8], align 1
@ -507,8 +507,8 @@ for.body:
%sum.010 = phi i8 [ 0, %entry ], [ %add, %for.body ]
%p.09 = phi i8* [ %0, %entry ], [ %incdec.ptr, %for.body ]
%incdec.ptr = getelementptr inbounds i8, i8* %p.09, i64 1
%1 = load volatile i8, i8* %p.09, align 1
%add = add i8 %1, %sum.010
%load = load volatile i8, i8* %p.09, align 1
%add = add i8 %load, %sum.010
%exitcond = icmp eq i8* %incdec.ptr, %lftr.limit
br i1 %exitcond, label %for.cond.cleanup, label %for.body
@ -535,8 +535,8 @@ for.body:
%sum.010 = phi i8 [ 0, %entry ], [ %add, %for.body ]
%p.09 = phi i8* [ %0, %entry ], [ %incdec.ptr, %for.body ]
%incdec.ptr = getelementptr inbounds i8, i8* %p.09, i64 1
%1 = load volatile i8, i8* %p.09, align 1
%add = add i8 %1, %sum.010
%load = load volatile i8, i8* %p.09, align 1
%add = add i8 %load, %sum.010
%exitcond = icmp eq i8* %incdec.ptr, %lftr.limit
br i1 %exitcond, label %for.cond.cleanup, label %for.body
@ -596,7 +596,7 @@ define void @ZeroSize(%zerosize_type *%p) {
; GLOBAL-NEXT: safe accesses:
; GLOBAL-NEXT: store %zerosize_type undef, %zerosize_type* %x, align 4
; GLOBAL-NEXT: store %zerosize_type undef, %zerosize_type* undef, align 4
; GLOBAL-NEXT: load %zerosize_type, %zerosize_type* %p, align
; GLOBAL-NEXT: load %zerosize_type, %zerosize_type* %p, align
; CHECK-EMPTY:
entry:
%x = alloca %zerosize_type, align 4