diff options
author | Kai Tietz <ktietz@redhat.com> | 2014-12-12 18:14:54 +0100 |
---|---|---|
committer | Kai Tietz <ktietz@gcc.gnu.org> | 2014-12-12 18:14:54 +0100 |
commit | 5a5e54cdf872f476a2412f317f8744b13774b3ff (patch) | |
tree | 97b294078eb7ec295fe1eb9cc5c646770d10fbcd /gcc | |
parent | 32b671f05ae8e4528a980dd4283ea637ad5ca1c4 (diff) | |
download | gcc-5a5e54cdf872f476a2412f317f8744b13774b3ff.zip gcc-5a5e54cdf872f476a2412f317f8744b13774b3ff.tar.gz gcc-5a5e54cdf872f476a2412f317f8744b13774b3ff.tar.bz2 |
re PR c++/63996 (Infinite loop in invalid C++14 constexpr fn)
PR c++/63996
* constexpr.c (cxx_eval_loop_expr): Don't loop
endless on none-constant expression.
From-SVN: r218682
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/cp/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/cp/constexpr.c | 2 |
2 files changed, 7 insertions, 1 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 1809b26..3de8861 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,9 @@ +2014-12-12 Kai Tietz <ktietz@redhat.com> + + PR c++/63996 + * constexpr.c (cxx_eval_loop_expr): Don't loop + endless on none-constant expression. + 2014-12-12 Jason Merrill <jason@redhat.com> PR c++/61402 diff --git a/gcc/cp/constexpr.c b/gcc/cp/constexpr.c index 9426d85..732a79c 100644 --- a/gcc/cp/constexpr.c +++ b/gcc/cp/constexpr.c @@ -2841,7 +2841,7 @@ cxx_eval_loop_expr (const constexpr_ctx *ctx, tree t, { cxx_eval_statement_list (ctx, body, non_constant_p, overflow_p, jump_target); - if (returns (jump_target) || breaks (jump_target)) + if (returns (jump_target) || breaks (jump_target) || *non_constant_p) break; } if (breaks (jump_target)) |