/[gcl]/gcl/o/main.c
ViewVC logotype

Diff of /gcl/o/main.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.58 by camm, Fri Jun 10 15:30:42 2005 UTC revision 1.59 by camm, Tue Jun 14 17:25:47 2005 UTC
# Line 291  main(int argc, char **argv, char **envp) Line 291  main(int argc, char **argv, char **envp)
291    
292  #ifdef AV  #ifdef AV
293            
294      cs_limit = cs_base + CSTACK_DIRECTION * cssize/sizeof(*cs_base);      cs_limit = (void *)CSTACK_ADDRESS + CSTACK_DIRECTION * cssize;
295  #endif  #endif
296    
297    
# Line 644  ihs_overflow(void) { Line 644  ihs_overflow(void) {
644          FEerror("Invocation history stack overflow.", 0);          FEerror("Invocation history stack overflow.", 0);
645  }  }
646    
647    
648  void  void
649  segmentation_catcher(int i, long code, void *scp, char *addr) {  segmentation_catcher(int i, long code, void *scp, char *addr) {
650    
651    void *faddr;    void *faddr;
652    faddr=((siginfo_t *)code)->si_addr;    faddr=GET_FAULT_ADDR(sig,code,scp,addr);
653    
654  #if CSTACK_DIRECTION == -1  #if CSTACK_DIRECTION == -1
655    if (faddr < (void *)cs_limit) /*FIXME, perhaps bound by nearest page here.*/    if (faddr < (void *)cs_limit && (void *)cs_limit-faddr <= PAGESIZE) /*FIXME, perhaps bound by nearest page here.*/
656  #else  #else
657    if (faddr > (void *)cs_limit)    if (faddr > (void *)cs_limit && faddr-(void *)cs_limit <= PAGESIZE)
658  #endif  #endif
659      FEerror("Control stack overflow.",0); /*FIXME -- provide getrlimit here.*/      FEerror("Control stack overflow.",0); /*FIXME -- provide getrlimit here.*/
660    else    else
# Line 763  reset_cstack_limit(int arg) { Line 764  reset_cstack_limit(int arg) {
764  #else  #else
765    if (&arg < cs_base + cssize/sizeof(*cs_base) - 16)    if (&arg < cs_base + cssize/sizeof(*cs_base) - 16)
766  #endif  #endif
767      cs_limit = cs_base + CSTACK_DIRECTION * cssize/sizeof(*cs_base);      cs_limit = (void *)CSTACK_ADDRESS + CSTACK_DIRECTION * cssize;
768    else    else
769        error ( "can't reset cs_limit" );        error ( "can't reset cs_limit" );
770  }  }

Legend:
Removed from v.1.58  
changed lines
  Added in v.1.59

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26