diff options
author | Jason Merrill <jason@redhat.com> | 2010-12-03 11:56:37 -0500 |
---|---|---|
committer | Jason Merrill <jason@gcc.gnu.org> | 2010-12-03 11:56:37 -0500 |
commit | 3ee353e956beac249a08337099ec885ae28bba04 (patch) | |
tree | f17f7173335da4fe762e344bfc510bf7e3d9d2a0 /gcc/cp/tree.c | |
parent | fac680656629b130c140c11dca1272d0dbd6dd43 (diff) | |
download | gcc-3ee353e956beac249a08337099ec885ae28bba04.zip gcc-3ee353e956beac249a08337099ec885ae28bba04.tar.gz gcc-3ee353e956beac249a08337099ec885ae28bba04.tar.bz2 |
re PR c++/46058 (gcc crashes with lvalue error on the following Code)
PR c++/46058
* tree.c (lvalue_kind) [SCOPE_REF]: Handle non-dependent case.
From-SVN: r167435
Diffstat (limited to 'gcc/cp/tree.c')
-rw-r--r-- | gcc/cp/tree.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/gcc/cp/tree.c b/gcc/cp/tree.c index 5538eea..1a77dc1 100644 --- a/gcc/cp/tree.c +++ b/gcc/cp/tree.c @@ -146,9 +146,12 @@ lvalue_kind (const_tree ref) return clk_ordinary; break; - /* A currently unresolved scope ref. */ + /* A scope ref in a template, left as SCOPE_REF to support later + access checking. */ case SCOPE_REF: - gcc_unreachable (); + gcc_assert (!type_dependent_expression_p (CONST_CAST_TREE(ref))); + return lvalue_kind (TREE_OPERAND (ref, 1)); + case MAX_EXPR: case MIN_EXPR: /* Disallow <? and >? as lvalues if either argument side-effects. */ |