From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id 2434E3858D20; Tue, 30 Apr 2024 16:39:38 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 2434E3858D20 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1714495178; bh=Nnx7ZqlcVKY1cM+wfJ/DSDemV6qzItY+P1pvvFgDrRo=; h=From:To:Subject:Date:In-Reply-To:References:From; b=H/p3jFj3TiSc6TaQRcx4LWt8RuzP5CvANj/h3GJrNXEthBq0pt380FLfNwhLIz/If 6nEiEnvWrXHjtZ+ReLBAo9qBFgmwyNVT7yMCKWw1Zxe3oVrzUkoLhTlWTIuRztcJYZ qtn7fZFwUJFXdTWENivWhy4xM44Qkuum90b/6ePo= From: "pinskia at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug c/61469] language feature: Support for enum underlying type Date: Tue, 30 Apr 2024 16:39:37 +0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: c X-Bugzilla-Version: unknown X-Bugzilla-Keywords: X-Bugzilla-Severity: enhancement X-Bugzilla-Who: pinskia at gcc dot gnu.org X-Bugzilla-Status: RESOLVED X-Bugzilla-Resolution: FIXED X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: jsm28 at gcc dot gnu.org X-Bugzilla-Target-Milestone: 13.0 X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 List-Id: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D61469 --- Comment #14 from Andrew Pinski --- (In reply to Thomas Mercier from comment #13) > Was this feature meant to be protected by -std=3Dc23? It doesn't appear t= o be > in GCC 13: >=20 > /tmp$ cat test.c > enum node_stat_item : unsigned { > NR_LRU_BASE =3D -1, > NR_INACTIVE_ANON =3D NR_LRU_BASE, /* must match order of LRU_[IN]ACTIVE = */ > NR_ACTIVE_ANON, /* " " " " " */ > NR_INACTIVE_FILE, > }; >=20 > int main() > {} > /tmp$ gcc --version > gcc (Debian 13.2.0-10) 13.2.0 > Copyright (C) 2023 Free Software Foundation, Inc. > This is free software; see the source for copying conditions. There is NO > warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOS= E. >=20 > /tmp$ gcc -std=3Dc11 test.c > test.c:2:23: error: enumerator value outside the range of underlying type > 2 | NR_LRU_BASE =3D -1, > | ^ > test.c:4:9: error: overflow in enumeration values > 4 | NR_ACTIVE_ANON, /* " " " " "=20= =20=20=20=20=20=20 > */ > | Note that is the correct error even for C23. clang also errors out the simi= lar way: ``` :5:2: error: enumerator value 4294967296 is not representable in the underlying type 'unsigned int' 5 | NR_ACTIVE_ANON, /* " " " " "=20=20= =20=20=20=20=20=20 */ | ^ ```=