| ; 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 |
| } |