diff options
author | Janus Weil <janus@gcc.gnu.org> | 2010-12-12 22:14:13 +0100 |
---|---|---|
committer | Janus Weil <janus@gcc.gnu.org> | 2010-12-12 22:14:13 +0100 |
commit | 2c3d0cd3885a4c7786c0a62b6e46a7b244d3ce4e (patch) | |
tree | 95da660609df055dbd848091eb8141622c4ddb4b /gcc | |
parent | 4a10fb9416cefe050c804006aa77ca4fd6a8e8ab (diff) | |
download | gcc-2c3d0cd3885a4c7786c0a62b6e46a7b244d3ce4e.zip gcc-2c3d0cd3885a4c7786c0a62b6e46a7b244d3ce4e.tar.gz gcc-2c3d0cd3885a4c7786c0a62b6e46a7b244d3ce4e.tar.bz2 |
re PR fortran/46809 ([OOP] ICE with -fcheck=pointer for CLASS IS)
2010-12-12 Janus Weil <janus@gcc.gnu.org>
PR fortran/46809
* resolve.c (resolve_select_type): Set the location of the first
argument when generating the EXTENDS_TYPE_OF call.
2010-12-12 Janus Weil <janus@gcc.gnu.org>
PR fortran/46809
* gfortran.dg/pointer_check_8.f90: New.
From-SVN: r167731
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/fortran/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/fortran/resolve.c | 1 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/pointer_check_8.f90 | 21 |
4 files changed, 33 insertions, 0 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 90337d2..734b493 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,9 @@ +2010-12-12 Janus Weil <janus@gcc.gnu.org> + + PR fortran/46809 + * resolve.c (resolve_select_type): Set the location of the first + argument when generating the EXTENDS_TYPE_OF call. + 2010-12-11 Jerry DeLisle <jvdelisle@gcc.gnu.org> PR fortran/46705 diff --git a/gcc/fortran/resolve.c b/gcc/fortran/resolve.c index ab49e93..a27fe2d 100644 --- a/gcc/fortran/resolve.c +++ b/gcc/fortran/resolve.c @@ -7893,6 +7893,7 @@ resolve_select_type (gfc_code *code, gfc_namespace *old_ns) /* Set up arguments. */ new_st->expr1->value.function.actual = gfc_get_actual_arglist (); new_st->expr1->value.function.actual->expr = gfc_get_variable_expr (code->expr1->symtree); + new_st->expr1->value.function.actual->expr->where = code->loc; gfc_add_vptr_component (new_st->expr1->value.function.actual->expr); vtab = gfc_find_derived_vtab (body->ext.case_list->ts.u.derived); st = gfc_find_symtree (vtab->ns->sym_root, vtab->name); diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index ee46df3..5cf2c03 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2010-12-12 Janus Weil <janus@gcc.gnu.org> + + PR fortran/46809 + * gfortran.dg/pointer_check_8.f90: New. + 2010-12-11 Jerry DeLisle <jvdelisle@gcc.gnu.org> PR fortran/46705 diff --git a/gcc/testsuite/gfortran.dg/pointer_check_8.f90 b/gcc/testsuite/gfortran.dg/pointer_check_8.f90 new file mode 100644 index 0000000..b47aa97 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/pointer_check_8.f90 @@ -0,0 +1,21 @@ +! { dg-do compile} +! { dg-options "-fcheck=pointer" } +! +! PR 46809: [OOP] ICE with -fcheck=pointer for CLASS IS +! +! Contributed by Salvatore Filippone <sfilippone@uniroma2.it> + + type t + end type t + +contains + + subroutine sub(a) + class(t) :: a + select type (a) + class is (t) + print *, 'Hi there' + end select + end subroutine + +end |