diff options
author | Fritz Reese <fritzoreese@gmail.com> | 2018-12-03 15:42:51 +0000 |
---|---|---|
committer | Fritz Reese <foreese@gcc.gnu.org> | 2018-12-03 15:42:51 +0000 |
commit | 7ed760c79399c2d0a3406f28c6fd85f95bf6097c (patch) | |
tree | 65e401cb045d5ba626f4aeea61a1eb510b9ec1cc | |
parent | 509f987074e247f84afbd37af0d13a9179870d74 (diff) | |
download | gcc-7ed760c79399c2d0a3406f28c6fd85f95bf6097c.zip gcc-7ed760c79399c2d0a3406f28c6fd85f95bf6097c.tar.gz gcc-7ed760c79399c2d0a3406f28c6fd85f95bf6097c.tar.bz2 |
re PR fortran/87919 (Incorrect fortran handling of -fno-* options)
2018-12-03 Fritz Reese <fritzoreese@gmail.com>
Mark Eggleston <mark.eggleston@codethink.co.uk>
PR fortran/87919
gcc/fortran/ChangeLog:
PR fortran/87919
* options.c (SET_FLAG, SET_BITFLAG, SET_BITFLAG2): New macros.
(set_dec_flags): Set/unset DEC and std flags according to value.
(set_init_local_zero): New helper for -finit-local-zero flag group.
(gfc_init_options): Fix disabling of init flags, array temporaries
check, and dec flags when value is zero (from -fno-*).
gcc/testsuite/ChangeLog:
PR fortran/87919
* gfortran.dg/array_temporaries_5.f90: New test.
* gfortran.dg/dec_bitwise_ops_3.f90: Ditto.
* gfortran.dg/dec_d_lines_3.f: Ditto.
* gfortran.dg/dec_exp_4.f90: Ditto.
* gfortran.dg/dec_exp_5.f90: Ditto.
* gfortran.dg/dec_io_7.f90: Ditto.
* gfortran.dg/dec_structure_24.f90: Ditto.
* gfortran.dg/dec_structure_25.f90: Ditto.
* gfortran.dg/dec_structure_26.f90: Ditto.
* gfortran.dg/dec_structure_27.f90: Ditto.
* gfortran.dg/dec_type_print_3.f90: Ditto.
* gfortran.dg/init_flag_20.f90: Ditto.
Co-Authored-By: Mark Eggleston <mark.eggleston@codethink.co.uk>
From-SVN: r266745
-rw-r--r-- | gcc/fortran/ChangeLog | 10 | ||||
-rw-r--r-- | gcc/fortran/options.c | 65 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 17 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/array_temporaries_5.f90 | 10 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/dec_bitwise_ops_3.f90 | 29 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/dec_d_lines_3.f | 14 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/dec_exp_4.f90 | 12 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/dec_exp_5.f90 | 11 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/dec_io_7.f90 | 20 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/dec_structure_24.f90 | 32 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/dec_structure_25.f90 | 11 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/dec_structure_26.f90 | 34 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/dec_structure_27.f90 | 34 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/dec_type_print_3.f90 | 21 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/init_flag_20.f90 | 15 |
15 files changed, 322 insertions, 13 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 76bb0b9..1101507 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,13 @@ +2018-12-03 Fritz Reese <fritzoreese@gmail.com> + Mark Eggleston <mark.eggleston@codethink.co.uk> + + PR fortran/87919 + * options.c (SET_FLAG, SET_BITFLAG, SET_BITFLAG2): New macros. + (set_dec_flags): Set/unset DEC and std flags according to value. + (set_init_local_zero): New helper for -finit-local-zero flag group. + (gfc_init_options): Fix disabling of init flags, array temporaries + check, and dec flags when value is zero (from -fno-*). + 2018-11-30 Thomas Schwinge <thomas@codesourcery.com> * gfortran.h (struct gfc_omp_clauses): Remove "wait". Adjust all diff --git a/gcc/fortran/options.c b/gcc/fortran/options.c index e59ba31..b35bed3 100644 --- a/gcc/fortran/options.c +++ b/gcc/fortran/options.c @@ -32,6 +32,20 @@ along with GCC; see the file COPYING3. If not see gfc_option_t gfc_option; +#define SET_FLAG(flag, condition, on_value, off_value) \ + do \ + { \ + if (condition) \ + flag = (on_value); \ + else \ + flag = (off_value); \ + } while (0) + +#define SET_BITFLAG2(m) m + +#define SET_BITFLAG(flag, condition, value) \ + SET_BITFLAG2 (SET_FLAG (flag, condition, (flag | (value)), (flag & ~(value)))) + /* Set flags that control warnings and errors for different Fortran standards to their default values. Keep in sync with @@ -47,30 +61,55 @@ set_default_std_flags (void) gfc_option.warn_std = GFC_STD_F2018_DEL | GFC_STD_F95_DEL | GFC_STD_LEGACY; } - -/* Set all the DEC extension flags. */ +/* Set (or unset) the DEC extension flags. */ static void set_dec_flags (int value) { + /* Set (or unset) other DEC compatibility extensions. */ + SET_BITFLAG (flag_dollar_ok, value, value); + SET_BITFLAG (flag_cray_pointer, value, value); + SET_BITFLAG (flag_dec_structure, value, value); + SET_BITFLAG (flag_dec_intrinsic_ints, value, value); + SET_BITFLAG (flag_dec_static, value, value); + SET_BITFLAG (flag_dec_math, value, value); + SET_BITFLAG (flag_dec_include, value, value); +} + +/* Finalize DEC flags. */ + +static void +post_dec_flags (int value) +{ + /* Don't warn for legacy code if -fdec is given; however, setting -fno-dec + does not force these warnings. We make one final determination on this + at the end because -std= is always set first; thus, we can avoid + clobbering the user's desired standard settings in gfc_handle_option + e.g. when -fdec and -fno-dec are both given. */ if (value) { - /* Allow legacy code without warnings. */ gfc_option.allow_std |= GFC_STD_F95_OBS | GFC_STD_F95_DEL - | GFC_STD_GNU | GFC_STD_LEGACY; + | GFC_STD_GNU | GFC_STD_LEGACY; gfc_option.warn_std &= ~(GFC_STD_LEGACY | GFC_STD_F95_DEL); } - - /* Set other DEC compatibility extensions. */ - flag_dollar_ok |= value; - flag_cray_pointer |= value; - flag_dec_structure |= value; - flag_dec_intrinsic_ints |= value; - flag_dec_static |= value; - flag_dec_math |= value; - flag_dec_include |= value; } +/* Enable (or disable) -finit-local-zero. */ + +static void +set_init_local_zero (int value) +{ + gfc_option.flag_init_integer_value = 0; + gfc_option.flag_init_character_value = (char)0; + + SET_FLAG (gfc_option.flag_init_integer, value, GFC_INIT_INTEGER_ON, + GFC_INIT_INTEGER_OFF); + SET_FLAG (gfc_option.flag_init_logical, value, GFC_INIT_LOGICAL_FALSE, + GFC_INIT_LOGICAL_OFF); + SET_FLAG (gfc_option.flag_init_character, value, GFC_INIT_CHARACTER_ON, + GFC_INIT_CHARACTER_OFF); + SET_FLAG (flag_init_real, value, GFC_INIT_REAL_ZERO, GFC_INIT_REAL_OFF); +} /* Return language mask for Fortran options. */ diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index c09a84a..fdb6f8b 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,20 @@ +2018-12-03 Fritz Reese <fritzoreese@gmail.com> + Mark Eggleston <mark.eggleston@codethink.co.uk> + + PR fortran/87919 + * gfortran.dg/array_temporaries_5.f90: New test. + * gfortran.dg/dec_bitwise_ops_3.f90: Ditto. + * gfortran.dg/dec_d_lines_3.f: Ditto. + * gfortran.dg/dec_exp_4.f90: Ditto. + * gfortran.dg/dec_exp_5.f90: Ditto. + * gfortran.dg/dec_io_7.f90: Ditto. + * gfortran.dg/dec_structure_24.f90: Ditto. + * gfortran.dg/dec_structure_25.f90: Ditto. + * gfortran.dg/dec_structure_26.f90: Ditto. + * gfortran.dg/dec_structure_27.f90: Ditto. + * gfortran.dg/dec_type_print_3.f90: Ditto. + * gfortran.dg/init_flag_20.f90: Ditto. + 2018-12-03 Jeff Law <law@redhat.com> * gcc.dg/pr59963-2.c: Make testnames unique. diff --git a/gcc/testsuite/gfortran.dg/array_temporaries_5.f90 b/gcc/testsuite/gfortran.dg/array_temporaries_5.f90 new file mode 100644 index 0000000..dd147ba --- /dev/null +++ b/gcc/testsuite/gfortran.dg/array_temporaries_5.f90 @@ -0,0 +1,10 @@ +! { dg-do run } +! { dg-options "-fcheck-array-temporaries -fno-check-array-temporaries" } +! +! PR fortran/87919 +! +! Ensure -fno-check-array-temporaries disables array temporary checking. +! + +! Note that 'include' drops the dg-output check from the original test case. +include 'array_temporaries_2.f90' diff --git a/gcc/testsuite/gfortran.dg/dec_bitwise_ops_3.f90 b/gcc/testsuite/gfortran.dg/dec_bitwise_ops_3.f90 new file mode 100644 index 0000000..c28cf81 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/dec_bitwise_ops_3.f90 @@ -0,0 +1,29 @@ +! { dg-do compile } +! { dg-options "-std=legacy -fdec -fno-dec" } +! +! PR fortran/87919 +! +! Make sure -fno-dec disables bitwise ops and check for the right errors. +! -std=legacy is added to avoid the .XOR. extension warning. +! + +include 'dec_bitwise_ops_1.f90' + +! { dg-error "Operands of logical operator" " " { target *-*-* } 33 } +! { dg-error "Operands of logical operator" " " { target *-*-* } 34 } +! { dg-error "Operands of logical operator" " " { target *-*-* } 35 } +! { dg-error "Operands of logical operator" " " { target *-*-* } 46 } +! { dg-error "Operands of logical operator" " " { target *-*-* } 47 } +! { dg-error "Operands of logical operator" " " { target *-*-* } 48 } +! { dg-error "Operands of logical operator" " " { target *-*-* } 59 } +! { dg-error "Operands of logical operator" " " { target *-*-* } 60 } +! { dg-error "Operands of logical operator" " " { target *-*-* } 61 } +! { dg-error "Operand of .not. operator" " " { target *-*-* } 72 } +! { dg-error "Operand of .not. operator" " " { target *-*-* } 73 } +! { dg-error "Operand of .not. operator" " " { target *-*-* } 74 } +! { dg-error "Operands of logical operator" " " { target *-*-* } 85 } +! { dg-error "Operands of logical operator" " " { target *-*-* } 86 } +! { dg-error "Operands of logical operator" " " { target *-*-* } 87 } +! { dg-error "Operands of logical operator" " " { target *-*-* } 98 } +! { dg-error "Operands of logical operator" " " { target *-*-* } 99 } +! { dg-error "Operands of logical operator" " " { target *-*-* } 100 } diff --git a/gcc/testsuite/gfortran.dg/dec_d_lines_3.f b/gcc/testsuite/gfortran.dg/dec_d_lines_3.f new file mode 100644 index 0000000..2df4341 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/dec_d_lines_3.f @@ -0,0 +1,14 @@ +! { dg-do compile } +! { dg-options "-ffixed-form -fdec -fno-dec" } +! +! PR fortran/87919 +! +! Ensure -fno-dec disables -fdec, leaving d-lines as code by default. +! + +include 'dec_d_lines_2.f' + +! { dg-error "character in statement label" " " { target *-*-*} 6 } +! { dg-error "Unclassifiable statement" " " { target *-*-*} 6 } +! { dg-error "character in statement label" " " { target *-*-*} 7 } +! { dg-error "Unclassifiable statement" " " { target *-*-*} 7 } diff --git a/gcc/testsuite/gfortran.dg/dec_exp_4.f90 b/gcc/testsuite/gfortran.dg/dec_exp_4.f90 new file mode 100644 index 0000000..9d8b10d --- /dev/null +++ b/gcc/testsuite/gfortran.dg/dec_exp_4.f90 @@ -0,0 +1,12 @@ +! { dg-do compile } +! { dg-options "-fdec -fno-dec" } +! +! PR fortran/87919 +! +! Make sure -fno-dec disables -fdec as with dec_exp_2. +! + +include 'dec_exp_2.f90' + +! { dg-error "Missing exponent" "" { target *-*-* } 9 } +! { dg-error "Missing exponent" "" { target *-*-* } 11 } diff --git a/gcc/testsuite/gfortran.dg/dec_exp_5.f90 b/gcc/testsuite/gfortran.dg/dec_exp_5.f90 new file mode 100644 index 0000000..faf3a9b --- /dev/null +++ b/gcc/testsuite/gfortran.dg/dec_exp_5.f90 @@ -0,0 +1,11 @@ +! { dg-do run "xfail *-*-*" } +! { dg-options "-fdec -fno-dec" } +! +! PR fortran/87919 +! +! Make sure -fno-dec disables -fdec as with dec_exp_3. +! + +include 'dec_exp_3.f90' + +! { XFAIL "Bad real number" "" { target *-*-* } 13 } diff --git a/gcc/testsuite/gfortran.dg/dec_io_7.f90 b/gcc/testsuite/gfortran.dg/dec_io_7.f90 new file mode 100644 index 0000000..4a931c1 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/dec_io_7.f90 @@ -0,0 +1,20 @@ +! { dg-do compile } +! { dg-options "-fdec -fno-dec" } +! +! PR fortran/87919 +! +! Make sure -fno-dec rejects -fdec I/O specifiers as with dec_io_1. +! + +include 'dec_io_1.f90' + +! { dg-error "is a DEC extension" "" { target *-*-* } 12 } +! { dg-error "is a DEC extension" "" { target *-*-* } 24 } +! { dg-error "is a DEC extension" "" { target *-*-* } 58 } +! { dg-error "is a DEC extension" "" { target *-*-* } 64 } +! { dg-error "is a DEC extension" "" { target *-*-* } 68 } +! { dg-error "is a DEC extension" "" { target *-*-* } 74 } +! { dg-error "is a DEC extension" "" { target *-*-* } 78 } +! { dg-error "is a DEC extension" "" { target *-*-* } 84 } +! { dg-error "is a DEC extension" "" { target *-*-* } 90 } +! { dg-error "is a DEC extension" "" { target *-*-* } 96 } diff --git a/gcc/testsuite/gfortran.dg/dec_structure_24.f90 b/gcc/testsuite/gfortran.dg/dec_structure_24.f90 new file mode 100644 index 0000000..02842b3 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/dec_structure_24.f90 @@ -0,0 +1,32 @@ +! { dg-do compile } +! +! PR fortran/87919 +! +! Should fail to compile without the -fdec or -fdec-structure options. +! +! Contributed by Mark Eggleston <mark.eggleston@codethink.com> + +include 'dec_structure_1.f90' + +! { dg-error "-fdec-structure" " " { target *-*-* } 14 } +! { dg-error "Expecting END PROGRAM" " " { target *-*-* } 19 } +! { dg-error "-fdec-structure" " " { target *-*-* } 21 } +! { dg-error "-fdec-structure" " " { target *-*-* } 22 } +! { dg-error "Unclassifiable statement" " " { target *-*-* } 25 } +! { dg-error "Unclassifiable statement" " " { target *-*-* } 26 } +! { dg-error "Unclassifiable statement" " " { target *-*-* } 27 } +! { dg-error "Unclassifiable statement" " " { target *-*-* } 28 } +! { dg-error "is not a variable" " " { target *-*-* } 30 } +! { dg-error "Bad character" " " { target *-*-* } 32 } +! { dg-error "Expecting END PROGRAM" " " { target *-*-* } 34 } +! { dg-error "Bad character" " " { target *-*-* } 36 } +! { dg-error "Expecting END PROGRAM" " " { target *-*-* } 38 } +! { dg-error "Bad character" " " { target *-*-* } 40 } +! { dg-error "Expecting END PROGRAM" " " { target *-*-* } 42 } +! { dg-error "Bad character" " " { target *-*-* } 44 } +! { dg-error "Expecting END PROGRAM" " " { target *-*-* } 46 } +! { dg-error "Bad character" " " { target *-*-* } 48 } +! { dg-error "Expecting END PROGRAM" " " { target *-*-* } 50 } +! { dg-error "Bad character" " " { target *-*-* } 52 } +! { dg-error "Expecting END PROGRAM" " " { target *-*-* } 54 } +! { dg-error "function result" " " { target *-*-* } 29 } diff --git a/gcc/testsuite/gfortran.dg/dec_structure_25.f90 b/gcc/testsuite/gfortran.dg/dec_structure_25.f90 new file mode 100644 index 0000000..a64d85a --- /dev/null +++ b/gcc/testsuite/gfortran.dg/dec_structure_25.f90 @@ -0,0 +1,11 @@ +! { dg-do run } +! { dg-options "-fdec" } +! +! PR fortran/87919 +! +! Should compile and run with the -fdec option. +! +! Contributed by Mark Eggleston <mark.eggleston@codethink.com> +! + +include 'dec_structure_1.f90' diff --git a/gcc/testsuite/gfortran.dg/dec_structure_26.f90 b/gcc/testsuite/gfortran.dg/dec_structure_26.f90 new file mode 100644 index 0000000..7829103 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/dec_structure_26.f90 @@ -0,0 +1,34 @@ +! { dg-do compile } +! { dg-options "-fdec -fno-dec-structure" } +! +! PR fortran/87919 +! +! Should fail to compile with -fdec and -fno-dec-structure. +! +! Contributed by Mark Eggleston <mark.eggleston@codethink.com> +! + +include 'dec_structure_1.f90' + +! { dg-error "-fdec-structure" " " { target *-*-* } 14 } +! { dg-error "Expecting END PROGRAM" " " { target *-*-* } 19 } +! { dg-error "-fdec-structure" " " { target *-*-* } 21 } +! { dg-error "-fdec-structure" " " { target *-*-* } 22 } +! { dg-error "Unclassifiable statement" " " { target *-*-* } 25 } +! { dg-error "Unclassifiable statement" " " { target *-*-* } 26 } +! { dg-error "Unclassifiable statement" " " { target *-*-* } 27 } +! { dg-error "Unclassifiable statement" " " { target *-*-* } 28 } +! { dg-error "is not a variable" " " { target *-*-* } 30 } +! { dg-error "Bad character" " " { target *-*-* } 32 } +! { dg-error "Expecting END PROGRAM" " " { target *-*-* } 34 } +! { dg-error "Bad character" " " { target *-*-* } 36 } +! { dg-error "Expecting END PROGRAM" " " { target *-*-* } 38 } +! { dg-error "Bad character" " " { target *-*-* } 40 } +! { dg-error "Expecting END PROGRAM" " " { target *-*-* } 42 } +! { dg-error "Bad character" " " { target *-*-* } 44 } +! { dg-error "Expecting END PROGRAM" " " { target *-*-* } 46 } +! { dg-error "Bad character" " " { target *-*-* } 48 } +! { dg-error "Expecting END PROGRAM" " " { target *-*-* } 50 } +! { dg-error "Bad character" " " { target *-*-* } 52 } +! { dg-error "Expecting END PROGRAM" " " { target *-*-* } 54 } +! { dg-error "function result" " " { target *-*-* } 29 } diff --git a/gcc/testsuite/gfortran.dg/dec_structure_27.f90 b/gcc/testsuite/gfortran.dg/dec_structure_27.f90 new file mode 100644 index 0000000..1257365 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/dec_structure_27.f90 @@ -0,0 +1,34 @@ +! { dg-do compile } +! { dg-options "-fdec-structure -fno-dec-structure" } +! +! PR fortran/87919 +! +! Should fail to compile with -fdec-structure and -fno-dec-structure. +! +! Contributed by Mark Eggleston <mark.eggleston@codethink.com> +! + +include 'dec_structure_1.f90' + +! { dg-error "-fdec-structure" " " { target *-*-* } 14 } +! { dg-error "Expecting END PROGRAM" " " { target *-*-* } 19 } +! { dg-error "-fdec-structure" " " { target *-*-* } 21 } +! { dg-error "-fdec-structure" " " { target *-*-* } 22 } +! { dg-error "Unclassifiable statement" " " { target *-*-* } 25 } +! { dg-error "Unclassifiable statement" " " { target *-*-* } 26 } +! { dg-error "Unclassifiable statement" " " { target *-*-* } 27 } +! { dg-error "Unclassifiable statement" " " { target *-*-* } 28 } +! { dg-error "is not a variable" " " { target *-*-* } 30 } +! { dg-error "Bad character" " " { target *-*-* } 32 } +! { dg-error "Expecting END PROGRAM" " " { target *-*-* } 34 } +! { dg-error "Bad character" " " { target *-*-* } 36 } +! { dg-error "Expecting END PROGRAM" " " { target *-*-* } 38 } +! { dg-error "Bad character" " " { target *-*-* } 40 } +! { dg-error "Expecting END PROGRAM" " " { target *-*-* } 42 } +! { dg-error "Bad character" " " { target *-*-* } 44 } +! { dg-error "Expecting END PROGRAM" " " { target *-*-* } 46 } +! { dg-error "Bad character" " " { target *-*-* } 48 } +! { dg-error "Expecting END PROGRAM" " " { target *-*-* } 50 } +! { dg-error "Bad character" " " { target *-*-* } 52 } +! { dg-error "Expecting END PROGRAM" " " { target *-*-* } 54 } +! { dg-error "function result" " " { target *-*-* } 29 } diff --git a/gcc/testsuite/gfortran.dg/dec_type_print_3.f90 b/gcc/testsuite/gfortran.dg/dec_type_print_3.f90 new file mode 100644 index 0000000..f766bdf --- /dev/null +++ b/gcc/testsuite/gfortran.dg/dec_type_print_3.f90 @@ -0,0 +1,21 @@ +! { dg-do compile } +! { dg-options "-fdec -fno-dec" } +! +! PR fortran/87919 +! +! Ensure that -fno-dec disables the usage of TYPE as an alias for PRINT. +! + +include 'dec_type_print.f90' + +! { dg-error "Invalid character in name" "" { target *-*-* } 52 } +! { dg-error "Invalid character in name" "" { target *-*-* } 53 } +! { dg-error "Invalid character in name" "" { target *-*-* } 54 } +! { dg-error "Invalid character in name" "" { target *-*-* } 55 } +! { dg-error "Invalid character in name" "" { target *-*-* } 56 } +! { dg-error "Invalid character in name" "" { target *-*-* } 57 } +! { dg-error "Invalid character in name" "" { target *-*-* } 58 } +! { dg-error "Unclassifiable statement" "" { target *-*-* } 59 } +! { dg-error "conflicts with PROCEDURE" "" { target *-*-* } 60 } +! { dg-error "Cannot assign to a named constant" "" { target *-*-* } 80 } + diff --git a/gcc/testsuite/gfortran.dg/init_flag_20.f90 b/gcc/testsuite/gfortran.dg/init_flag_20.f90 new file mode 100644 index 0000000..6f15c1a --- /dev/null +++ b/gcc/testsuite/gfortran.dg/init_flag_20.f90 @@ -0,0 +1,15 @@ +! { dg-do compile } +! { dg-options "-fbackslash -finit-local-zero -fno-init-local-zero -fdump-tree-original" } +! +! PR fortran/87919 +! +! Make sure -fno-init-local-zero disables -finit-local-zero. +! + +include 'init_flag_1.f90' + +! Make sure no initialization code is generated. +! { dg-final { scan-tree-dump-times "r\[1-4] *= *\[0\{]" 0 "original" } } +! { dg-final { scan-tree-dump-times "l\[12] *= *\[0\{]" 0 "original" } } +! { dg-final { scan-tree-dump-times "i\[1-4] *= *\[0\{]" 0 "original" } } +! { dg-final { scan-tree-dump-times "memmove *\[(]\[^,]*c\[1-4]" 0 "original" } } |