s390.c (s390_init_frame_layout): Check positive frame_size.

2006-10-26  Andreas Krebbel  <krebbel1@de.ibm.com>

	* config/s390/s390.c (s390_init_frame_layout): Check positive
	frame_size.

2006-10-26  Andreas Krebbel  <krebbel1@de.ibm.com>

	* gcc.dg/20061026.c: New testcase.

From-SVN: r118062
This commit is contained in:
Andreas Krebbel 2006-10-26 06:58:29 +00:00 committed by Andreas Krebbel
parent ac2de15d44
commit 20f04e65e3
4 changed files with 24 additions and 2 deletions

View File

@ -1,3 +1,8 @@
2006-10-26 Andreas Krebbel <krebbel1@de.ibm.com>
* config/s390/s390.c (s390_init_frame_layout): Check positive
frame_size.
2006-10-26 Ben Elliston <bje@au.ibm.com>
* gimplify.c (get_name): Remove extraneous break.

View File

@ -6718,8 +6718,8 @@ s390_init_frame_layout (void)
/* Try to predict whether we'll need the base register. */
base_used = cfun->machine->split_branches_pending_p
|| current_function_uses_const_pool
|| (!DISP_IN_RANGE (-frame_size)
&& !CONST_OK_FOR_K (-frame_size));
|| (!DISP_IN_RANGE (frame_size)
&& !CONST_OK_FOR_K (frame_size));
/* Decide which register to use as literal pool base. In small
leaf functions, try to use an unused call-clobbered register

View File

@ -1,3 +1,7 @@
2006-10-26 Andreas Krebbel <krebbel1@de.ibm.com>
* gcc.dg/20061026.c: New testcase.
2006-10-26 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR libgfortran/29563

View File

@ -0,0 +1,13 @@
/* { dg-do compile } */
/* { dg-options "-O1" } */
/* This testcase failed on s390. The frame size for function f will be
exactly 32768 bytes. The back end has to recognize that this is to
large for a 16bit constant and therefore should reserve the literal
pool base pointer. */
int f () {
char a[32608];
g (a);
}