aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--evaluate.c2
-rw-r--r--validation/eval/addressable-complex.c1
2 files changed, 2 insertions, 1 deletions
diff --git a/evaluate.c b/evaluate.c
index d78de2ed..c0281e9b 100644
--- a/evaluate.c
+++ b/evaluate.c
@@ -1542,6 +1542,8 @@ static int compatible_argument_type(struct expression *expr, struct symbol *targ
static void mark_addressable(struct expression *expr)
{
+ while (expr->type == EXPR_BINOP && expr->op == '+')
+ expr = expr->left;
if (expr->type == EXPR_SYMBOL) {
struct symbol *sym = expr->symbol;
sym->ctype.modifiers |= MOD_ADDRESSABLE;
diff --git a/validation/eval/addressable-complex.c b/validation/eval/addressable-complex.c
index 62ab59f0..e3d4aca4 100644
--- a/validation/eval/addressable-complex.c
+++ b/validation/eval/addressable-complex.c
@@ -16,7 +16,6 @@ int use1(void)
/*
* check-name: eval/addressable-complex
* check-command: test-linearize -Wno-decl -fdump-ir $file
- * check-known-to-fail
*
* check-output-ignore
* check-output-contains: load\\.