mirror of
https://github.com/RPCS3/llvm.git
synced 2024-12-26 22:26:16 +00:00
4ef7eafa3f
The language reference says that: "If a symbol appears in the @llvm.used list, then the compiler, assembler, and linker are required to treat the symbol as if there is a reference to the symbol that it cannot see" Since even the linker cannot see the reference, we must assume that the reference can be using the symbol table. For example, a user can add __attribute__((used)) to a debug helper function like dump and use it from a debugger. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187103 91177308-0d34-0410-b5e6-96231b3b80d8
21 lines
421 B
LLVM
21 lines
421 B
LLVM
; RUN: opt < %s -internalize -S | FileCheck %s
|
|
|
|
@llvm.used = appending global [1 x void ()*] [void ()* @f], section "llvm.metadata"
|
|
|
|
@llvm.compiler.used = appending global [1 x void ()*] [void ()* @g], section "llvm.metadata"
|
|
|
|
; CHECK: define void @f()
|
|
define void @f() {
|
|
ret void
|
|
}
|
|
|
|
; CHECK: define internal void @g()
|
|
define void @g() {
|
|
ret void
|
|
}
|
|
|
|
; CHECK: define internal void @h()
|
|
define void @h() {
|
|
ret void
|
|
}
|