re PR c++/83553 (compiler removes body of the for-loop, although there is a case...
authorJakub Jelinek <jakub@redhat.com>
Sat, 23 Dec 2017 08:40:19 +0000 (09:40 +0100)
committerJakub Jelinek <jakub@gcc.gnu.org>
Sat, 23 Dec 2017 08:40:19 +0000 (09:40 +0100)
commit58ccbd1cdae4238dee5af09183fcf48729830b77
tree25950ee9e5606ae3ad5f16ee90324afb8f864ac5
parent3911519ed5b63c98fa5050aef291b19a40f81fcc
re PR c++/83553 (compiler removes body of the for-loop, although there is a case label inside)

PR c++/83553
* fold-const.c (struct contains_label_data): New type.
(contains_label_1): Return non-NULL even for CASE_LABEL_EXPR, unless
inside of a SWITCH_BODY seen during the walk.
(contains_label_p): Use walk_tree instead of
walk_tree_without_duplicates, prepare data for contains_label_1 and
provide own pset.

* c-c++-common/torture/pr83553.c: New test.

From-SVN: r255987
gcc/ChangeLog
gcc/fold-const.c
gcc/testsuite/ChangeLog
gcc/testsuite/c-c++-common/torture/pr83553.c [new file with mode: 0644]