mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-08-20 11:29:24 +00:00
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11851 91177308-0d34-0410-b5e6-96231b3b80d8
23 lines
547 B
LLVM
23 lines
547 B
LLVM
; RUN: analyze %s -datastructure-gc -dsgc-dspass=bu -dsgc-check-flags=A:SM
|
|
; 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
|
|
}
|