}
static
-struct ir_op *make_op_load_string(char *string, enum ir_side side)
+struct ir_op *make_op_load_string(const char *string, enum ir_side side)
{
struct ir_op *op;
{
struct ir_load_expression *load_exp;
struct ir_load_expression_op *load_exp_op, *prev_op;
- char *str;
+ const char *str;
/* Get forward chain. */
node = load_expression_get_forward_chain(node);
bracket_node != NULL;
bracket_node = bracket_node->u.expression.next_bracket) {
prev_op = load_exp_op;
+ if (bracket_node->type != NODE_EXPRESSION ||
+ bracket_node->u.expression.type != AST_EXP_CONSTANT) {
+ fprintf(stderr, "[error] Expecting constant index in array expression\n");
+ goto error;
+ }
load_exp_op = calloc(sizeof(struct ir_load_expression_op), 1);
if (!load_exp_op)
goto error;