From 67a7c837e95e85c607e55d2b72bfd4da43f0dd16 Mon Sep 17 00:00:00 2001 From: Janus Weil Date: Thu, 16 Jun 2011 23:45:26 +0200 Subject: [PATCH] re PR fortran/49074 ([OOP] Defined assignment w/ CLASS arrays: Incomplete error message) 2011-06-16 Janus Weil PR fortran/49074 * interface.c (gfc_extend_assign): Propagate the locus from the assignment to the type-bound procedure call. 2011-06-16 Janus Weil PR fortran/49074 * gfortran.dg/typebound_assignment_3.f03: New. From-SVN: r175113 --- gcc/fortran/ChangeLog | 6 ++++ gcc/fortran/interface.c | 1 + gcc/testsuite/ChangeLog | 5 ++++ .../gfortran.dg/typebound_assignment_3.f03 | 30 +++++++++++++++++++ 4 files changed, 42 insertions(+) create mode 100644 gcc/testsuite/gfortran.dg/typebound_assignment_3.f03 diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 8d3b9b96ec6..e0428211dd7 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,9 @@ +2011-06-16 Janus Weil + + PR fortran/49074 + * interface.c (gfc_extend_assign): Propagate the locus from the + assignment to the type-bound procedure call. + 2011-06-16 Janus Weil PR fortran/49417 diff --git a/gcc/fortran/interface.c b/gcc/fortran/interface.c index 46f9d146ce7..e787187ba80 100644 --- a/gcc/fortran/interface.c +++ b/gcc/fortran/interface.c @@ -3242,6 +3242,7 @@ gfc_extend_assign (gfc_code *c, gfc_namespace *ns) c->expr1 = gfc_get_expr (); build_compcall_for_operator (c->expr1, actual, tb_base, tbo, gname); c->expr1->value.compcall.assign = 1; + c->expr1->where = c->loc; c->expr2 = NULL; c->op = EXEC_COMPCALL; diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 5d9fc892873..68da027be3d 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2011-06-16 Janus Weil + + PR fortran/49074 + * gfortran.dg/typebound_assignment_3.f03: New. + 2011-06-16 Steve Ellcey PR testsuite/48727 diff --git a/gcc/testsuite/gfortran.dg/typebound_assignment_3.f03 b/gcc/testsuite/gfortran.dg/typebound_assignment_3.f03 new file mode 100644 index 00000000000..ce84a3957d0 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/typebound_assignment_3.f03 @@ -0,0 +1,30 @@ +! { dg-do compile } +! +! PR 49074: [OOP] Defined assignment w/ CLASS arrays: Incomplete error message +! +! Contribute by Jerry DeLisle + +module foo + + type bar + contains + generic :: assignment (=) => assgn + procedure :: assgn + end type + +contains + + elemental subroutine assgn (a, b) + class (bar), intent (inout) :: a + class (bar), intent (in) :: b + end subroutine + +end module + + + use foo + type (bar) :: foobar(2) + foobar = bar() ! { dg-error "currently not implemented" } +end + +! { dg-final { cleanup-modules "foo" } } -- 2.30.2