1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-31 07:52:55 +01:00
llvm-mirror/test/CodeGen/X86/GC/ocaml-gc.ll
Benjamin Kramer d0bfa4e8dc Fix GCMetadaPrinter::finishAssembly not executed, patch by Yiannis Tsiouris.
Due to the execution order of doFinalization functions, the GC information were
deleted before AsmPrinter::doFinalization was executed. Thus, the
GCMetadataPrinter::finishAssembly was never called.

The patch fixes that by moving the code of the GCInfoDeleter::doFinalization to
Printer::doFinalization.

llvm-svn: 175528
2013-02-19 16:51:44 +00:00

32 lines
972 B
LLVM

; RUN: llc < %s -mtriple=x86_64-linux-gnu | FileCheck %s
define i32 @main(i32 %x) nounwind gc "ocaml" {
; CHECK: .text
; CHECK-NEXT: .globl caml_3C_stdin_3E___code_begin
; CHECK-NEXT: caml_3C_stdin_3E___code_begin:
; CHECK-NEXT: .data
; CHECK-NEXT: .globl caml_3C_stdin_3E___data_begin
; CHECK-NEXT: caml_3C_stdin_3E___data_begin:
%puts = tail call i32 @foo(i32 %x)
ret i32 0
; CHECK: .globl caml_3C_stdin_3E___code_end
; CHECK-NEXT: caml_3C_stdin_3E___code_end:
; CHECK-NEXT: .data
; CHECK-NEXT: .globl caml_3C_stdin_3E___data_end
; CHECK-NEXT: caml_3C_stdin_3E___data_end:
; CHECK-NEXT: .quad 0
; CHECK-NEXT: .globl caml_3C_stdin_3E___frametable
; CHECK-NEXT: caml_3C_stdin_3E___frametable:
; CHECK-NEXT: .short 1
; CHECK-NEXT: .align 8
; CHECK-NEXT: # live roots for main
; CHECK-NEXT: .quad .Ltmp0
; CHECK-NEXT: .short 8
; CHECK-NEXT: .short 0
; CHECK-NEXT: .align 8
}
declare i32 @foo(i32)