re PR fortran/29876 (ICE on bad operator in ONLY clause of USE statement)
authorDaniel Franke <franke.daniel@gmail.com>
Sun, 8 Jul 2007 22:58:45 +0000 (18:58 -0400)
committerDaniel Franke <dfranke@gcc.gnu.org>
Sun, 8 Jul 2007 22:58:45 +0000 (18:58 -0400)
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

gcc/fortran/ChangeLog
gcc/fortran/module.c
gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/operator_6.f90 [new file with mode: 0644]

index 5afe8f85859fa135ffe392ba97066b60e77d4b0a..63b0b7c69f3a5a5897d16b42195fba737b76ecf5 100644 (file)
@@ -1,3 +1,9 @@
+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
index 701da3fdbb24d8bbdbb00f74ce9b3d27e6edae79..288f1f92a354f3d71540e96a814e7a7de16ff3c0 100644 (file)
@@ -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:
index 66749ecd75d8cdb5be3b1bb7c9b010328b3f34e7..6fd21a579d099b5806fc78aee1e406b98b4421b6 100644 (file)
@@ -8,6 +8,11 @@
        PR libfortran/32217
        * gfortran.dg/unpack_zerosize_1.f90:  New test case.
 
+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
diff --git a/gcc/testsuite/gfortran.dg/operator_6.f90 b/gcc/testsuite/gfortran.dg/operator_6.f90
new file mode 100644 (file)
index 0000000..f7b4693
--- /dev/null
@@ -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" } }