blob: 113ef75f45b875e24bfecfc5d7237ed7691f3e58 [file] [log] [blame]
! 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-new" "-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: "-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 -### -fintegrated-as %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"{{$}}