From 5fb8060d5b57061e6b683aebdd04a915473963f6 Mon Sep 17 00:00:00 2001 From: Jason Merrill Date: Mon, 11 Jul 2011 14:52:19 -0400 Subject: * decl2.c (decl_constant_var_p): Use decl_maybe_constant_var_p. From-SVN: r176177 --- gcc/cp/ChangeLog | 2 ++ gcc/cp/decl2.c | 26 ++++++++------------------ 2 files changed, 10 insertions(+), 18 deletions(-) diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index d95650f..a6df4fb 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,5 +1,7 @@ 2011-07-11 Jason Merrill + * decl2.c (decl_constant_var_p): Use decl_maybe_constant_var_p. + PR c++/44609 * cp-tree.h (struct tinst_level): Add errors field. * pt.c (neglectable_inst_p, limit_bad_template_recurson): New. diff --git a/gcc/cp/decl2.c b/gcc/cp/decl2.c index d90d4b5..e1f9562 100644 --- a/gcc/cp/decl2.c +++ b/gcc/cp/decl2.c @@ -3574,26 +3574,16 @@ decl_defined_p (tree decl) bool decl_constant_var_p (tree decl) { - bool ret; - tree type = TREE_TYPE (decl); - if (TREE_CODE (decl) != VAR_DECL) + if (!decl_maybe_constant_var_p (decl)) return false; - if (DECL_DECLARED_CONSTEXPR_P (decl) - || (CP_TYPE_CONST_NON_VOLATILE_P (type) - && INTEGRAL_OR_ENUMERATION_TYPE_P (type))) - { - /* We don't know if a template static data member is initialized with - a constant expression until we instantiate its initializer. Even - in the case of a constexpr variable, we can't treat it as a - constant until its initializer is complete in case it's used in - its own initializer. */ - mark_used (decl); - ret = DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P (decl); - } - else - ret = false; - return ret; + /* We don't know if a template static data member is initialized with + a constant expression until we instantiate its initializer. Even + in the case of a constexpr variable, we can't treat it as a + constant until its initializer is complete in case it's used in + its own initializer. */ + mark_used (decl); + return DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P (decl); } /* Returns true if DECL could be a symbolic constant variable, depending on -- cgit v1.1