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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@110929
138bc75d-0d04-0410-961f-
82ee72b054a4
+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
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);
}
}
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.
--- /dev/null
+! 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" } }
--- /dev/null
+! 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" } }