it's fixable with the following strategy
1. cc: for void's, don't emit anything from the compiler's acid generator
2. acid: accept empty aggrs.
i haven't pushed it to see if i can get acid to crash, and i don't have time
to right now, but this does improve the situation.
- erik
; diff -c /n/dump/2012/0701/sys/src/cmd/acid/dbg.y /sys/src/cmd/acid/dbg.y
/n/dump/2012/0701/sys/src/cmd/acid/dbg.y:75,82 - /sys/src/cmd/acid/dbg.y:75,85
zsemi :
| ';' zsemi
- members : member
- | members member
+ members :
+ {
+ $$ = nil;
+ }
+ | member members
{
$$ = an(OLIST, $1, $2);
}
; diff -c `{yesterday -n2 /sys/src/cmd/cc/acid.c} /sys/src/cmd/cc/acid.c
/n/dump/2012/0629/sys/src/cmd/cc/acid.c:112,117 - /sys/src/cmd/cc/acid.c:112,120
Bprint(&outbuf, " T%d\n", t->etype);
break;
+ case TVOID:
+ break; /* relies on acid being able to handle empty
aggrs. */
+
case TIND:
if(s == S)
break;