blob: bc26ec3ac042041abb51fba988a848a8feb3930e [file] [log] [blame]
; REQUIRES: x86
; RUN: rm -fr %t.dir/savetemps-colon
; RUN: mkdir -p %t.dir/savetemps-colon
; RUN: opt -thinlto-bc -o %t.dir/savetemps-colon/savetemps.obj %s
; RUN: opt -thinlto-bc -o %t.dir/savetemps-colon/thin1.obj %S/Inputs/thinlto.ll
;; Check preopt
; RUN: lld-link /lldsavetemps:preopt /out:%t.dir/savetemps-colon/savetemps.exe /entry:main \
; RUN: /subsystem:console %t.dir/savetemps-colon/savetemps.obj %t.dir/savetemps-colon/thin1.obj
; RUN: ls %t.dir/savetemps-colon/*.obj.*.preopt.bc | count 2
;; Check promote
; RUN: lld-link /lldsavetemps:promote /out:%t.dir/savetemps-colon/savetemps.exe /entry:main \
; RUN: /subsystem:console %t.dir/savetemps-colon/savetemps.obj %t.dir/savetemps-colon/thin1.obj
; RUN: ls %t.dir/savetemps-colon/*.obj.*.promote.bc | count 2
;; Check internalize
; RUN: lld-link /lldsavetemps:internalize /out:%t.dir/savetemps-colon/savetemps.exe /entry:main \
; RUN: /subsystem:console %t.dir/savetemps-colon/savetemps.obj %t.dir/savetemps-colon/thin1.obj
; RUN: ls %t.dir/savetemps-colon/*.obj.*.internalize.bc | count 2
;; Check import
; RUN: lld-link /lldsavetemps:import /out:%t.dir/savetemps-colon/savetemps.exe /entry:main \
; RUN: /subsystem:console %t.dir/savetemps-colon/savetemps.obj %t.dir/savetemps-colon/thin1.obj
; RUN: ls %t.dir/savetemps-colon/*.obj.*.import.bc | count 2
;; Check opt
;; Not supported on Windows due to difficulty with escaping "opt" across platforms.
;; Check precodegen
; RUN: lld-link /lldsavetemps:precodegen /out:%t.dir/savetemps-colon/savetemps.exe /entry:main \
; RUN: /subsystem:console %t.dir/savetemps-colon/savetemps.obj %t.dir/savetemps-colon/thin1.obj
; RUN: ls %t.dir/savetemps-colon/*.obj.*.precodegen.bc | count 2
;; Check combinedindex
; RUN: lld-link /lldsavetemps:combinedindex /out:%t.dir/savetemps-colon/savetemps.exe /entry:main \
; RUN: /subsystem:console %t.dir/savetemps-colon/savetemps.obj %t.dir/savetemps-colon/thin1.obj
; RUN: ls %t.dir/savetemps-colon/*.exe.index.bc | count 1
;; Check prelink
; RUN: lld-link /lldsavetemps:prelink /out:%t.dir/savetemps-colon/savetemps.exe /entry:main \
; RUN: /subsystem:console %t.dir/savetemps-colon/savetemps.obj %t.dir/savetemps-colon/thin1.obj
; RUN: ls %t.dir/savetemps-colon/*.exe.lto.*.obj | count 2
;; Check resolution
; RUN: lld-link /lldsavetemps:resolution /out:%t.dir/savetemps-colon/savetemps.exe /entry:main \
; RUN: /subsystem:console %t.dir/savetemps-colon/savetemps.obj %t.dir/savetemps-colon/thin1.obj
; RUN: ls %t.dir/savetemps-colon/*.resolution.txt | count 1
;; Check error message
; RUN: not lld-link /lldsavetemps:notastage /out:%t.dir/savetemps-colon/savetemps.exe /entry:main \
; RUN: /subsystem:console %t.dir/savetemps-colon/savetemps.obj %t.dir/savetemps-colon/thin1.obj 2>&1 \
; RUN: | FileCheck %s
; CHECK: unknown /lldsavetemps value: notastage
target datalayout = "e-m:w-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-pc-windows-msvc"
declare void @g()
define i32 @main() {
call void @g()
ret i32 0
}