aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/fortran/ChangeLog7
-rw-r--r--gcc/fortran/trans-types.c2
-rw-r--r--gcc/testsuite/ChangeLog7
-rw-r--r--gcc/testsuite/gfortran.dg/ishft_4.f904
-rw-r--r--gcc/testsuite/gfortran.dg/leadz_trailz_3.f902
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 <burnus@net-b.de>
+
+ 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 <tkoenig@gcc.gnu.org>
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 <burnus@net-b.de>
+
+ 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 <mjambor@suse.cz>
* 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" } }