! Tests for the `-save-temps` flag. As `flang` does not implement `-fc1as` (i.e. a driver for the integrated assembler), we need to ! use `-fno-integrated-as` here. ! UNSUPPORTED: system-windows !-------------------------- ! Basic case: `-save-temps` !-------------------------- ! RUN: %flang -save-temps -fno-integrated-as %s -### 2>&1 | FileCheck %s ! CHECK: "-o" "save-temps.i" ! CHECK-NEXT: "-o" "save-temps.bc" ! CHECK-NEXT: "-o" "save-temps.s" ! CHECK-NEXT: "-o" "save-temps.o" ! CHECK-NEXT: "-o" "a.out" !-------------------------- ! `-save-temps=cwd` !-------------------------- ! This should work the same as -save-temps above ! RUN: %flang -save-temps=cwd -fno-integrated-as %s -### 2>&1 | FileCheck %s -check-prefix=CWD ! CWD: "-o" "save-temps.i" ! CWD-NEXT: "-o" "save-temps.bc" ! CWD-NEXT: "-o" "save-temps.s" ! CWD-NEXT: "-o" "save-temps.o" ! CWD-NEXT: "-o" "a.out" !-------------------------- ! `-save-temps=obj` !-------------------------- ! Check that temp files are saved in the same directory as the output file ! regardless of whether -o is specified. ! RUN: %flang -save-temps=obj -fno-integrated-as -o obj/dir/a.out %s -### 2>&1 | FileCheck %s -check-prefix=CHECK-OBJ ! CHECK-OBJ: "-o" "obj/dir/save-temps.i" ! CHECK-OBJ-NEXT: "-o" "obj/dir/save-temps.bc" ! CHECK-OBJ-NEXT: "-o" "obj/dir/save-temps.s" ! CHECK-OBJ-NEXT: "-o" "obj/dir/save-temps.o" ! CHECK-OBJ-NEXT: "-o" "obj/dir/a.out" ! RUN: %flang -save-temps=obj -fno-integrated-as %s -### 2>&1 | FileCheck %s -check-prefix=CHECK-OBJ-NOO ! CHECK-OBJ-NOO: "-o" "save-temps.i" ! CHECK-OBJ-NOO-NEXT: "-o" "save-temps.bc" ! CHECK-OBJ-NOO-NEXT: "-o" "save-temps.s" ! CHECK-OBJ-NOO-NEXT: "-o" "save-temps.o" ! CHECK-OBJ-NOO-NEXT: "-o" "a.out" !-------------------------- ! `-S` without `-save-temps` !-------------------------- ! Check for a single `flang -fc1` invocation when NOT using -save-temps. ! RUN: %flang -S %s -### 2>&1 | FileCheck %s -check-prefix=NO-TEMPS ! NO-TEMPS: "-fc1" ! NO-TEMPS-SAME: "-S" ! NO-TEMPS-SAME: "-o" "save-temps.s"