diff options
author | Andre Vehreschild <vehre@gcc.gnu.org> | 2015-07-13 09:01:54 +0000 |
---|---|---|
committer | Andre Vehreschild <vehre@gcc.gnu.org> | 2015-07-13 09:01:54 +0000 |
commit | 7307cf6eb6c5b20db9ed023c337b7a4fd89628e1 (patch) | |
tree | 526949a813aafc36440a926d599606874b419795 | |
parent | 4a8410c0b0131c23df5711fdeca0b8ac92652246 (diff) |
gcc/testsuite/ChangeLog:
2015-07-13 Andre Vehreschild <vehre@gcc.gnu.org>
PR fortran/64589
* gfortran.dg/pr64589.f90: New test.
gcc/fortran/ChangeLog:
2015-07-13 Andre Vehreschild <vehre@gcc.gnu.org>
PR fortran/64589
* class.c (find_intrinsic_vtab): Put/Search vtabs for intrinsic
types in the top-level namespace.
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@225730 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | gcc/fortran/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/fortran/class.c | 6 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/pr64589.f90 | 30 |
4 files changed, 43 insertions, 4 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 6fad33241df..0a2734b6695 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,9 @@ +2015-07-13 Andre Vehreschild <vehre@gcc.gnu.org> + + PR fortran/64589 + * class.c (find_intrinsic_vtab): Put/Search vtabs for intrinsic + types in the top-level namespace. + 2015-07-12 Aldy Hernandez <aldyh@redhat.com> * trans-stmt.c: Fix double word typos. diff --git a/gcc/fortran/class.c b/gcc/fortran/class.c index 799039999db..218973dc048 100644 --- a/gcc/fortran/class.c +++ b/gcc/fortran/class.c @@ -2511,10 +2511,8 @@ find_intrinsic_vtab (gfc_typespec *ts) sprintf (name, "__vtab_%s", tname); - /* Look for the vtab symbol in various namespaces. */ - gfc_find_symbol (name, gfc_current_ns, 0, &vtab); - if (vtab == NULL) - gfc_find_symbol (name, ns, 0, &vtab); + /* Look for the vtab symbol in the top-level namespace only. */ + gfc_find_symbol (name, ns, 0, &vtab); if (vtab == NULL) { diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 1e6a07186d6..46cf748e298 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2015-07-13 Andre Vehreschild <vehre@gcc.gnu.org> + + PR fortran/64589 + * gfortran.dg/pr64589.f90: New test. + 2015-07-13 Renlin Li <renlin.li@arm.com> PR rtl/66556 diff --git a/gcc/testsuite/gfortran.dg/pr64589.f90 b/gcc/testsuite/gfortran.dg/pr64589.f90 new file mode 100644 index 00000000000..6e65e70aa03 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/pr64589.f90 @@ -0,0 +1,30 @@ +! { dg-do compile } +! Just need to check if compiling and linking is possible. +! +! Check that the _vtab linking issue is resolved. +! Contributed by Damian Rouson <damian@sourceryinstitute.org> + +module m +contains + subroutine fmt() + class(*), pointer :: arg + select type (arg) + type is (integer) + end select + end subroutine +end module + +program p + call getSuffix() +contains + subroutine makeString(arg1) + class(*) :: arg1 + select type (arg1) + type is (integer) + end select + end subroutine + subroutine getSuffix() + call makeString(1) + end subroutine +end + |