From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from relay10.mail.gandi.net (relay10.mail.gandi.net [IPv6:2001:4b98:dc4:8::230]) by sourceware.org (Postfix) with ESMTPS id A16343858D28 for ; Sat, 11 Mar 2023 12:53:00 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org A16343858D28 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=starynkevitch.net Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=starynkevitch.net Received: (Authenticated sender: basile@starynkevitch.net) by mail.gandi.net (Postfix) with ESMTPSA id 63897240005; Sat, 11 Mar 2023 12:52:56 +0000 (UTC) Message-ID: <7785d160-cd05-01e2-e800-4bc82d630c4e@starynkevitch.net> Date: Sat, 11 Mar 2023 13:54:39 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.8.0 Content-Language: en-US To: Andrea Monaco Cc: gcc@gcc.gnu.org From: Basile Starynkevitch Subject: No warning about duplicate values in enum Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,JMQ_SPF_NEUTRAL,KAM_DMARC_STATUS,RCVD_IN_DNSWL_LOW,SPF_HELO_NONE,SPF_PASS,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: Hello all, Andrea observed that: In gcc 8.3.0, compiling enum test { FIRST = 1, SECOND = 1, THIRD = 2 }; int main (void) { return 0; } generates no warning even with -Wextra. I believe that the C standard (which I don't have here, but see also https://port70.net/~nsz/c/c11/n1570.html or buy it from ISO) explicitly allow duplicate values in enum. For readability of some weird code, or in the case of C code generated by other tools. By the way, gcc version 12.2.0 (Debian 12.2.0-14) don't emit any warnings neither when used on your example as gcc -Wall -Wextra -fanalyzer /tmp/andrea.c -o /tmp/andrea If you really want to get warnings, consider writing your GCC plugin (perhaps starting with https://github.com/bstarynk/bismon/ ....) or using static analysis tools like https://frama-c.com/ Regards. NB my pet open source project is the RefPerSys open source inference engine (work in progress) on http://refpersys.org/ -- Basile Starynkevitch 92340 Bourg-la-Reine, France http://starynkevitch.net/Basile/ and http://refpersys.org/