1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-31 16:02:52 +01:00
llvm-mirror/test/Transforms/Internalize/used.ll
Rafael Espindola ad8b23acd3 Respect llvm.used in Internalize.
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.

llvm-svn: 187103
2013-07-25 03:23:25 +00:00

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
}