diff options
author | Jason Merrill <jason@redhat.com> | 2012-01-10 09:37:26 -0500 |
---|---|---|
committer | Jason Merrill <jason@gcc.gnu.org> | 2012-01-10 09:37:26 -0500 |
commit | a1e0490fb89dc31a8c1714be2ea0436affe1e2da (patch) | |
tree | 7c3edfdeeb21375e344025fa348abb3b208e6cad /gcc/cp | |
parent | 91f074ced1fa309b50e019a8b3d4bb44d0774647 (diff) | |
download | gcc-a1e0490fb89dc31a8c1714be2ea0436affe1e2da.zip gcc-a1e0490fb89dc31a8c1714be2ea0436affe1e2da.tar.gz gcc-a1e0490fb89dc31a8c1714be2ea0436affe1e2da.tar.bz2 |
re PR c++/51433 (constexpr caching leads to incorrect dynamic initialization)
PR c++/51433
* semantics.c (cxx_eval_call_expression): Always retry previously
non-constant expressions.
From-SVN: r183065
Diffstat (limited to 'gcc/cp')
-rw-r--r-- | gcc/cp/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/cp/semantics.c | 2 |
2 files changed, 7 insertions, 1 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index c0e1cf4..4de8ba1 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,9 @@ +2012-01-10 Jason Merrill <jason@redhat.com> + + PR c++/51433 + * semantics.c (cxx_eval_call_expression): Always retry previously + non-constant expressions. + 2012-01-06 Jason Merrill <jason@redhat.com> DR 686 diff --git a/gcc/cp/semantics.c b/gcc/cp/semantics.c index fbb74e1..2c351be 100644 --- a/gcc/cp/semantics.c +++ b/gcc/cp/semantics.c @@ -6576,7 +6576,7 @@ cxx_eval_call_expression (const constexpr_call *old_call, tree t, else { result = entry->result; - if (!result || (result == error_mark_node && !allow_non_constant)) + if (!result || result == error_mark_node) result = (cxx_eval_constant_expression (&new_call, new_call.fundef->body, allow_non_constant, addr, |