DEAR  Sir : GNU 

I am writing to you regarding bug report

It resulted based on the last point when having experimented ..the
following... 

#include <stdio.h>
#include <values.h>

void subroutine(int n)
{
  int buf[n];
  fprintf(stderr, "%d (%d)\n", (int)sizeof(buf), (unsigned long)buf);
}

int main( int argc, char **argv)
{
  int i, value[] = {2000000, 2500000, 3000000};
  
  for (i=0; i<3; i++) {
    fprintf(stderr, "%d: ", value[i]);
    subroutine(value[i]);
  }
  exit(0);
}


① gcc version 2.96 20000731 (Red Hat Linux 7.3 2.96-110)
  stacksize       8192 kbytes
2000000: 8000000 (-1081748336)
2500000: segmentation fault (core dumped)

② gcc version 3.2.3 20030502 (Red Hat Linux 3.2.3-52)
    stacksize       10240 kbytes
2000000: 8000000 (-1081748128)
2500000: 10000000 (-1083748128)
3000000: segmentation fault (core dumped)


It was not bug of gcc but it was a problem of stacksize. 
Thanks.

Sincerely yours,

EISUKE HAYASHI




 


Jim Wilson wrote:
> 
> Hayashi Eisuke wrote:
> > 1000000: 4000000 (-1077752048)
> > 2092728: Segmentatioin error (core dumped)
> 
> The process is dying because you are exceeding unix process stack space
> limits.  You probably have an 8MB per process limit, and the number you
> are using is a tad less than 2MB.
> 
> If you are using bash, see the documentation for the "ulimit" command.
> If csh, I think it is "limits".
> --
> Jim Wilson, GNU Tools Support, http://www.specifix.com

Reply via email to