xref: /llvm-project/flang/test/Driver/save-temps.f90 (revision a65afce731c2fa91effcfa5d4917d6ad90a28bf0)
1! Tests for the `-save-temps` flag. As `flang` does not implement `-fc1as` (i.e. a driver for the integrated assembler), we need to
2! use `-fno-integrated-as` here.
3
4! UNSUPPORTED: system-windows
5
6!--------------------------
7! Basic case: `-save-temps`
8!--------------------------
9! RUN: %flang -save-temps -fno-integrated-as %s -### 2>&1 | FileCheck %s
10! CHECK: "-o" "save-temps.i"
11! CHECK-NEXT: "-o" "save-temps.bc"
12! CHECK-NEXT: "-o" "save-temps.s"
13! CHECK-NEXT: "-o" "save-temps.o"
14! CHECK-NEXT: "-o" "a.out"
15
16!--------------------------
17! `-save-temps=cwd`
18!--------------------------
19! This should work the same as -save-temps above
20
21! RUN: %flang -save-temps=cwd -fno-integrated-as  %s -### 2>&1 | FileCheck %s -check-prefix=CWD
22! CWD: "-o" "save-temps.i"
23! CWD-NEXT: "-o" "save-temps.bc"
24! CWD-NEXT: "-o" "save-temps.s"
25! CWD-NEXT: "-o" "save-temps.o"
26! CWD-NEXT: "-o" "a.out"
27
28!--------------------------
29! `-save-temps=obj`
30!--------------------------
31! Check that temp files are saved in the same directory as the output file
32! regardless of whether -o is specified.
33
34! RUN: %flang -save-temps=obj -fno-integrated-as -o obj/dir/a.out %s -### 2>&1 | FileCheck %s -check-prefix=CHECK-OBJ
35! CHECK-OBJ: "-o" "obj/dir/save-temps.i"
36! CHECK-OBJ-NEXT: "-o" "obj/dir/save-temps.bc"
37! CHECK-OBJ-NEXT: "-o" "obj/dir/save-temps.s"
38! CHECK-OBJ-NEXT: "-o" "obj/dir/save-temps.o"
39! CHECK-OBJ-NEXT: "-o" "obj/dir/a.out"
40
41! RUN: %flang -save-temps=obj -fno-integrated-as %s -### 2>&1 | FileCheck %s -check-prefix=CHECK-OBJ-NOO
42! CHECK-OBJ-NOO: "-o" "save-temps.i"
43! CHECK-OBJ-NOO-NEXT: "-o" "save-temps.bc"
44! CHECK-OBJ-NOO-NEXT: "-o" "save-temps.s"
45! CHECK-OBJ-NOO-NEXT: "-o" "save-temps.o"
46! CHECK-OBJ-NOO-NEXT: "-o" "a.out"
47
48!--------------------------
49! `-S` without `-save-temps`
50!--------------------------
51! Check for a single `flang -fc1` invocation when NOT using -save-temps.
52! RUN: %flang -S %s -### 2>&1 | FileCheck %s -check-prefix=NO-TEMPS
53! NO-TEMPS: "-fc1"
54! NO-TEMPS-SAME: "-S"
55! NO-TEMPS-SAME: "-o" "save-temps.s"
56