Commit f5ad54d7 by Jason Merrill Committed by Jason Merrill

pt.c (build_non_dependent_expr): Don't check null_ptr_cst_p, do call…

pt.c (build_non_dependent_expr): Don't check null_ptr_cst_p, do call maybe_constant_value in C++0x mode.

	* pt.c (build_non_dependent_expr): Don't check null_ptr_cst_p,
	do call maybe_constant_value in C++0x mode.
	* semantics.c (cxx_eval_constant_expression): Handle TEMPLATE_DECL.

From-SVN: r173679
parent 3e475d30
2011-05-11 Jason Merrill <jason@redhat.com> 2011-05-11 Jason Merrill <jason@redhat.com>
* pt.c (build_non_dependent_expr): Don't check null_ptr_cst_p,
do call maybe_constant_value in C++0x mode.
* semantics.c (cxx_eval_constant_expression): Handle TEMPLATE_DECL.
PR c++/48745 PR c++/48745
* pt.c (value_dependent_expr_p): Handle CONSTRUCTOR. * pt.c (value_dependent_expr_p): Handle CONSTRUCTOR.
......
...@@ -18871,10 +18871,13 @@ build_non_dependent_expr (tree expr) ...@@ -18871,10 +18871,13 @@ build_non_dependent_expr (tree expr)
{ {
tree inner_expr; tree inner_expr;
/* Preserve null pointer constants so that the type of things like #ifdef ENABLE_CHECKING
"p == 0" where "p" is a pointer can be determined. */ /* Try to get a constant value for all non-type-dependent expressions in
if (null_ptr_cst_p (expr)) order to expose bugs in *_dependent_expression_p and constexpr. */
return expr; if (cxx_dialect >= cxx0x)
maybe_constant_value (fold_non_dependent_expr (expr));
#endif
/* Preserve OVERLOADs; the functions must be available to resolve /* Preserve OVERLOADs; the functions must be available to resolve
types. */ types. */
inner_expr = expr; inner_expr = expr;
......
...@@ -6911,6 +6911,7 @@ cxx_eval_constant_expression (const constexpr_call *call, tree t, ...@@ -6911,6 +6911,7 @@ cxx_eval_constant_expression (const constexpr_call *call, tree t,
break; break;
case FUNCTION_DECL: case FUNCTION_DECL:
case TEMPLATE_DECL:
case LABEL_DECL: case LABEL_DECL:
return t; return t;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment