c: Fix -Wunused-but-set-* warning with _Generic [PR96571]
authorJakub Jelinek <jakub@redhat.com>
Tue, 18 Aug 2020 05:51:58 +0000 (07:51 +0200)
committerJakub Jelinek <jakub@redhat.com>
Tue, 18 Aug 2020 05:51:58 +0000 (07:51 +0200)
commit6d42cbe5ad7a7b46437f2576c9920e44dc14b386
treea779ecc71eda6e6e0af4fdb3d12ff69855e93c5f
parent1bc4e811aa7249ec972ee7ea5b9bb23e8a0cd69e
c: Fix -Wunused-but-set-* warning with _Generic [PR96571]

The following testcase shows various problems with -Wunused-but-set*
warnings and _Generic construct.  I think it is best to treat the selector
and the ignored expressions as (potentially) read, because when they are
parsed, the vars in there are already marked as TREE_USED.

2020-08-18  Jakub Jelinek  <jakub@redhat.com>

PR c/96571
* c-parser.c (c_parser_generic_selection): Change match_found from bool
to int, holding index of the match.  Call mark_exp_read on the selector
expression and on expressions other than the selected one.

* gcc.dg/Wunused-var-4.c: New test.
gcc/c/c-parser.c
gcc/testsuite/gcc.dg/Wunused-var-4.c [new file with mode: 0644]