diff options
Diffstat (limited to 'gcc/cp/semantics.c')
-rw-r--r-- | gcc/cp/semantics.c | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/gcc/cp/semantics.c b/gcc/cp/semantics.c index c490ab8..102653a 100644 --- a/gcc/cp/semantics.c +++ b/gcc/cp/semantics.c @@ -1367,7 +1367,8 @@ finish_qualified_id_expr (tree qualifying_class, tree expr, bool done, { if (TREE_CODE (expr) == SCOPE_REF) expr = TREE_OPERAND (expr, 1); - expr = build_offset_ref (qualifying_class, expr); + expr = build_offset_ref (qualifying_class, expr, + /*address_p=*/true); return expr; } @@ -1396,13 +1397,9 @@ finish_qualified_id_expr (tree qualifying_class, tree expr, bool done, BASELINK_ACCESS_BINFO (expr), /*preserve_reference=*/false)); else if (done) - { - /* The expression is a qualified name whose address is not - being taken. */ - expr = build_offset_ref (qualifying_class, expr); - if (TREE_CODE (expr) == OFFSET_REF) - expr = resolve_offset_ref (expr); - } + /* The expression is a qualified name whose address is not + being taken. */ + expr = build_offset_ref (qualifying_class, expr, /*address_p=*/false); } return expr; |