From 3ec1c379f9b7274b301c8365d60fdad3d110e131 Mon Sep 17 00:00:00 2001 From: Tobias Burnus Date: Fri, 25 Mar 2011 18:53:35 +0100 Subject: [PATCH] re PR fortran/48174 (DWARF for subroutine with no args indicates 'varargs') 2011-03-25 Tobias Burnus PR fortran/48174 PR fortran/45304 * trans-types.c (gfc_get_function_type): Don't use varargs if * the procedure is known to have no arguments. 2011-03-25 Tobias Burnus PR fortran/48174 PR fortran/45304 * gfortran.dg/ishft_4.f90: Adapt scan-tree-dump-times. * gfortran.dg/leadz_trailz_3.f90: Ditto From-SVN: r171519 --- gcc/fortran/ChangeLog | 7 +++++++ gcc/fortran/trans-types.c | 2 +- gcc/testsuite/ChangeLog | 7 +++++++ gcc/testsuite/gfortran.dg/ishft_4.f90 | 4 ++-- gcc/testsuite/gfortran.dg/leadz_trailz_3.f90 | 2 +- 5 files changed, 18 insertions(+), 4 deletions(-) diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 4e0a792..34c7c03 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,10 @@ +2011-03-25 Tobias Burnus + + PR fortran/48174 + PR fortran/45304 + * trans-types.c (gfc_get_function_type): Don't use varargs if the + procedure is known to have no arguments. + 2010-03-21 Thomas Koenig PR fortran/22572 diff --git a/gcc/fortran/trans-types.c b/gcc/fortran/trans-types.c index 258685e..8ecceea 100644 --- a/gcc/fortran/trans-types.c +++ b/gcc/fortran/trans-types.c @@ -2618,7 +2618,7 @@ gfc_get_function_type (gfc_symbol * sym) if (typelist) typelist = chainon (typelist, void_list_node); - else if (sym->attr.is_main_program) + else if (sym->attr.is_main_program || sym->attr.if_source != IFSRC_UNKNOWN) typelist = void_list_node; if (alternate_return) diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index c7e8662..d2a1762 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,10 @@ +2011-03-25 Tobias Burnus + + PR fortran/48174 + PR fortran/45304 + * gfortran.dg/ishft_4.f90: Adapt scan-tree-dump-times. + * gfortran.dg/leadz_trailz_3.f90: Ditto + 2011-03-25 Martin Jambor * gcc.c-torture/compile/pr44686.c: Do not explicitely specify -O2. diff --git a/gcc/testsuite/gfortran.dg/ishft_4.f90 b/gcc/testsuite/gfortran.dg/ishft_4.f90 index 0315c7f..4e2ad2b 100644 --- a/gcc/testsuite/gfortran.dg/ishft_4.f90 +++ b/gcc/testsuite/gfortran.dg/ishft_4.f90 @@ -35,6 +35,6 @@ end program ! -- once in the function definition itself ! -- plus as many times as the function is called ! -! { dg-final { scan-tree-dump-times "foo *\\\(\\\)" 6 "original" } } -! { dg-final { scan-tree-dump-times "bar *\\\(\\\)" 6 "original" } } +! { dg-final { scan-tree-dump-times "foo *\\\(\\\)" 5 "original" } } +! { dg-final { scan-tree-dump-times "bar *\\\(\\\)" 5 "original" } } ! { dg-final { cleanup-tree-dump "original" } } diff --git a/gcc/testsuite/gfortran.dg/leadz_trailz_3.f90 b/gcc/testsuite/gfortran.dg/leadz_trailz_3.f90 index f8466ff..b54a11f 100644 --- a/gcc/testsuite/gfortran.dg/leadz_trailz_3.f90 +++ b/gcc/testsuite/gfortran.dg/leadz_trailz_3.f90 @@ -26,5 +26,5 @@ end program ! -- once in the function definition itself ! -- plus as many times as the function is called ! -! { dg-final { scan-tree-dump-times "foo *\\\(\\\)" 8 "original" } } +! { dg-final { scan-tree-dump-times "foo *\\\(\\\)" 7 "original" } } ! { dg-final { cleanup-tree-dump "original" } } -- 2.7.4