diff --git a/clang/test/Driver/flang/flang.f90 b/clang/test/Driver/flang/flang.f90 new file mode 100644 index 0000000000000..9d47c7c90225c --- /dev/null +++ b/clang/test/Driver/flang/flang.f90 @@ -0,0 +1,51 @@ +! Check that flang -fc1 is invoked when in --driver-mode=flang. + +! This is a copy of flang_ucase.F90 because the driver has logic in it which +! differentiates between F90 and f90 files. Flang will not treat these files +! differently. + +! Test various output types: +! * -E +! * -fsyntax-only +! * -emit-llvm -S +! * -emit-llvm +! * -S +! * (no type specified, resulting in an object file) + +! All invocations should begin with flang -fc1, consume up to here. +! ALL-LABEL: "{{[^"]*}}flang" "-fc1" + +! Check that f90 files are not treated as "previously preprocessed" +! ... in --driver-mode=flang. +! RUN: %clang --driver-mode=flang -### -E %s 2>&1 | FileCheck --check-prefixes=ALL,CHECK-E %s +! CHECK-E-NOT: previously preprocessed input +! CHECK-E-DAG: "-E" +! CHECK-E-DAG: "-o" "-" + +! RUN: %clang --driver-mode=flang -### -emit-ast %s 2>&1 | FileCheck --check-prefixes=ALL,CHECK-EMIT-AST %s +! CHECK-EMIT-AST-DAG: "-triple" +! CHECK-EMIT-AST-DAG: "-emit-ast" +! CHECK-EMIT-AST-DAG: "-o" "{{[^"]*}}.ast" + +! RUN: %clang --driver-mode=flang -### -fsyntax-only %s 2>&1 | FileCheck --check-prefixes=ALL,CHECK-SYNTAX-ONLY %s +! CHECK-SYNTAX-ONLY-NOT: "-o" +! CHECK-SYNTAX-ONLY-DAG: "-fsyntax-only" + +! RUN: %clang --driver-mode=flang -### -emit-llvm -S %s 2>&1 | FileCheck --check-prefixes=ALL,CHECK-EMIT-LLVM-IR %s +! CHECK-EMIT-LLVM-IR-DAG: "-emit-llvm" +! CHECK-EMIT-LLVM-IR-DAG: "-o" "{{[^"]*}}.ll" + +! RUN: %clang --driver-mode=flang -### -emit-llvm %s 2>&1 | FileCheck --check-prefixes=ALL,CHECK-EMIT-LLVM-BC %s +! CHECK-EMIT-LLVM-BC-DAG: "-emit-llvm-bc" +! CHECK-EMIT-LLVM-BC-DAG: "-o" "{{[^"]*}}.bc" + +! RUN: %clang --driver-mode=flang -### -S %s 2>&1 | FileCheck --check-prefixes=ALL,CHECK-S %s +! CHECK-S-DAG: "-S" +! CHECK-S-DAG: "-o" "{{[^"]*}}.s" + +! RUN: %clang --driver-mode=flang -### %s 2>&1 | FileCheck --check-prefixes=ALL,CHECK-EMIT-OBJ %s +! CHECK-EMIT-OBJ-DAG: "-emit-obj" +! CHECK-EMIT-OBJ-DAG: "-o" "{{[^"]*}}.o" + +! Should end in the input file. +! ALL: "{{.*}}flang.f90"{{$}} diff --git a/clang/test/Driver/flang/flang_ucase.F90 b/clang/test/Driver/flang/flang_ucase.F90 new file mode 100644 index 0000000000000..323afb21dccf5 --- /dev/null +++ b/clang/test/Driver/flang/flang_ucase.F90 @@ -0,0 +1,51 @@ +! Check that flang -fc1 is invoked when in --driver-mode=flang. + +! This is a copy of flang.f90 because the driver has logic in it which +! differentiates between F90 and f90 files. Flang will not treat these files +! differently. + +! Test various output types: +! * -E +! * -fsyntax-only +! * -emit-llvm -S +! * -emit-llvm +! * -S +! * (no type specified, resulting in an object file) + +! All invocations should begin with flang -fc1, consume up to here. +! ALL-LABEL: "{{[^"]*}}flang" "-fc1" + +! Check that f90 files are not treated as "previously preprocessed" +! ... in --driver-mode=flang. +! RUN: %clang --driver-mode=flang -### -E %s 2>&1 | FileCheck --check-prefixes=ALL,CHECK-E %s +! CHECK-E-NOT: previously preprocessed input +! CHECK-E-DAG: "-E" +! CHECK-E-DAG: "-o" "-" + +! RUN: %clang --driver-mode=flang -### -emit-ast %s 2>&1 | FileCheck --check-prefixes=ALL,CHECK-EMIT-AST %s +! CHECK-EMIT-AST-DAG: "-triple" +! CHECK-EMIT-AST-DAG: "-emit-ast" +! CHECK-EMIT-AST-DAG: "-o" "{{[^"]*}}.ast" + +! RUN: %clang --driver-mode=flang -### -fsyntax-only %s 2>&1 | FileCheck --check-prefixes=ALL,CHECK-SYNTAX-ONLY %s +! CHECK-SYNTAX-ONLY-NOT: "-o" +! CHECK-SYNTAX-ONLY-DAG: "-fsyntax-only" + +! RUN: %clang --driver-mode=flang -### -emit-llvm -S %s 2>&1 | FileCheck --check-prefixes=ALL,CHECK-EMIT-LLVM-IR %s +! CHECK-EMIT-LLVM-IR-DAG: "-emit-llvm" +! CHECK-EMIT-LLVM-IR-DAG: "-o" "{{[^"]*}}.ll" + +! RUN: %clang --driver-mode=flang -### -emit-llvm %s 2>&1 | FileCheck --check-prefixes=ALL,CHECK-EMIT-LLVM-BC %s +! CHECK-EMIT-LLVM-BC-DAG: "-emit-llvm-bc" +! CHECK-EMIT-LLVM-BC-DAG: "-o" "{{[^"]*}}.bc" + +! RUN: %clang --driver-mode=flang -### -S %s 2>&1 | FileCheck --check-prefixes=ALL,CHECK-S %s +! CHECK-S-DAG: "-S" +! CHECK-S-DAG: "-o" "{{[^"]*}}.s" + +! RUN: %clang --driver-mode=flang -### %s 2>&1 | FileCheck --check-prefixes=ALL,CHECK-EMIT-OBJ %s +! CHECK-EMIT-OBJ-DAG: "-emit-obj" +! CHECK-EMIT-OBJ-DAG: "-o" "{{[^"]*}}.o" + +! Should end in the input file. +! ALL: "{{.*}}flang_ucase.F90"{{$}}