From 27408a3c02110232530faf3b99684b6e373c7ad9 Mon Sep 17 00:00:00 2001 From: Giovanni Bajo Date: Tue, 2 Dec 2003 12:02:21 +0000 Subject: [PATCH] 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 --- gcc/cp/ChangeLog | 6 ++++++ gcc/cp/pt.c | 3 +++ 2 files changed, 9 insertions(+) diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index b4d1df938b81..972396880d0a 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,9 @@ +2003-12-02 Giovanni Bajo + + PR c++/12573 + * pt.c (value_dependent_expression_p): Handle COMPONENT_REFs by + looking into them recursively. + 2003-12-02 Richard Henderson * name-lookup.h (struct cp_binding_level): Use ENUM_BITFIELD. diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c index edfb8a52e2f6..93d790bc818a 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)))) -- 2.43.5