stack_pointer_delta abort

Richard Henderson rth@cygnus.com
Thu Apr 6 11:43:00 GMT 2000


For D30V (on condexec-branch only at the moment)

	main ()
	{
	  foo (alloca (10000));
	}

triggers

      /* Verify that we've deallocated all the stack we used.  */
      if (pass
          && old_stack_allocated != stack_pointer_delta - pending_stack_adjust)
        abort();

The problem being that stack_pointer_delta gets incremented here:

#0  anti_adjust_stack (adjust=0x200000410b0)
    at ../../../egcs-cond/gcc/explow.c:881
#1  0x12009def4 in allocate_dynamic_stack_space (size=0x200000410b0, 
    target=0x2000004c640, known_align=8)
    at ../../../egcs-cond/gcc/explow.c:1388
#2  0x1200c0274 in expand_builtin_alloca (arglist=0x200000545c0, target=0x0)
    at ../../../egcs-cond/gcc/builtins.c:2266

and has nothing to do with argument passing at all.


r~


More information about the Gcc-bugs mailing list