llvm/test/Transforms/InstCombine/nonnull-attribute.ll
Pete Cooper a72297881f isKnownNonNull needs to consider globals in non-zero address spaces.
Globals in address spaces other than one may have 0 as a valid address,
so we should not assume that they can be null.

Reviewed by Philip Reames.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@246137 91177308-0d34-0410-b5e6-96231b3b80d8
2015-08-27 03:16:29 +00:00

20 lines
524 B
LLVM

; RUN: opt < %s -instcombine -S | FileCheck %s
; This test makes sure that we do not assume globals in address spaces other
; than 0 are able to be null.
@as0 = external global i32
@as1 = external addrspace(1) global i32
declare void @addrspace0(i32*)
declare void @addrspace1(i32 addrspace(1)*)
; CHECK: call void @addrspace0(i32* nonnull @as0)
; CHECK: call void @addrspace1(i32 addrspace(1)* @as1)
define void @test() {
call void @addrspace0(i32* @as0)
call void @addrspace1(i32 addrspace(1)* @as1)
ret void
}