* not constant.
*/
{
+ long Val;
+
/* Read the expression, and call finalize (exception here, since we
* expect a const).
*/
ExprNode* Expr = FinalizeExpr (Expression ());
- /* Return the value */
+ /* Get the value */
if (IsConstExpr (Expr)) {
- return GetExprVal (Expr);
+ Val = GetExprVal (Expr);
} else {
Error (ERR_CONSTEXPR_EXPECTED);
- return 0;
+ Val = 0;
}
+
+ /* Free the expression tree and return the value */
+ FreeExpr (Expr);
+ return Val;
}
-
+
}
}
+ /* We don't need the expression tree any longer */
+ FreeExpr (F->V.Expr);
+
/* Convert the fragment into a literal fragment */
for (I = 0; I < F->Len; ++I) {
F->V.Data [I] = Val & 0xFF;