mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-26 05:32:25 +00:00
d52e1b0dbe
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29927 91177308-0d34-0410-b5e6-96231b3b80d8
24 lines
594 B
LLVM
24 lines
594 B
LLVM
; FIXME: A should just be SM
|
|
; RUN: llvm-as < %s | opt -analyze -datastructure-gc -dsgc-dspass=bu -dsgc-check-flags=A:SIM
|
|
; Constant globals should not mark stuff incomplete. This should allow the
|
|
; bu pass to resolve the indirect call immediately in "test", allowing %A to
|
|
; be marked complete and the store to happen.
|
|
|
|
; This is the common case for handling vtables aggressively.
|
|
|
|
%G = constant void (int*)* %foo
|
|
|
|
implementation
|
|
|
|
void %foo(int *%X) {
|
|
store int 0, int* %X
|
|
ret void
|
|
}
|
|
|
|
void %test() {
|
|
%Fp = load void (int*)** %G
|
|
%A = alloca int
|
|
call void %Fp(int* %A)
|
|
ret void
|
|
}
|