diff options
author | Daniel Franke <franke.daniel@gmail.com> | 2007-07-08 18:58:45 -0400 |
---|---|---|
committer | Daniel Franke <dfranke@gcc.gnu.org> | 2007-07-08 18:58:45 -0400 |
commit | 090b4ea8eab716cb92c98dde56dc92754f29a64c (patch) | |
tree | efbd87b38bd0299a20f12423ad76335e4b4ad392 /gcc | |
parent | 534fd53491fb0026b878d93321880698a2930c7f (diff) | |
download | gcc-090b4ea8eab716cb92c98dde56dc92754f29a64c.zip gcc-090b4ea8eab716cb92c98dde56dc92754f29a64c.tar.gz gcc-090b4ea8eab716cb92c98dde56dc92754f29a64c.tar.bz2 |
re PR fortran/29876 (ICE on bad operator in ONLY clause of USE statement)
gcc/fortran:
2007-07-08 Daniel Franke <franke.daniel@gmail.com>
PR fortran/29876
* module.c (gfc_match_use): Do not set an non-existant
intrinsic operator if a user-defined operator is found.
gcc/testsuite:
2007-07-08 Daniel Franke <franke.daniel@gmail.com>
PR fortran/29876
* gfortran.dg/operator_6.f90: New test.
From-SVN: r126472
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/fortran/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/fortran/module.c | 4 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/operator_6.f90 | 12 |
4 files changed, 23 insertions, 4 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 5afe8f8..63b0b7c 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,5 +1,11 @@ 2007-07-08 Daniel Franke <franke.daniel@gmail.com> + PR fortran/29876 + * module.c (gfc_match_use): Do not set an non-existant + intrinsic operator if a user-defined operator is found. + +2007-07-08 Daniel Franke <franke.daniel@gmail.com> + PR fortran/24784 PR fortran/28004 * trans-decl.c (generate_local_decl): Adjusted warning on unused diff --git a/gcc/fortran/module.c b/gcc/fortran/module.c index 701da3f..288f1f9 100644 --- a/gcc/fortran/module.c +++ b/gcc/fortran/module.c @@ -651,10 +651,6 @@ gfc_match_use (void) "an external module name.", module_name); goto cleanup; } - - if (type == INTERFACE_USER_OP) - new->operator = operator; - break; case INTERFACE_INTRINSIC_OP: diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 66749ec..6fd21a5 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -10,6 +10,11 @@ 2007-07-08 Daniel Franke <franke.daniel@gmail.com> + PR fortran/29876 + * gfortran.dg/operator_6.f90: New test. + +2007-07-08 Daniel Franke <franke.daniel@gmail.com> + PR fortran/17711 * gfortran.dg/operator_4.f90: New test. * gfortran.dg/operator_5.f90: New test. diff --git a/gcc/testsuite/gfortran.dg/operator_6.f90 b/gcc/testsuite/gfortran.dg/operator_6.f90 new file mode 100644 index 0000000..f7b4693 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/operator_6.f90 @@ -0,0 +1,12 @@ +! { dg-do compile } +! +! PR fortran/29876 ICE on bad operator in ONLY clause of USE statement +! Testcase contributed by Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> +! +module foo +end module foo + +program test + use foo, only : operator(.none.) ! { dg-error "not found in module" } + end program test +! { dg-final { cleanup-modules "foo" } } |