1! Check that flang -fc1 is invoked when in --driver-mode=flang. 2 3! This is a copy of flang_ucase.F90 because the driver has logic in it which 4! differentiates between F90 and f90 files. Flang will not treat these files 5! differently. 6 7! Test various output types: 8! * -E 9! * -fsyntax-only 10! * -emit-llvm -S 11! * -emit-llvm 12! * -S 13! * (no type specified, resulting in an object file) 14 15! All invocations should begin with flang -fc1, consume up to here. 16! ALL-LABEL: "{{[^"]*}}flang{{[^"/]*}}" "-fc1" 17 18! Check that f90 files are not treated as "previously preprocessed" 19! ... in --driver-mode=flang. 20! RUN: %clang --driver-mode=flang -### -E %s 2>&1 | FileCheck --check-prefixes=ALL,CHECK-E %s 21! CHECK-E-NOT: previously preprocessed input 22! CHECK-E-DAG: "-E" 23! CHECK-E-DAG: "-o" "-" 24 25! RUN: %clang --driver-mode=flang -### -fsyntax-only %s 2>&1 | FileCheck --check-prefixes=ALL,CHECK-SYNTAX-ONLY %s 26! CHECK-SYNTAX-ONLY-NOT: "-o" 27! CHECK-SYNTAX-ONLY-DAG: "-fsyntax-only" 28 29! RUN: %clang --driver-mode=flang -### -emit-llvm -S %s 2>&1 | FileCheck --check-prefixes=ALL,CHECK-EMIT-LLVM-IR %s 30! CHECK-EMIT-LLVM-IR-DAG: "-emit-llvm" 31! CHECK-EMIT-LLVM-IR-DAG: "-o" "{{[^"]*}}.ll" 32 33! RUN: not %clang --driver-mode=flang -### -emit-llvm %s 2>&1 | FileCheck --check-prefixes=ALL,CHECK-EMIT-LLVM-BC %s 34! CHECK-EMIT-LLVM-BC-DAG: "-emit-llvm-bc" 35! CHECK-EMIT-LLVM-BC-DAG: "-o" "{{[^"]*}}.bc" 36 37! RUN: %clang --driver-mode=flang -### -S %s 2>&1 | FileCheck --check-prefixes=ALL,CHECK-S %s 38! CHECK-S-DAG: "-S" 39! CHECK-S-DAG: "-o" "{{[^"]*}}.s" 40 41! RUN: %clang --driver-mode=flang -### %s 2>&1 | FileCheck --check-prefixes=ALL,CHECK-EMIT-OBJ %s 42! CHECK-EMIT-OBJ-DAG: "-emit-obj" 43! CHECK-EMIT-OBJ-DAG: "-o" "{{[^"]*}}.o" 44 45! Should end in the input file. 46! ALL: "{{.*}}flang.f90"{{$}} 47