mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-10-22 12:33:33 +02:00
e5f71f18e0
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. llvm-svn: 210302
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
|
|
}
|