------- Comment #4 from pault at gcc dot gnu dot org 2006-03-06 22:56 ------- Subject: Bug 26107
Author: pault Date: Mon Mar 6 22:56:39 2006 New Revision: 111793 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=111793 Log: 2006-03-06 Paul Thomas <[EMAIL PROTECTED]> PR fortran/26107 * resolve.c (resolve_function): Add name after test for pureness. PR fortran/19546 * trans-expr.c (gfc_conv_variable): Detect reference to parent result, store current_function_decl, replace with parent, whilst calls are made to gfc_get_fake_result_decl, and restore afterwards. Signal this to gfc_get_fake_result_decl with a new argument, parent_flag. * trans-stmt.c (gfc_trans_return): gfc_get_fake_result_decl 2nd arg is set to zero. * trans.h: Add parent_flag to gfc_get_fake_result_decl prototype. * trans-decl.c (gfc_get_fake_result_decl): On parent_flag, being set, add decl to parent function. Replace refs to current_fake_result_decl with refs to this_result_decl. (gfc_generate_function_code): Null parent_fake_result_decl before the translation of code for contained procedures. Set parent_flag to zero in call to gfc_get_fake_result_decl. * trans-intrinsic.c (gfc_conv_intrinsic_len): The same. 2006-03-06 Paul Thomas <[EMAIL PROTECTED]> PR fortran/26107 * pure_dummy_length_1.f90: New test. PR fortran/19546 * gfortran.dg/parent_result_ref_1.f90: New test. * gfortran.dg/parent_result_ref_2.f90: New test. * gfortran.dg/parent_result_ref_3.f90: New test. * gfortran.dg/parent_result_ref_4.f90: New test. Added: trunk/gcc/testsuite/gfortran.dg/parent_result_ref_1.f90 trunk/gcc/testsuite/gfortran.dg/parent_result_ref_2.f90 trunk/gcc/testsuite/gfortran.dg/parent_result_ref_3.f90 (with props) trunk/gcc/testsuite/gfortran.dg/parent_result_ref_4.f90 trunk/gcc/testsuite/gfortran.dg/pure_dummy_length_1.f90 Modified: trunk/gcc/fortran/ChangeLog trunk/gcc/fortran/resolve.c trunk/gcc/fortran/trans-decl.c trunk/gcc/fortran/trans-expr.c trunk/gcc/fortran/trans-intrinsic.c trunk/gcc/fortran/trans-openmp.c trunk/gcc/fortran/trans-stmt.c trunk/gcc/fortran/trans.h trunk/gcc/testsuite/ChangeLog Propchange: trunk/gcc/testsuite/gfortran.dg/parent_result_ref_3.f90 ('svn:executable' added) -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26107