stateClause stateClause_create (lltok tok, qual q, sRefSet s) { stateClause ret = (stateClause) dmalloc (sizeof (*ret)); if (lltok_getTok (tok) == QPRECLAUSE) { ret->state = TK_BEFORE; } else if (lltok_getTok (tok) == QPOSTCLAUSE) { ret->state = TK_AFTER; } else { BADBRANCH; } ret->loc = fileloc_copy (lltok_getLoc (tok)); ret->squal = q; ret->refs = s; if (sRefSet_isDefined (s)) { ret->kind = SP_QUAL; } else { ret->kind = SP_GLOBAL; } return ret; }
constraint makeConstraintParse3 (constraintExpr l, lltok relOp, constraintExpr r) { constraint ret; ret = constraint_makeNew (); llassert (constraintExpr_isDefined (l)); ret->lexpr = constraintExpr_copy (l); if (lltok_getTok (relOp) == GE_OP) { ret->ar = GTE; } else if (lltok_getTok (relOp) == LE_OP) { ret->ar = LTE; } else if (lltok_getTok (relOp) == EQ_OP) { ret->ar = EQ; } else llfatalbug ( message ("Unsupported relational operator")); ret->expr = constraintExpr_copy (r); ret->post = TRUE; ret->orig = constraint_copy (ret); ret = constraint_simplify (ret); /* ret->orig = ret; */ DPRINTF (("GENERATED CONSTRAINT:")); DPRINTF ((message ("%s", constraint_unparse (ret)))); return ret; }
stateClause stateClause_createPlain (lltok tok, sRefSet s) { switch (lltok_getTok (tok)) { case QUSES: return stateClause_createUses (s); case QDEFINES: return stateClause_createDefines (s); case QALLOCATES: return stateClause_createAllocates (s); case QSETS: return stateClause_createSets (s); case QRELEASES: return stateClause_createReleases (s); default: sRefSet_free (s); BADBRANCH; } BADBRANCHRET (stateClause_createUses (sRefSet_undefined)); }