aboutsummaryrefslogtreecommitdiff
path: root/libjava/classpath/lib/java/sql/DataTruncation.class
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2016-09-28 21:21:47 +0200
committerJakub Jelinek <jakub@gcc.gnu.org>2016-09-28 21:21:47 +0200
commit4b3906980ac60781cddae5a787bf2908dd0920b7 (patch)
tree87190ab17a07d003e50e369e06ccb1875e978e4f /libjava/classpath/lib/java/sql/DataTruncation.class
parente0ab375340dc9a651e00e62e79e45152ff3f8bad (diff)
downloadgcc-4b3906980ac60781cddae5a787bf2908dd0920b7.zip
gcc-4b3906980ac60781cddae5a787bf2908dd0920b7.tar.gz
gcc-4b3906980ac60781cddae5a787bf2908dd0920b7.tar.bz2
re PR c++/77467 (Segmentation fault with switch statement in constexpr function)
PR c++/77467 * constexpr.c (enum constexpr_switch_state): New. (struct constexpr_ctx): Add css_state field. (label_matches): Add CTX and STMT arguments, remove I and DEFAULT_LABEL. For CASE_LABEL_EXPR assert ctx->css_state != NULL, handle default labels according to css_state. (cxx_eval_statement_list): Remove statement skipping, label_matches and default_label handling code. (cxx_eval_loop_expr): Exit after first iteration even if switches (jump_target). (cxx_eval_switch_expr): Set up css_state field in ctx, if default label has been seen in the body, but no cases matched, evaluate the body second time. (cxx_eval_constant_expression): Handle stmt skipping and label_matches here. Handle PREDICT_EXPR. For MODIFY_EXPR or INIT_EXPR, assert statement is not skipped. For COND_EXPR during skipping, don't evaluate condition, just the then block and if still skipping at the end also the else block. (cxx_eval_outermost_constant_expr): Adjust constexpr_ctx initializer. (is_sub_constant_expr): Likewise. * g++.dg/cpp1y/constexpr-77467.C: New test. From-SVN: r240591
Diffstat (limited to 'libjava/classpath/lib/java/sql/DataTruncation.class')
0 files changed, 0 insertions, 0 deletions