mirror of
https://github.com/RPCSX/llvm.git
synced 2024-12-25 05:27:15 +00:00
6fd1b8ee48
Alias with unnamed_addr were in a strange state. It is stored in GlobalValue, the language reference talks about "unnamed_addr aliases" but the verifier was rejecting them. It seems natural to allow unnamed_addr in aliases: * It is a property of how it is accessed, not of the data itself. * It is perfectly possible to write code that depends on the address of an alias. This patch then makes unname_addr legal for aliases. One side effect is that the syntax changes for a corner case: In globals, unnamed_addr is now printed before the address space. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@210302 91177308-0d34-0410-b5e6-96231b3b80d8
11 lines
351 B
LLVM
11 lines
351 B
LLVM
; RUN: opt < %s -instcombine -S | FileCheck %s
|
|
; CHECK: addrspacecast
|
|
|
|
@base = internal unnamed_addr addrspace(3) global [16 x i32] zeroinitializer, align 16
|
|
declare void @foo(i32*)
|
|
|
|
define void @test() nounwind {
|
|
call void @foo(i32* getelementptr (i32* addrspacecast ([16 x i32] addrspace(3)* @base to i32*), i64 2147483647)) nounwind
|
|
ret void
|
|
}
|