+
+ DOSET (FLG_GRAMMAR, b);
+ break;
+ case FLG_CODEIMPONLY:
+ DOSET (FLG_CODEIMPONLY, b);
+ DOSET (FLG_GLOBIMPONLY, b);
+ DOSET (FLG_RETIMPONLY, b);
+ DOSET (FLG_STRUCTIMPONLY, b);
+ break;
+ case FLG_SPECALLIMPONLY:
+ DOSET (FLG_SPECALLIMPONLY, b);
+ DOSET (FLG_SPECGLOBIMPONLY, b);
+ DOSET (FLG_SPECRETIMPONLY, b);
+ DOSET (FLG_SPECSTRUCTIMPONLY, b);
+ break;
+ case FLG_ALLIMPONLY:
+ DOSET (FLG_ALLIMPONLY, b);
+ DOSET (FLG_GLOBIMPONLY, b);
+ DOSET (FLG_RETIMPONLY, b);
+ DOSET (FLG_STRUCTIMPONLY, b);
+ DOSET (FLG_SPECGLOBIMPONLY, b);
+ DOSET (FLG_SPECRETIMPONLY, b);
+ DOSET (FLG_SPECSTRUCTIMPONLY, b);
+ break;
+ case FLG_ANSI89LIMITS:
+ DOSET (FLG_ANSI89LIMITS, b);
+ DOSET (FLG_CONTROLNESTDEPTH, b);
+ DOSET (FLG_STRINGLITERALLEN, b);
+ DOSET (FLG_INCLUDENEST, b);
+ DOSET (FLG_NUMSTRUCTFIELDS, b);
+ DOSET (FLG_NUMENUMMEMBERS, b);
+
+ if (b)
+ {
+ context_setValue (FLG_CONTROLNESTDEPTH, ANSI89_CONTROLNESTDEPTH);
+ context_setValue (FLG_STRINGLITERALLEN, ANSI89_STRINGLITERALLEN);
+ context_setValue (FLG_INCLUDENEST, ANSI89_INCLUDENEST);
+ context_setValue (FLG_NUMSTRUCTFIELDS, ANSI89_NUMSTRUCTFIELDS);
+ context_setValue (FLG_NUMENUMMEMBERS, ANSI89_NUMENUMMEMBERS);
+ context_setValue (FLG_EXTERNALNAMELEN, ANSI89_EXTERNALNAMELEN);
+ context_setValue (FLG_INTERNALNAMELEN, ANSI89_INTERNALNAMELEN);
+ }
+ break;
+ case FLG_ISO99LIMITS:
+ DOSET (FLG_ISO99LIMITS, b);
+ DOSET (FLG_CONTROLNESTDEPTH, b);
+ DOSET (FLG_STRINGLITERALLEN, b);
+ DOSET (FLG_INCLUDENEST, b);
+ DOSET (FLG_NUMSTRUCTFIELDS, b);
+ DOSET (FLG_NUMENUMMEMBERS, b);
+
+ if (b)
+ {
+ context_setValue (FLG_CONTROLNESTDEPTH, ISO99_CONTROLNESTDEPTH);
+ context_setValue (FLG_STRINGLITERALLEN, ISO99_STRINGLITERALLEN);
+ context_setValue (FLG_INCLUDENEST, ISO99_INCLUDENEST);
+ context_setValue (FLG_NUMSTRUCTFIELDS, ISO99_NUMSTRUCTFIELDS);
+ context_setValue (FLG_NUMENUMMEMBERS, ISO99_NUMENUMMEMBERS);
+ context_setValue (FLG_EXTERNALNAMELEN, ISO99_EXTERNALNAMELEN);
+ context_setValue (FLG_INTERNALNAMELEN, ISO99_INTERNALNAMELEN);
+ }
+ break;
+ case FLG_EXTERNALNAMELEN:
+ DOSET (FLG_DISTINCTEXTERNALNAMES, TRUE);
+ DOSET (FLG_EXTERNALNAMELEN, TRUE);
+ break;
+ case FLG_INTERNALNAMELEN:
+ DOSET (FLG_DISTINCTINTERNALNAMES, TRUE);
+ DOSET (FLG_INTERNALNAMELEN, TRUE);
+ break;
+ case FLG_EXTERNALNAMECASEINSENSITIVE:
+ DOSET (FLG_EXTERNALNAMECASEINSENSITIVE, b);
+
+ if (b && !gc.flags[FLG_DISTINCTEXTERNALNAMES])
+ {
+ DOSET (FLG_DISTINCTEXTERNALNAMES, TRUE);
+ context_setValue (FLG_EXTERNALNAMELEN, 0);
+ }
+ break;
+ case FLG_INTERNALNAMECASEINSENSITIVE:
+ DOSET (FLG_INTERNALNAMECASEINSENSITIVE, b);
+
+ if (b && !gc.flags[FLG_DISTINCTINTERNALNAMES])
+ {
+ DOSET (FLG_DISTINCTINTERNALNAMES, TRUE);
+ context_setValue (FLG_INTERNALNAMELEN, 0);
+ }
+ break;
+ case FLG_INTERNALNAMELOOKALIKE:
+ DOSET (FLG_INTERNALNAMELOOKALIKE, b);
+
+ if (b && !gc.flags[FLG_DISTINCTINTERNALNAMES])
+ {
+ DOSET (FLG_DISTINCTINTERNALNAMES, TRUE);
+ context_setValue (FLG_INTERNALNAMELEN, 0);
+ }
+ break;
+ case FLG_MODUNSPEC:
+ DOSET (FLG_MODNOMODS, b);
+ DOSET (FLG_MODGLOBSUNSPEC, b);
+ DOSET (FLG_MODSTRICTGLOBSUNSPEC, b);
+ break;
+ case FLG_EXPORTANY:
+ DOSET (FLG_EXPORTVAR, b);
+ DOSET (FLG_EXPORTFCN, b);
+ DOSET (FLG_EXPORTTYPE, b);
+ DOSET (FLG_EXPORTMACRO, b);
+ DOSET (FLG_EXPORTCONST, b);
+ gc.anyExports = TRUE;
+ break;
+ case FLG_REPEXPOSE:
+ DOSET (FLG_RETEXPOSE, b);
+ DOSET (FLG_ASSIGNEXPOSE, b);
+ DOSET (FLG_CASTEXPOSE, b);
+ break;
+ case FLG_RETVAL:
+ DOSET (FLG_RETVALBOOL, b);
+ DOSET (FLG_RETVALINT, b);
+ DOSET (FLG_RETVALOTHER, b);
+ break;
+ case FLG_PARTIAL:
+ if (b)
+ {
+ DOSET (FLG_EXPORTLOCAL, FALSE);
+ DOSET (FLG_DECLUNDEF, FALSE);
+ DOSET (FLG_SPECUNDEF, FALSE);
+ DOSET (FLG_TOPUNUSED, FALSE);
+ }
+ break;
+ case FLG_DEEPBREAK:
+ DOSET (FLG_LOOPLOOPBREAK, b);
+ DOSET (FLG_LOOPSWITCHBREAK, b);
+ DOSET (FLG_SWITCHLOOPBREAK, b);
+ DOSET (FLG_SWITCHSWITCHBREAK, b);
+ DOSET (FLG_LOOPLOOPCONTINUE, b);
+ DOSET (FLG_DEEPBREAK, b);
+ break;
+ case FLG_LOOPEXEC:
+ DOSET (FLG_FORLOOPEXEC, b);
+ DOSET (FLG_WHILELOOPEXEC, b);
+ DOSET (FLG_ITERLOOPEXEC, b);
+ break;
+ case FLG_ACCESSALL:
+ DOSET (FLG_ACCESSMODULE, b);
+ DOSET (FLG_ACCESSFILE, b);
+ DOSET (FLG_ACCESSCZECH, b);
+ break;
+ case FLG_ALLMACROS:
+ DOSET (FLG_ALLMACROS, b);
+ DOSET (FLG_FCNMACROS, b);
+ DOSET (FLG_CONSTMACROS, b);
+ break;
+ case FLG_BOUNDS:
+ DOSET (FLG_BOUNDSREAD, b);
+ DOSET (FLG_BOUNDSWRITE, b);
+ DOSET (FLG_LIKELYBOUNDSREAD, b);
+ DOSET (FLG_LIKELYBOUNDSWRITE, b);
+ break;
+ case FLG_BOUNDSREAD:
+ DOSET (FLG_LIKELYBOUNDSREAD, b);
+ break;
+ case FLG_BOUNDSWRITE:
+ DOSET (FLG_LIKELYBOUNDSWRITE, b);
+ break;
+ case FLG_LIKELYBOUNDS:
+ DOSET (FLG_LIKELYBOUNDSREAD, b);
+ DOSET (FLG_LIKELYBOUNDSWRITE, b);
+ break;
+
+ case FLG_CZECH:
+ if (b) { DOSET (FLG_ACCESSCZECH, b); }
+ DOSET (FLG_CZECHFUNCTIONS, b);
+ DOSET (FLG_CZECHVARS, b);
+ DOSET (FLG_CZECHCONSTANTS, b);
+ DOSET (FLG_CZECHTYPES, b);
+ break;
+ case FLG_SLOVAK:
+ if (b) { DOSET (FLG_ACCESSSLOVAK, b); }
+ DOSET (FLG_SLOVAKFUNCTIONS, b);
+ DOSET (FLG_SLOVAKVARS, b);
+ DOSET (FLG_SLOVAKCONSTANTS, b);
+ DOSET (FLG_SLOVAKTYPES, b);
+ break;
+ case FLG_CZECHOSLOVAK:
+ if (b) { DOSET (FLG_ACCESSCZECHOSLOVAK, b); }
+ DOSET (FLG_CZECHOSLOVAKFUNCTIONS, b);
+ DOSET (FLG_CZECHOSLOVAKVARS, b);
+ DOSET (FLG_CZECHOSLOVAKCONSTANTS, b);
+ DOSET (FLG_CZECHOSLOVAKTYPES, b);
+ break;
+ case FLG_NULL:
+ DOSET (FLG_NULLSTATE, b);
+ DOSET (FLG_NULLDEREF, b);
+ DOSET (FLG_NULLASSIGN, b);
+ DOSET (FLG_NULLPASS, b);
+ DOSET (FLG_NULLRET, b);
+ break;
+ case FLG_MUSTFREE:
+ DOSET (FLG_MUSTFREEONLY, b);
+ DOSET (FLG_MUSTFREEFRESH, b);
+ break;
+ case FLG_MEMCHECKS:
+ DOSET (FLG_NULLSTATE, b);
+ DOSET (FLG_NULLDEREF, b);
+ DOSET (FLG_NULLASSIGN, b);
+ DOSET (FLG_NULLPASS, b);
+ DOSET (FLG_NULLRET, b);
+ DOSET (FLG_COMPDEF, b);
+ DOSET (FLG_COMPMEMPASS, b);
+ DOSET (FLG_UNIONDEF, b);
+ DOSET (FLG_MEMTRANS, b);
+ DOSET (FLG_USERELEASED, b);
+ DOSET (FLG_ALIASUNIQUE, b);
+ DOSET (FLG_MAYALIASUNIQUE, b);
+ DOSET (FLG_MUSTFREEONLY, b);
+ DOSET (FLG_MUSTFREEFRESH, b);
+ DOSET (FLG_MUSTDEFINE, b);
+ DOSET (FLG_GLOBSTATE, b);
+ DOSET (FLG_COMPDESTROY, b);
+ DOSET (FLG_MUSTNOTALIAS, b);
+ DOSET (FLG_MEMIMPLICIT, b);
+ DOSET (FLG_BRANCHSTATE, b);
+ /*@fallthrough@*/ /* also sets memtrans flags */
+ case FLG_MEMTRANS:
+ DOSET (FLG_MEMTRANS, b);
+ DOSET (FLG_EXPOSETRANS, b);
+ DOSET (FLG_OBSERVERTRANS, b);
+ DOSET (FLG_DEPENDENTTRANS, b);
+ DOSET (FLG_NEWREFTRANS, b);
+ DOSET (FLG_ONLYTRANS, b);
+ DOSET (FLG_OWNEDTRANS, b);
+ DOSET (FLG_FRESHTRANS, b);
+ DOSET (FLG_SHAREDTRANS, b);
+ DOSET (FLG_TEMPTRANS, b);
+ DOSET (FLG_KEPTTRANS, b);
+ DOSET (FLG_REFCOUNTTRANS, b);
+ DOSET (FLG_STATICTRANS, b);
+ DOSET (FLG_UNKNOWNTRANS, b);
+ DOSET (FLG_KEEPTRANS, b);
+ DOSET (FLG_IMMEDIATETRANS, b);
+ break;
+
+ default:
+ break;
+ }
+
+ if (b && !gc.anyExports
+ && (f == FLG_EXPORTVAR || f == FLG_EXPORTFCN
+ || f == FLG_EXPORTTYPE || f == FLG_EXPORTMACRO
+ || f == FLG_EXPORTCONST
+ || f == FLG_EXPORTANY))
+ {
+ gc.anyExports = TRUE;