aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp/pt.c
diff options
context:
space:
mode:
authorGiovanni Bajo <giovannibajo@gcc.gnu.org>2003-12-02 12:02:21 +0000
committerGiovanni Bajo <giovannibajo@gcc.gnu.org>2003-12-02 12:02:21 +0000
commit27408a3c02110232530faf3b99684b6e373c7ad9 (patch)
treecc58377e248b034c6f784b938254d81344065788 /gcc/cp/pt.c
parent7e7c843fc72dc9f503ca052f2366d5a10eabc45c (diff)
downloadgcc-27408a3c02110232530faf3b99684b6e373c7ad9.zip
gcc-27408a3c02110232530faf3b99684b6e373c7ad9.tar.gz
gcc-27408a3c02110232530faf3b99684b6e373c7ad9.tar.bz2
re PR c++/12573 (ICE (segfault) with Boost.Python)
PR c++/12573 * pt.c (value_dependent_expression_p): Handle COMPONENT_REFs by looking into them recursively. From-SVN: r74172
Diffstat (limited to 'gcc/cp/pt.c')
-rw-r--r--gcc/cp/pt.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c
index edfb8a5..93d790b 100644
--- a/gcc/cp/pt.c
+++ b/gcc/cp/pt.c
@@ -11713,6 +11713,9 @@ value_dependent_expression_p (tree expression)
}
if (TREE_CODE (expression) == SCOPE_REF)
return dependent_scope_ref_p (expression, value_dependent_expression_p);
+ if (TREE_CODE (expression) == COMPONENT_REF)
+ return (value_dependent_expression_p (TREE_OPERAND (expression, 0))
+ || value_dependent_expression_p (TREE_OPERAND (expression, 1)));
/* A constant expression is value-dependent if any subexpression is
value-dependent. */
if (IS_EXPR_CODE_CLASS (TREE_CODE_CLASS (TREE_CODE (expression))))