This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Overly-critical sanity check in ix86_compute_frame_size


It is perfectly possible for SIZE to be zero but have a requested
stack alignment that's not default.  This can happen, for example, when
a zero-size item with alignment of 128 bits is allocated.

Thu Feb  1 07:22:41 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* config/i386/i386.c (ix86_compute_frame_size): Allow
	stack_alignment_needed to be non-default even if size is zero.

*** config/i386/i386.c	2001/01/28 01:50:22	1.208
--- config/i386/i386.c	2001/02/01 11:46:22
*************** ix86_compute_frame_size (size, nregs_on_
*** 1887,1896 ****
    offset = frame_pointer_needed ? 8 : 4;
  
!   /* Do some sanity checking of stack_alignment_needed and preferred_alignment,
!      since i386 port is the only using those features that may break easilly.  */
  
    if (size && !stack_alignment_needed)
-     abort ();
-   if (!size && stack_alignment_needed != STACK_BOUNDARY / BITS_PER_UNIT)
      abort ();
    if (preferred_alignment < STACK_BOUNDARY / BITS_PER_UNIT)
--- 1887,1895 ----
    offset = frame_pointer_needed ? 8 : 4;
  
!   /* Do some sanity checking of stack_alignment_needed and
!      preferred_alignment, since i386 port is the only using those features
!      that may break easilly.  */
  
    if (size && !stack_alignment_needed)
      abort ();
    if (preferred_alignment < STACK_BOUNDARY / BITS_PER_UNIT)

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]