diff options
author | jakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-11-29 21:06:18 +0000 |
---|---|---|
committer | jakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-11-29 21:06:18 +0000 |
commit | 7ae94827cfd18e4d3448402e2ab8c06b67372ee9 (patch) | |
tree | db5bbe7937dfe1c59279606fdf0f8cc8c952cdb9 /gcc/cp/tree.c | |
parent | 711178fb7998b8914bd809410c4caf59f72ad2f1 (diff) | |
download | ppe42-gcc-7ae94827cfd18e4d3448402e2ab8c06b67372ee9.tar.gz ppe42-gcc-7ae94827cfd18e4d3448402e2ab8c06b67372ee9.zip |
PR c++/34270
* tree.c (lvalue_p_1) <case COND_EXPR>: Handle x ?: y
in templates.
* typeck.c (is_bitfield_expr_with_lowered_type) <case COND_EXPR>:
Likewise.
* g++.dg/template/cond7.C: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@130520 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/cp/tree.c')
-rw-r--r-- | gcc/cp/tree.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/gcc/cp/tree.c b/gcc/cp/tree.c index 6ae05686614..c885d088878 100644 --- a/gcc/cp/tree.c +++ b/gcc/cp/tree.c @@ -160,7 +160,9 @@ lvalue_p_1 (const_tree ref, break; case COND_EXPR: - op1_lvalue_kind = lvalue_p_1 (TREE_OPERAND (ref, 1), + op1_lvalue_kind = lvalue_p_1 (TREE_OPERAND (ref, 1) + ? TREE_OPERAND (ref, 1) + : TREE_OPERAND (ref, 0), treat_class_rvalues_as_lvalues); op2_lvalue_kind = lvalue_p_1 (TREE_OPERAND (ref, 2), treat_class_rvalues_as_lvalues); |