| SHORT {
$$=newLink();
$$->class = SPECIFIER ;
- SPEC_NOUN($$) = V_INT ;
- SPEC_SHORT($$) = 1 ;
+ $$->select.s._short = 1 ;
}
| INT {
$$=newLink();
| LONG {
$$=newLink();
$$->class = SPECIFIER ;
- SPEC_NOUN($$) = V_INT ;
SPEC_LONG($$) = 1 ;
}
| SIGNED {
$$=newLink();
$$->class = SPECIFIER ;
- SPEC_SIGNED($$) = 1 ;
+ $$->select.s._signed = 1 ;
}
| UNSIGNED {
$$=newLink();
| CONST {
$$=newLink();
$$->class = SPECIFIER ;
- SPEC_SCLS($$) = S_CONSTANT ;
+ //SPEC_SCLS($$) = S_CONSTANT ;
SPEC_CONST($$) = 1;
}
| VOLATILE {
{
symbol *sym;
sym_link *p ;
-
sym = findSym(TypedefTab,NULL,$1) ;
$$ = p = copyLinkChain(sym->type);
SPEC_TYPEDEF(getSpec(p)) = 0;
if (!sym->type) {
sym->type = copyLinkChain($1);
sym->etype = getSpec(sym->type);
+ /* make sure the type is complete and sane */
+ checkTypeSanity(sym->etype, sym->name);
}
else
addDecl (sym,0,cloneSpec($1));
-
}
$$ = $2;
}