diff options
Diffstat (limited to 'test/Driver/gfortran.f90')
-rw-r--r-- | test/Driver/gfortran.f90 | 244 |
1 files changed, 244 insertions, 0 deletions
diff --git a/test/Driver/gfortran.f90 b/test/Driver/gfortran.f90 new file mode 100644 index 0000000..d531f59 --- /dev/null +++ b/test/Driver/gfortran.f90 @@ -0,0 +1,244 @@ +! Test that Clang can forward all of the flags which are documented as +! being supported by gfortran to GCC when falling back to GCC for +! a fortran input file. +! +! RUN: %clang -no-canonical-prefixes -target i386-linux -### %s -o %t 2>&1 \ +! RUN: -Aquestion=answer \ +! RUN: -A-question=answer \ +! RUN: -C \ +! RUN: -CC \ +! RUN: -Dmacro \ +! RUN: -Dmacro=value \ +! RUN: -H \ +! RUN: -Isome/directory \ +! RUN: -Jsome/other/directory \ +! RUN: -P \ +! RUN: -Umacro \ +! RUN: -Waliasing \ +! RUN: -Walign-commons \ +! RUN: -Wall \ +! RUN: -Wampersand \ +! RUN: -Warray-bounds \ +! RUN: -Wc-binding-type \ +! RUN: -Wcharacter-truncation \ +! RUN: -Wconversion \ +! RUN: -Wfunction-elimination \ +! RUN: -Wimplicit-interface \ +! RUN: -Wimplicit-procedure \ +! RUN: -Wintrinsic-shadow \ +! RUN: -Wintrinsics-std \ +! RUN: -Wline-truncation \ +! RUN: -Wreal-q-constant \ +! RUN: -Wrealloc-lhs \ +! RUN: -Wsurprising \ +! RUN: -Wtabs \ +! RUN: -Wtarget-lifetime \ +! RUN: -Wunderflow \ +! RUN: -Wunused-parameter \ +! RUN: -cpp \ +! RUN: -dD \ +! RUN: -dI \ +! RUN: -dM \ +! RUN: -dN \ +! RUN: -dU \ +! RUN: -faggressive-function-elimination \ +! RUN: -falign-commons \ +! RUN: -fall-intrinsics \ +! RUN: -fautomatic \ +! RUN: -fbackslash \ +! RUN: -fbacktrace \ +! RUN: -fblas-matmul-limit=42 \ +! RUN: -fbounds-check \ +! RUN: -fcheck-array-temporaries \ +! RUN: -fcheck=all \ +! RUN: -fcoarray=none \ +! RUN: -fconvert=foobar \ +! RUN: -fcray-pointer \ +! RUN: -fd-lines-as-code \ +! RUN: -fd-lines-as-comments \ +! RUN: -fdefault-double-8 \ +! RUN: -fdefault-integer-8 \ +! RUN: -fdefault-real-8 \ +! RUN: -fdollar-ok \ +! RUN: -fdump-fortran-optimized \ +! RUN: -fdump-fortran-original \ +! RUN: -fdump-parse-tree \ +! RUN: -fexternal-blas \ +! RUN: -ff2c \ +! RUN: -ffixed-form \ +! RUN: -ffixed-line-length-42 \ +! RUN: -ffpe-trap=list \ +! RUN: -ffree-form \ +! RUN: -ffree-line-length-42 \ +! RUN: -ffrontend-optimize \ +! RUN: -fimplicit-none \ +! RUN: -finit-character=n \ +! RUN: -finit-integer=n \ +! RUN: -finit-local-zero \ +! RUN: -finit-logical=false \ +! RUN: -finit-real=zero \ +! RUN: -finteger-4-integer-8 \ +! RUN: -fintrinsic-modules-path \ +! RUN: -fmax-array-constructor=42 \ +! RUN: -fmax-errors=42 \ +! RUN: -fmax-identifier-length \ +! RUN: -fmax-stack-var-size=42 \ +! RUN: -fmax-subrecord-length=42 \ +! RUN: -fmodule-private \ +! RUN: -fopenmp \ +! RUN: -fpack-derived \ +! RUN: -fprotect-parens \ +! RUN: -frange-check \ +! RUN: -freal-4-real-10 \ +! RUN: -freal-4-real-16 \ +! RUN: -freal-4-real-8 \ +! RUN: -freal-8-real-10 \ +! RUN: -freal-8-real-16 \ +! RUN: -freal-8-real-4 \ +! RUN: -frealloc-lhs \ +! RUN: -frecord-marker=42 \ +! RUN: -frecursive \ +! RUN: -frepack-arrays \ +! RUN: -fsecond-underscore \ +! RUN: -fshort-enums \ +! RUN: -fsign-zero \ +! RUN: -fstack-arrays \ +! RUN: -fsyntax-only \ +! RUN: -funderscoring \ +! RUN: -fwhole-file \ +! RUN: -fworking-directory \ +! RUN: -imultilib \ +! RUN: -iprefix \ +! RUN: -iquote \ +! RUN: -isysroot \ +! RUN: -isystem \ +! RUN: -nocpp \ +! RUN: -nostdinc \ +! RUN: -pedantic \ +! RUN: -pedantic-errors \ +! RUN: -static-libgfortran \ +! RUN: -std=f90 \ +! RUN: -undef \ +! RUN: | FileCheck %s +! +! FIXME: Several of these shouldn't necessarily be rendered separately +! when passing to GCC... Hopefully their driver handles this. +! +! CHECK: "-Aquestion=answer" +! CHECK: "-A-question=answer" +! CHECK: "-C" +! CHECK: "-CC" +! CHECK: "-D" "macro" +! CHECK: "-D" "macro=value" +! CHECK: "-H" +! CHECK: "-I" "some/directory" +! CHECK: "-Jsome/other/directory" +! CHECK: "-P" +! CHECK: "-U" "macro" +! CHECK: "-Waliasing" +! CHECK: "-Walign-commons" +! CHECK: "-Wall" +! CHECK: "-Wampersand" +! CHECK: "-Warray-bounds" +! CHECK: "-Wc-binding-type" +! CHECK: "-Wcharacter-truncation" +! CHECK: "-Wconversion" +! CHECK: "-Wfunction-elimination" +! CHECK: "-Wimplicit-interface" +! CHECK: "-Wimplicit-procedure" +! CHECK: "-Wintrinsic-shadow" +! CHECK: "-Wintrinsics-std" +! CHECK: "-Wline-truncation" +! CHECK: "-Wreal-q-constant" +! CHECK: "-Wrealloc-lhs" +! CHECK: "-Wsurprising" +! CHECK: "-Wtabs" +! CHECK: "-Wtarget-lifetime" +! CHECK: "-Wunderflow" +! CHECK: "-Wunused-parameter" +! CHECK: "-cpp" +! CHECK: "-dD" +! CHECK: "-dI" +! CHECK: "-dM" +! CHECK: "-dN" +! CHECK: "-dU" +! CHECK: "-faggressive-function-elimination" +! CHECK: "-falign-commons" +! CHECK: "-fall-intrinsics" +! CHECK: "-fautomatic" +! CHECK: "-fbackslash" +! CHECK: "-fbacktrace" +! CHECK: "-fblas-matmul-limit=42" +! CHECK: "-fbounds-check" +! CHECK: "-fcheck-array-temporaries" +! CHECK: "-fcheck=all" +! CHECK: "-fcoarray=none" +! CHECK: "-fconvert=foobar" +! CHECK: "-fcray-pointer" +! CHECK: "-fd-lines-as-code" +! CHECK: "-fd-lines-as-comments" +! CHECK: "-fdefault-double-8" +! CHECK: "-fdefault-integer-8" +! CHECK: "-fdefault-real-8" +! CHECK: "-fdollar-ok" +! CHECK: "-fdump-fortran-optimized" +! CHECK: "-fdump-fortran-original" +! CHECK: "-fdump-parse-tree" +! CHECK: "-fexternal-blas" +! CHECK: "-ff2c" +! CHECK: "-ffixed-form" +! CHECK: "-ffixed-line-length-42" +! CHECK: "-ffpe-trap=list" +! CHECK: "-ffree-form" +! CHECK: "-ffree-line-length-42" +! CHECK: "-ffrontend-optimize" +! CHECK: "-fimplicit-none" +! CHECK: "-finit-character=n" +! CHECK: "-finit-integer=n" +! CHECK: "-finit-local-zero" +! CHECK: "-finit-logical=false" +! CHECK: "-finit-real=zero" +! CHECK: "-finteger-4-integer-8" +! CHECK: "-fintrinsic-modules-path" +! CHECK: "-fmax-array-constructor=42" +! CHECK: "-fmax-errors=42" +! CHECK: "-fmax-identifier-length" +! CHECK: "-fmax-stack-var-size=42" +! CHECK: "-fmax-subrecord-length=42" +! CHECK: "-fmodule-private" +! CHECK: "-fopenmp" +! CHECK: "-fpack-derived" +! CHECK: "-fprotect-parens" +! CHECK: "-frange-check" +! CHECK: "-freal-4-real-10" +! CHECK: "-freal-4-real-16" +! CHECK: "-freal-4-real-8" +! CHECK: "-freal-8-real-10" +! CHECK: "-freal-8-real-16" +! CHECK: "-freal-8-real-4" +! CHECK: "-frealloc-lhs" +! CHECK: "-frecord-marker=42" +! CHECK: "-frecursive" +! CHECK: "-frepack-arrays" +! CHECK: "-fsecond-underscore" +! CHECK: "-fshort-enums" +! CHECK: "-fsign-zero" +! CHECK: "-fstack-arrays" +! CHECK: "-funderscoring" +! CHECK: "-fwhole-file" +! CHECK: "-fworking-directory" +! CHECK: "-imultilib" +! CHECK: "-iprefix" +! CHECK: "-iquote" +! CHECK: "-isysroot" +! CHECK: "-isystem" +! CHECK: "-nocpp" +! CHECK: "-nostdinc" +! CHECK: "-pedantic" +! CHECK: "-pedantic-errors" +! CHECK: "-static-libgfortran" +! CHECK: "-std=f90" +! CHECK: "-undef" +! +! Clang understands this one and orders it weirdly. +! CHECK: "-fsyntax-only" |