aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/cp/ChangeLog3
-rw-r--r--gcc/cp/pt.c7
2 files changed, 9 insertions, 1 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index fec4bfd..a67de73 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,5 +1,8 @@
2010-06-04 Jason Merrill <jason@redhat.com>
+ * pt.c (value_dependent_expression_p) [NOEXCEPT_EXPR]: Avoid
+ using an uninitialized variable.
+
* cxx-pretty-print.c (pp_cxx_unary_expression): Handle NOEXCEPT_EXPR.
(pp_cxx_expression): Likewise.
diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c
index 4c98bf2..d7c0382 100644
--- a/gcc/cp/pt.c
+++ b/gcc/cp/pt.c
@@ -17596,9 +17596,14 @@ value_dependent_expression_p (tree expression)
return true;
else if (TYPE_P (expression))
return dependent_type_p (expression);
- case NOEXCEPT_EXPR:
return type_dependent_expression_p (expression);
+ case NOEXCEPT_EXPR:
+ expression = TREE_OPERAND (expression, 0);
+ /* FIXME why check value-dependency? */
+ return (type_dependent_expression_p (expression)
+ || value_dependent_expression_p (expression));
+
case SCOPE_REF:
return dependent_scope_ref_p (expression, value_dependent_expression_p);