diff options
author | Giovanni Bajo <giovannibajo@gcc.gnu.org> | 2003-12-02 12:02:21 +0000 |
---|---|---|
committer | Giovanni Bajo <giovannibajo@gcc.gnu.org> | 2003-12-02 12:02:21 +0000 |
commit | 27408a3c02110232530faf3b99684b6e373c7ad9 (patch) | |
tree | cc58377e248b034c6f784b938254d81344065788 | |
parent | 7e7c843fc72dc9f503ca052f2366d5a10eabc45c (diff) | |
download | gcc-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
-rw-r--r-- | gcc/cp/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/cp/pt.c | 3 |
2 files changed, 9 insertions, 0 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index b4d1df9..9723968 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,9 @@ +2003-12-02 Giovanni Bajo <giovannibajo@gcc.gnu.org> + + PR c++/12573
+ * pt.c (value_dependent_expression_p): Handle COMPONENT_REFs by
+ looking into them recursively.
+ 2003-12-02 Richard Henderson <rth@redhat.com> * name-lookup.h (struct cp_binding_level): Use ENUM_BITFIELD. 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)))) |