OSDN Git Service

gcc/fortran:
authordfranke <dfranke@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 8 Jul 2007 22:58:45 +0000 (22:58 +0000)
committerdfranke <dfranke@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 8 Jul 2007 22:58:45 +0000 (22:58 +0000)
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126472 138bc75d-0d04-0410-961f-82ee72b054a4

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

index 5afe8f8..63b0b7c 100644 (file)
@@ -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 
index 701da3f..288f1f9 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 66749ec..6fd21a5 100644 (file)
 
 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 (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" } }