mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-08-05 13:26:55 +00:00
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187103 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
20
test/Transforms/Internalize/used.ll
Normal file
20
test/Transforms/Internalize/used.ll
Normal file
@@ -0,0 +1,20 @@
|
||||
; 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
|
||||
}
|
Reference in New Issue
Block a user