aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Franke <franke.daniel@gmail.com>2007-07-08 18:58:45 -0400
committerDaniel Franke <dfranke@gcc.gnu.org>2007-07-08 18:58:45 -0400
commit090b4ea8eab716cb92c98dde56dc92754f29a64c (patch)
treeefbd87b38bd0299a20f12423ad76335e4b4ad392
parent534fd53491fb0026b878d93321880698a2930c7f (diff)
downloadgcc-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
-rw-r--r--gcc/fortran/ChangeLog6
-rw-r--r--gcc/fortran/module.c4
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gfortran.dg/operator_6.f9012
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" } }