Commit a7d6b765 by Andrew Pinski Committed by Jakub Jelinek

re PR fortran/26246 (return string length is being marked as TREE_STATIC and TREE_PUBLIC)

2006-02-13  Andrew Pinski  <pinskia@physics.uc.edu>
	    Jakub Jelinek  <jakub@redhat.com>

	PR fortran/26246
	* trans-decl.c (gfc_get_symbol_decl, gfc_get_fake_result_decl): Use
	gfc_add_decl_to_function rather than gfc_finish_var_decl on length.

	* gfortran.dg/pr26246_1.f90: New test.
	* gfortran.dg/pr26246_2.f90: New test.

From-SVN: r110929
parent 6f538523
2006-02-13 Andrew Pinski <pinskia@physics.uc.edu>
Jakub Jelinek <jakub@redhat.com>
PR fortran/26246
* trans-decl.c (gfc_get_symbol_decl, gfc_get_fake_result_decl): Use
gfc_add_decl_to_function rather than gfc_finish_var_decl on length.
2006-02-13 Paul Thomas <pault@gcc.gnu.org>
PR fortran/26074
......
......@@ -873,7 +873,7 @@ gfc_get_symbol_decl (gfc_symbol * sym)
if (TREE_CODE (length) == VAR_DECL
&& DECL_CONTEXT (length) == NULL_TREE)
{
gfc_finish_var_decl (length, sym);
gfc_add_decl_to_function (length);
gfc_defer_symbol_init (sym);
}
}
......@@ -1779,7 +1779,7 @@ gfc_get_fake_result_decl (gfc_symbol * sym)
length = sym->ts.cl->backend_decl;
if (TREE_CODE (length) == VAR_DECL
&& DECL_CONTEXT (length) == NULL_TREE)
gfc_finish_var_decl (length, sym);
gfc_add_decl_to_function (length);
}
if (gfc_return_by_reference (sym))
......
2006-02-13 Jakub Jelinek <jakub@redhat.com>
PR fortran/26246
* gfortran.dg/pr26246_1.f90: New test.
* gfortran.dg/pr26246_2.f90: New test.
PR middle-end/26092
* gcc.c-torture/compile/20060208-1.c: New test.
! PR fortran/26246
! { dg-options "-fdump-tree-original" }
! { dg-do compile }
module pr26246_1
implicit none
contains
function foo(string)
character(*), intent(in) :: string
character(len=len(string)+2) :: foo
if (index(trim(string), '"').ne.0) then
foo = "'" // trim(string) // "'"
end if
end function foo
end module pr26246_1
! { dg-final { scan-tree-dump-times "static int" 0 "original" } }
! { dg-final { cleanup-tree-dump "original" } }
! PR fortran/26246
! { dg-options "-fdump-tree-original -fno-automatic" }
! { dg-do compile }
subroutine foo(string, n)
implicit none
integer :: n
character(len=n + 6), intent(in) :: string
if (string .eq. 'abc') call abort
end subroutine foo
! { dg-final { scan-tree-dump-times "static int" 0 "original" } }
! { dg-final { cleanup-tree-dump "original" } }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment