diff options
author | Jason Merrill <jason@redhat.com> | 2011-05-11 17:29:49 -0400 |
---|---|---|
committer | Jason Merrill <jason@gcc.gnu.org> | 2011-05-11 17:29:49 -0400 |
commit | f5ad54d7786c2cfa42d9e3afe1fdff209aea023d (patch) | |
tree | 1e2d01a6e37dc49c0266ecd7f0b0e873cd01cf20 /gcc/cp/pt.c | |
parent | 3e475d30a363db90039aec1239fcfc1a15e202aa (diff) | |
download | gcc-f5ad54d7786c2cfa42d9e3afe1fdff209aea023d.zip gcc-f5ad54d7786c2cfa42d9e3afe1fdff209aea023d.tar.gz gcc-f5ad54d7786c2cfa42d9e3afe1fdff209aea023d.tar.bz2 |
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
Diffstat (limited to 'gcc/cp/pt.c')
-rw-r--r-- | gcc/cp/pt.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c index 74d4cbf..4b32ce9 100644 --- a/gcc/cp/pt.c +++ b/gcc/cp/pt.c @@ -18871,10 +18871,13 @@ build_non_dependent_expr (tree expr) { tree inner_expr; - /* Preserve null pointer constants so that the type of things like - "p == 0" where "p" is a pointer can be determined. */ - if (null_ptr_cst_p (expr)) - return expr; +#ifdef ENABLE_CHECKING + /* Try to get a constant value for all non-type-dependent expressions in + order to expose bugs in *_dependent_expression_p and constexpr. */ + if (cxx_dialect >= cxx0x) + maybe_constant_value (fold_non_dependent_expr (expr)); +#endif + /* Preserve OVERLOADs; the functions must be available to resolve types. */ inner_expr = expr; |