]> gcc.gnu.org Git - gcc.git/commitdiff
re PR fortran/39688 (IMPORT of derived type fails)
authorJanus Weil <janus@gcc.gnu.org>
Sat, 25 Apr 2009 08:11:48 +0000 (10:11 +0200)
committerJanus Weil <janus@gcc.gnu.org>
Sat, 25 Apr 2009 08:11:48 +0000 (10:11 +0200)
2009-04-25  Janus Weil  <janus@gcc.gnu.org>

PR fortran/39688
* decl.c (gfc_match_import): Use 'sym->name' instead of 'name'.
They differ if the symbol has been use-renamed.

2009-04-25  Janus Weil  <janus@gcc.gnu.org>

PR fortran/39688
* gfortran.dg/import7.f90: New.

From-SVN: r146762

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

index 99575797646f036840c79b94901ddb25acc6d9fc..d39b7138d24fb585e4af052dbc7197cb6e344a16 100644 (file)
@@ -1,3 +1,9 @@
+2009-04-25  Janus Weil  <janus@gcc.gnu.org>
+
+       PR fortran/39688
+       * decl.c (gfc_match_import): Use 'sym->name' instead of 'name'.
+       They differ if the symbol has been use-renamed.
+
 2009-04-24  Ian Lance Taylor  <iant@google.com>
 
        * gfortran.h (enum gfc_symbol_type): New named enum type, broken
index 1a8d6dcf36a74719b44c3b0fbc13cc89d4a65a53..eaa310cf066656a77d17485505b3c768b8300f2b 100644 (file)
@@ -2741,7 +2741,7 @@ gfc_match_import (void)
              goto next_item;
            }
 
-         st = gfc_new_symtree (&gfc_current_ns->sym_root, name);
+         st = gfc_new_symtree (&gfc_current_ns->sym_root, sym->name);
          st->n.sym = sym;
          sym->refs++;
          sym->attr.imported = 1;
index 654c5e8a9c01a321e30b2fb38d51273a68670160..af9f6bc632f54deb6d7e5eca3f1c592c0caf79e3 100644 (file)
@@ -1,3 +1,8 @@
+2009-04-25  Janus Weil  <janus@gcc.gnu.org>
+
+       PR fortran/39688
+       * gfortran.dg/import7.f90: New.
+
 2009-04-24  Richard Guenther  <rguenther@suse.de>
 
        * gcc.dg/tree-ssa/vrp48.c: Fix.
diff --git a/gcc/testsuite/gfortran.dg/import7.f90 b/gcc/testsuite/gfortran.dg/import7.f90
new file mode 100644 (file)
index 0000000..c115cc3
--- /dev/null
@@ -0,0 +1,58 @@
+! { dg-do compile }
+!
+! PR39688: IMPORT of derived type fails
+!
+! Contributed by Bob Corbett <robert.corbett@sun.com>
+
+       MODULE MOD
+         TYPE T1
+           SEQUENCE
+           TYPE(T2), POINTER :: P
+         END TYPE
+         TYPE T2
+           SEQUENCE
+           INTEGER I
+         END TYPE
+       END
+
+       PROGRAM MAIN
+         USE MOD, T3 => T1, T4 => T2
+         TYPE T1
+           SEQUENCE
+           TYPE(T2), POINTER :: P
+         END TYPE
+         INTERFACE SUBR
+           SUBROUTINE SUBR1(X)
+             IMPORT T3
+             TYPE(T3) X
+           END SUBROUTINE
+           SUBROUTINE SUBR2(X)
+             IMPORT T1
+             TYPE(T1) X
+           END SUBROUTINE
+         END INTERFACE
+         TYPE T2
+           SEQUENCE
+           REAL X
+         END TYPE
+       END
+
+       SUBROUTINE SUBR1(X)
+         USE MOD
+         TYPE(T1) X
+       END
+
+       SUBROUTINE SUBR2(X)
+         TYPE T1
+           SEQUENCE
+           TYPE(T2), POINTER :: P
+         END TYPE
+         TYPE T2
+           SEQUENCE
+           REAL X
+         END TYPE
+         TYPE(T1) X
+       END
+
+! { dg-final { cleanup-modules "mod" } }
+
This page took 0.088984 seconds and 5 git commands to generate.