aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp/expr.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/cp/expr.c')
-rw-r--r--gcc/cp/expr.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/gcc/cp/expr.c b/gcc/cp/expr.c
index 0d0a10ec..9780b75 100644
--- a/gcc/cp/expr.c
+++ b/gcc/cp/expr.c
@@ -139,6 +139,9 @@ mark_use (tree expr, bool rvalue_p, bool read_p,
break;
}
}
+ temp_override<location_t> l (input_location);
+ if (loc != UNKNOWN_LOCATION)
+ input_location = loc;
expr = process_outer_var_ref (expr, tf_warning_or_error, true);
if (!(TREE_TYPE (oexpr)
&& TYPE_REF_P (TREE_TYPE (oexpr))))
@@ -184,6 +187,11 @@ mark_use (tree expr, bool rvalue_p, bool read_p,
}
break;
default:
+ if (location_wrapper_p (expr))
+ {
+ loc = EXPR_LOCATION (expr);
+ recurse_op[0] = true;
+ }
break;
}