From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 92748 invoked by alias); 15 Jul 2019 13:47:56 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 92739 invoked by uid 89); 15 Jul 2019 13:47:56 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-23.7 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,KAM_SHORT,RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.1 spammy=anonymous, matthew, Matthew, cb X-HELO: mail-lj1-f175.google.com Received: from mail-lj1-f175.google.com (HELO mail-lj1-f175.google.com) (209.85.208.175) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Mon, 15 Jul 2019 13:47:54 +0000 Received: by mail-lj1-f175.google.com with SMTP id 16so16263202ljv.10 for ; Mon, 15 Jul 2019 06:47:54 -0700 (PDT) MIME-Version: 1.0 References: <20190712183859.GQ5989@redhat.com> <20190712224930.GT5989@redhat.com> In-Reply-To: <20190712224930.GT5989@redhat.com> From: Matthew Beliveau Date: Mon, 15 Jul 2019 14:17:00 -0000 Message-ID: Subject: Re: [C++ PATCH] PR c++/90590 Suppress warning for enumeration value not handled in switch warning To: Marek Polacek Cc: Jason Merrill , gcc-patches@gcc.gnu.org Content-Type: multipart/mixed; boundary="000000000000adeb92058db881d8" X-IsSubscribed: yes X-SW-Source: 2019-07/txt/msg01061.txt.bz2 --000000000000adeb92058db881d8 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Content-length: 3544 Okay I kept the TYPE_MAIN_VARIANT and dropped the accidental new line! Hopefully this should be fine! On Fri, Jul 12, 2019 at 6:49 PM Marek Polacek wrote: > > On Fri, Jul 12, 2019 at 02:38:59PM -0400, Marek Polacek wrote: > > On Fri, Jul 12, 2019 at 02:34:37PM -0400, Matthew Beliveau wrote: > > > @@ -1628,6 +1629,16 @@ c_do_switch_warnings (splay_tree cases, locati= on_t switch_location, > > > if (cond && tree_int_cst_compare (cond, value)) > > > continue; > > > > > > + /* If the enumerator is defined in a system header and uses a = reserved > > > + name, then we continue to avoid throwing a warning. */ > > > + location_t loc =3D DECL_SOURCE_LOCATION > > > + (TYPE_STUB_DECL (TYPE_MAIN_VARIANT (type))); > > > > As I mentioned before, I wonder if we can get away without the > > TYPE_MAIN_VARIANT here. > > Ah, without TYPE_MAIN_VARIANT there's this ICEs: > > /opt/notnfs/polacek/gcc/libstdc++-v3/src/c++11/debug.cc: In function =E2= =80=98void {anonymous}::print_field({anonymous}::PrintContext&, const _Para= meter&, const char*)=E2=80=99: > /opt/notnfs/polacek/gcc/libstdc++-v3/src/c++11/debug.cc:791:5: internal c= ompiler error: Segmentation fault > 791 | } > | ^ > 0xf31def crash_signal > /opt/notnfs/polacek/gcc/gcc/toplev.c:326 > 0xaaa579 contains_struct_check(tree_node*, tree_node_structure_enum, char= const*, int, char const*) > /opt/notnfs/polacek/gcc/gcc/tree.h:3330 > 0xaaa579 c_do_switch_warnings(splay_tree_s*, unsigned int, tree_node*, tr= ee_node*, bool) > /opt/notnfs/polacek/gcc/gcc/c-family/c-warn.c:1634 > 0x8ab61f pop_switch() > /opt/notnfs/polacek/gcc/gcc/cp/decl.c:3567 > 0x9e0af4 finish_switch_stmt(tree_node*) > /opt/notnfs/polacek/gcc/gcc/cp/semantics.c:1229 > 0x95764d cp_parser_selection_statement > /opt/notnfs/polacek/gcc/gcc/cp/parser.c:11964 > 0x95764d cp_parser_statement > /opt/notnfs/polacek/gcc/gcc/cp/parser.c:11186 > 0x958770 cp_parser_statement_seq_opt > /opt/notnfs/polacek/gcc/gcc/cp/parser.c:11667 > 0x958847 cp_parser_compound_statement > /opt/notnfs/polacek/gcc/gcc/cp/parser.c:11621 > 0x971990 cp_parser_function_body > /opt/notnfs/polacek/gcc/gcc/cp/parser.c:22651 > 0x971990 cp_parser_ctor_initializer_opt_and_function_body > /opt/notnfs/polacek/gcc/gcc/cp/parser.c:22702 > 0x972216 cp_parser_function_definition_after_declarator > /opt/notnfs/polacek/gcc/gcc/cp/parser.c:28016 > 0x972fae cp_parser_function_definition_from_specifiers_and_declarator > /opt/notnfs/polacek/gcc/gcc/cp/parser.c:27932 > 0x972fae cp_parser_init_declarator > /opt/notnfs/polacek/gcc/gcc/cp/parser.c:20288 > 0x954ecf cp_parser_simple_declaration > /opt/notnfs/polacek/gcc/gcc/cp/parser.c:13546 > 0x9798a2 cp_parser_declaration > /opt/notnfs/polacek/gcc/gcc/cp/parser.c:13243 > 0x97a46c cp_parser_declaration_seq_opt > /opt/notnfs/polacek/gcc/gcc/cp/parser.c:13119 > 0x97a46c cp_parser_namespace_body > /opt/notnfs/polacek/gcc/gcc/cp/parser.c:19335 > 0x97a46c cp_parser_namespace_definition > /opt/notnfs/polacek/gcc/gcc/cp/parser.c:19313 > 0x9799b3 cp_parser_declaration > /opt/notnfs/polacek/gcc/gcc/cp/parser.c:13223 > Please submit a full bug report, > with preprocessed source if appropriate. > Please include the complete backtrace with any bug report. > See for instructions. > > So seems like we need it after all. Sorry about that. > > Marek --000000000000adeb92058db881d8 Content-Type: text/x-patch; charset="US-ASCII"; name="pr90590f.patch" Content-Disposition: attachment; filename="pr90590f.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_jy4fz9rk0 Content-length: 3909 Qm9vdHN0cmFwcGVkL3JlZ3Rlc3RlZCBvbiB4ODZfNjQtbGludXgsIG9rIGZv ciB0cnVuaz8KCjIwMTktMDctMTIgIE1hdHRoZXcgQmVsaXZlYXUgIDxtYmVs aXZlYUByZWRoYXQuY29tPgoKCVBSIGMrKy85MDU5MAoJKiBjLXdhcm4uYyAo Y19kb19zd2l0Y2hfd2FybmluZ3MpOiBTdXBwcmVzcyB3YXJuaW5nIGZvciBl bnVtZXJhdG9ycwoJd2l0aCByZXNlcnZlZCBuYW1lcyB0aGF0IGFyZSBpbiBh IHN5c3RlbSBoZWFkZXIuCgoJKiBjLWMrKy1jb21tb24vcHI5MDU5MC0xLmM6 IE5ldyB0ZXN0LgoJKiBjLWMrKy1jb21tb24vcHI5MDU5MC0xLmg6IE5ldyB0 ZXN0LgoJKiBjLWMrKy1jb21tb24vcHI5MDU5MC0yLmM6IE5ldyB0ZXN0LgoJ KiBjLWMrKy1jb21tb24vcHI5MDU5MC0yLmg6IE5ldyB0ZXN0LgoKZGlmZiAt LWdpdCBnY2MvYy1mYW1pbHkvYy13YXJuLmMgZ2NjL2MtZmFtaWx5L2Mtd2Fy bi5jCmluZGV4IGI1ZDA5ZTc2MWQ3Li41MWM1NGEyODNlNSAxMDA2NDQKLS0t IGdjYy9jLWZhbWlseS9jLXdhcm4uYworKysgZ2NjL2MtZmFtaWx5L2Mtd2Fy bi5jCkBAIC0zNCw2ICszNCw3IEBAIGFsb25nIHdpdGggR0NDOyBzZWUgdGhl IGZpbGUgQ09QWUlORzMuICBJZiBub3Qgc2VlCiAjaW5jbHVkZSAiZ2NjLXJp Y2gtbG9jYXRpb24uaCIKICNpbmNsdWRlICJnaW1wbGlmeS5oIgogI2luY2x1 ZGUgImMtZmFtaWx5L2MtaW5kZW50YXRpb24uaCIKKyNpbmNsdWRlICJjLWZh bWlseS9jLXNwZWxsY2hlY2suaCIKICNpbmNsdWRlICJjYWxscy5oIgogI2lu Y2x1ZGUgInN0b3ItbGF5b3V0LmgiCiAKQEAgLTE2MjgsNiArMTYyOSwxNSBA QCBjX2RvX3N3aXRjaF93YXJuaW5ncyAoc3BsYXlfdHJlZSBjYXNlcywgbG9j YXRpb25fdCBzd2l0Y2hfbG9jYXRpb24sCiAgICAgICBpZiAoY29uZCAmJiB0 cmVlX2ludF9jc3RfY29tcGFyZSAoY29uZCwgdmFsdWUpKQogCWNvbnRpbnVl OwogCisgICAgICAvKiBJZiB0aGUgZW51bWVyYXRvciBpcyBkZWZpbmVkIGlu IGEgc3lzdGVtIGhlYWRlciBhbmQgdXNlcyBhIHJlc2VydmVkCisJIG5hbWUs IHRoZW4gd2UgY29udGludWUgdG8gYXZvaWQgdGhyb3dpbmcgYSB3YXJuaW5n LiAgKi8KKyAgICAgIGxvY2F0aW9uX3QgbG9jID0gREVDTF9TT1VSQ0VfTE9D QVRJT04KKwkgICAgKFRZUEVfU1RVQl9ERUNMIChUWVBFX01BSU5fVkFSSUFO VCAodHlwZSkpKTsKKyAgICAgIGlmIChpbl9zeXN0ZW1faGVhZGVyX2F0IChs b2MpCisJICAmJiBuYW1lX3Jlc2VydmVkX2Zvcl9pbXBsZW1lbnRhdGlvbl9w CisJICAgICAgKElERU5USUZJRVJfUE9JTlRFUiAoVFJFRV9QVVJQT1NFIChj aGFpbikpKSkKKwljb250aW51ZTsKKwogICAgICAgLyogSWYgdGhlcmUgaXMg YSBkZWZhdWx0X25vZGUsIHRoZSBvbmx5IHJlbGV2YW50IG9wdGlvbiBpcwog CSBXc3dpdGNoLWVudW0uICBPdGhlcndpc2UsIGlmIGJvdGggYXJlIGVuYWJs ZWQgdGhlbiB3ZSBwcmVmZXIKIAkgdG8gd2FybiB1c2luZyAtV3N3aXRjaCBi ZWNhdXNlIC1Xc3dpdGNoIGlzIGVuYWJsZWQgYnkgLVdhbGwKZGlmZiAtLWdp dCBnY2MvdGVzdHN1aXRlL2MtYysrLWNvbW1vbi9wcjkwNTkwLTEuYyBnY2Mv dGVzdHN1aXRlL2MtYysrLWNvbW1vbi9wcjkwNTkwLTEuYwpuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNGUxMWRlYmI3ZmEKLS0t IC9kZXYvbnVsbAorKysgZ2NjL3Rlc3RzdWl0ZS9jLWMrKy1jb21tb24vcHI5 MDU5MC0xLmMKQEAgLTAsMCArMSwxNSBAQAorLy8gUFIgYysrLzkwNTkwCisv LyB7IGRnLW9wdGlvbnMgLVdzd2l0Y2ggfQorI2luY2x1ZGUgInByOTA1OTAt MS5oIgorCit2b2lkCitnICgpCit7CisgIGVudW0gRSBlID0gX0E7CisgIHN3 aXRjaCAoZSkgLy8geyBkZy1ib2d1cyAiZW51bWVyYXRpb24gdmFsdWUgJ19D JyBub3QgaGFuZGxlZCBpbiBzd2l0Y2giIH0KKyAgICB7CisgICAgY2FzZSBf QToKKyAgICBjYXNlIF9COgorICAgICAgYnJlYWs7CisgICAgfQorfQpkaWZm IC0tZ2l0IGdjYy90ZXN0c3VpdGUvYy1jKystY29tbW9uL3ByOTA1OTAtMS5o IGdjYy90ZXN0c3VpdGUvYy1jKystY29tbW9uL3ByOTA1OTAtMS5oCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4yMmYxYTdkNWQ1 MgotLS0gL2Rldi9udWxsCisrKyBnY2MvdGVzdHN1aXRlL2MtYysrLWNvbW1v bi9wcjkwNTkwLTEuaApAQCAtMCwwICsxLDIgQEAKKyNwcmFnbWEgR0NDIHN5 c3RlbV9oZWFkZXIKK2VudW0gRSB7IF9BLCBfQiwgX0MgfTsKZGlmZiAtLWdp dCBnY2MvdGVzdHN1aXRlL2MtYysrLWNvbW1vbi9wcjkwNTkwLTIuYyBnY2Mv dGVzdHN1aXRlL2MtYysrLWNvbW1vbi9wcjkwNTkwLTIuYwpuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMjNkYTk3ZjlkNzQKLS0t IC9kZXYvbnVsbAorKysgZ2NjL3Rlc3RzdWl0ZS9jLWMrKy1jb21tb24vcHI5 MDU5MC0yLmMKQEAgLTAsMCArMSwxMSBAQAorLy8gUFIgYysrLzkwNTkwCisv LyB7IGRnLW9wdGlvbnMgLVdzd2l0Y2ggfQorCisjaW5jbHVkZSAicHI5MDU5 MC0yLmgiCisKK3ZvaWQKK2ZuICgpCit7CisgIHN3aXRjaCAoYy5iKSAvLyB7 IGRnLWJvZ3VzICJlbnVtZXJhdGlvbiB2YWx1ZSIgfQorICAgIDsKK30KZGlm ZiAtLWdpdCBnY2MvdGVzdHN1aXRlL2MtYysrLWNvbW1vbi9wcjkwNTkwLTIu aCBnY2MvdGVzdHN1aXRlL2MtYysrLWNvbW1vbi9wcjkwNTkwLTIuaApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZTRmODYzNTU3 NmYKLS0tIC9kZXYvbnVsbAorKysgZ2NjL3Rlc3RzdWl0ZS9jLWMrKy1jb21t b24vcHI5MDU5MC0yLmgKQEAgLTAsMCArMSw0IEBACisjcHJhZ21hIEdDQyBz eXN0ZW1faGVhZGVyCitzdHJ1Y3QgeworICBlbnVtIHsgX0EgfSBiOworfSBj Owo= --000000000000adeb92058db881d8--