git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@251
4a8a32a2-be11-0410-ad9d-
d568d2c75423
#define IS_AST_VALUE(x) (x && x->type == EX_VALUE && x->opval.val)
#define IS_AST_LINK(x) (x->type == EX_LINK)
#define IS_AST_NOT_OPER(x) (x && IS_AST_OP(x) && x->opval.op == '!')
+#define IS_ARRAY_OP(x) (IS_AST_OP(x) && x->opval.op == '[')
#define IS_COMPARE_OP(x) (IS_AST_OP(x) && \
(x->opval.op == '>' || \
x->opval.op == '<' || \
(tree->opval.op == '&' && !tree->right) ||
tree->opval.op == PTR_OP) {
lvaluereq++;
- left = operandFromAst(tree->left);
- lvaluereq--;
+ if (IS_ARRAY_OP(tree->left) && IS_ARRAY_OP(tree->left->left)) {
+ lvaluereq--;
+ left = operandFromAst(tree->left);
+ } else {
+ left = operandFromAst(tree->left);
+ lvaluereq--;
+ }
} else {
left = operandFromAst(tree->left);
}