Browse Source

Added some code to handle -Oego,opt,asopt and the like.
By default, optimizers can be excluded by giving them a negative
priority in the description files. This is currently done for
the global optimizer

ceriel 37 years ago
parent
commit
2295cd130a
3 changed files with 9 additions and 4 deletions
  1. 3 1
      util/ack/data.h
  2. 2 0
      util/ack/main.c
  3. 4 3
      util/ack/scan.c

+ 3 - 1
util/ack/data.h

@@ -5,7 +5,9 @@
 EXTERN  char            *stopsuffix;    /* Suffix to stop at */
 EXTERN  char            *machine;       /* The machine id */
 EXTERN	char		*callname;	/* argv[0] */
-EXTERN  char            *rts;           /* The runtime-system id */
+EXTERN  char            *rts;           /* The runtime-system */
+EXTERN  char            *rtsuf;         /* The runtime-system module suffix */
+EXTERN	char		*Optlist;	/* Which optimizers */
 
 EXTERN  list_head       arguments;      /* List of arguments */
 EXTERN  list_head       flags;          /* List of flags */

+ 2 - 0
util/ack/main.c

@@ -175,6 +175,8 @@ vieuwargs(argc,argv) char **argv ; {
 			hide=YES ;
 			break ;
 	   case 'O':    Optflag++ ;
+			Optlist= &argp[2] ;
+			eaten=1 ;
 			break ;
 	   case 'v':    if ( argp[2] ) {
 				v_flag += atoi(&argp[2]) ;

+ 4 - 3
util/ack/scan.c

@@ -84,6 +84,7 @@ try(f_scan,suffix) list_elem *f_scan; char *suffix; {
 		scan_found();
 		return ;
 	}
+	if (! f_scan) return;
 	scanlist(f_scan, scan) {
 		trafo= t_cont(*scan) ;
 		if ( satisfy(trafo,suffix) ) {
@@ -129,10 +130,10 @@ try(f_scan,suffix) list_elem *f_scan; char *suffix; {
 				scan_found() ;
 				return ;
 			}
-			if ( l_next(*scan) ) {
-				try(l_next(*scan),trafo->t_out);
+			if (! l_next(*scan) && !stopsuffix) {
+				scan_found() ;
 			} else {
-				if ( !stopsuffix ) scan_found() ;
+				try(l_next(*scan),trafo->t_out);
 			}
 			trafo->t_scan= NO ;
 		}