This is the mail archive of the
gcc-cvs@gcc.gnu.org
mailing list for the GCC project.
r217670 - in /trunk/gcc: cp/ChangeLog cp/conste...
- From: jason at gcc dot gnu dot org
- To: gcc-cvs at gcc dot gnu dot org
- Date: Mon, 17 Nov 2014 19:08:07 -0000
- Subject: r217670 - in /trunk/gcc: cp/ChangeLog cp/conste...
Author: jason
Date: Mon Nov 17 19:08:07 2014
New Revision: 217670
URL: https://gcc.gnu.org/viewcvs?rev=217670&root=gcc&view=rev
Log:
Handle C++14 constexpr flow control.
* constexpr.c (cxx_eval_loop_expr, cxx_eval_switch_expr): New.
(cxx_eval_statement_list): New.
(cxx_eval_constant_expression): Handle LABEL_EXPR,
CASE_LABEL_EXPR, GOTO_EXPR, LOOP_EXPR, SWITCH_EXPR. Handle jump
semantics of RETURN_EXPR.
(many functions): Add jump_target parameter.
(returns, breaks, continues, switches, label_matches): New.
* cp-tree.h (LABEL_DECL_BREAK, LABEL_DECL_CONTINUE): New.
* cp-gimplify.c (begin_bc_block): Set them.
Added:
trunk/gcc/testsuite/g++.dg/cpp1y/constexpr-loop1.C
trunk/gcc/testsuite/g++.dg/cpp1y/constexpr-return1.C
trunk/gcc/testsuite/g++.dg/cpp1y/constexpr-return2.C
trunk/gcc/testsuite/g++.dg/cpp1y/constexpr-switch1.C
trunk/gcc/testsuite/g++.dg/cpp1y/constexpr-switch2.C
trunk/gcc/testsuite/g++.dg/cpp1y/constexpr-switch3.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/constexpr.c
trunk/gcc/cp/cp-gimplify.c
trunk/gcc/cp/cp-tree.h