From 0ae278e724b821268d715bdb7535aefef0575b1e Mon Sep 17 00:00:00 2001 From: Janus Weil Date: Fri, 16 Oct 2009 23:10:43 +0200 Subject: re PR fortran/41719 ([OOP] invalid: Intrinsic assignment involving polymorphic variables) 2009-10-16 Janus Weil PR fortran/41719 * resolve.c (resolve_ordinary_assign): Reject intrinsic assignments to polymorphic variables. 2009-10-16 Janus Weil PR fortran/41719 * gfortran.dg/class_5.f03: New test case. * gfortran.dg/typebound_operator_2.f03: Fixing invalid test case. * gfortran.dg/typebound_operator_4.f03: Ditto. From-SVN: r152919 --- gcc/fortran/ChangeLog | 6 ++++++ gcc/fortran/resolve.c | 8 ++++++++ 2 files changed, 14 insertions(+) (limited to 'gcc/fortran') diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index fd3a2bc..17bbc06 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,9 @@ +2009-10-16 Janus Weil + + PR fortran/41719 + * resolve.c (resolve_ordinary_assign): Reject intrinsic assignments + to polymorphic variables. + 2009-10-16 Paul Thomas PR fortran/41648 diff --git a/gcc/fortran/resolve.c b/gcc/fortran/resolve.c index d0911b4..d76c461 100644 --- a/gcc/fortran/resolve.c +++ b/gcc/fortran/resolve.c @@ -7629,6 +7629,14 @@ resolve_ordinary_assign (gfc_code *code, gfc_namespace *ns) } } + /* F03:7.4.1.2. */ + if (lhs->ts.type == BT_CLASS) + { + gfc_error ("Variable must not be polymorphic in assignment at %L", + &lhs->where); + return false; + } + gfc_check_assign (lhs, rhs, 1); return false; } -- cgit v1.1