From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail.cs.ucla.edu (mail.cs.ucla.edu [131.179.128.66]) by sourceware.org (Postfix) with ESMTPS id DE3CC3858423 for ; Wed, 5 Jul 2023 15:53:49 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org DE3CC3858423 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=cs.ucla.edu Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=cs.ucla.edu Received: from localhost (localhost [127.0.0.1]) by mail.cs.ucla.edu (Postfix) with ESMTP id DF1863C011BD8; Wed, 5 Jul 2023 08:53:48 -0700 (PDT) Received: from mail.cs.ucla.edu ([127.0.0.1]) by localhost (mail.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id s8QI7166WfKG; Wed, 5 Jul 2023 08:53:48 -0700 (PDT) Received: from localhost (localhost [127.0.0.1]) by mail.cs.ucla.edu (Postfix) with ESMTP id 8FAA63C011BD9; Wed, 5 Jul 2023 08:53:48 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.10.3 mail.cs.ucla.edu 8FAA63C011BD9 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cs.ucla.edu; s=9D0B346E-2AEB-11ED-9476-E14B719DCE6C; t=1688572428; bh=jUX+FFcKzBFOalWeBUmjMvRA2vmv+FRV3MFHYpvNdnE=; h=Message-ID:Date:MIME-Version:To:From; b=fHUhZ72c7fiuKIaN3pPqn0XHxOtvtEXirVRxn8/GbgsRvybM7nJ6IebWB/adEjeQm knCjatebcRHuZWUPvIonQ9BTQ6fEosXByXC9cdP3lOtpHC9w9wOONNuEydOiaaNN54 VsfbqxkaAo1CZsGbOIbLuqSMo8aWJXELbnx6qSKyH73QoUXukM8/G7AgIwMskvoAz+ AakuhCoROVyAJD0VqfQ8w4uVFomJKr5c21mpPxBSjUxfB7SYpVqpJ7NNR6PAqm6tfY PDjmA+keXjYkIEBQcij5OpnNhe58kH32ix53DE4JqVxf5hmxGrxXcD5tv8wJgNGxqf Lhrx3uotYAR2w== X-Virus-Scanned: amavisd-new at mail.cs.ucla.edu Received: from mail.cs.ucla.edu ([127.0.0.1]) by localhost (mail.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id gzBjugV1ZsgU; Wed, 5 Jul 2023 08:53:48 -0700 (PDT) Received: from [192.168.1.9] (cpe-172-91-119-151.socal.res.rr.com [172.91.119.151]) by mail.cs.ucla.edu (Postfix) with ESMTPSA id 68E103C011BD8; Wed, 5 Jul 2023 08:53:48 -0700 (PDT) Content-Type: multipart/mixed; boundary="------------eFpQJpsQCAw7ar4M2X5crwjA" Message-ID: <72030a27-e222-6835-7be1-e34f07b46d0e@cs.ucla.edu> Date: Wed, 5 Jul 2023 08:53:48 -0700 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.11.0 Content-Language: en-US To: =?UTF-8?Q?Cristian_Rodr=c3=adguez?= , Adhemerval Zanella via Libc-alpha References: From: Paul Eggert Organization: UCLA Computer Science Department Subject: Re: gcc-14 Wflex-array-member-not-at-end may-be-ub in struct pthread In-Reply-To: X-Spam-Status: No, score=-9.0 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,GIT_PATCH_0,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE 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: This is a multi-part message in MIME format. --------------eFpQJpsQCAw7ar4M2X5crwjA Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: quoted-printable On 2023-07-05 06:46, Cristian Rodr=C3=ADguez via Libc-alpha wrote: > char end_padding[]; --> This is incorrect, since struct rseq contain= s a > flexible array it must be the last member.. ? struct rseq doesn't contain a flexible array on the master branch, so=20 there's no error here. Perhaps you tried to nest 'struct pthread' inside another struct? If so,=20 the C standard doesn't allow that but the attached untested patch should=20 be a trivial fix. Here's the wording in the C23 draft standard section 6.7.2.1 paragraph=20 3, which is what GCC is trying to enforce here: "the last member of a structure with more than one named member may have=20 incomplete array type; such a structure (and any union containing,=20 possibly recursively, a member that is such a structure) shall not be a=20 member of a structure or an element of an array." --------------eFpQJpsQCAw7ar4M2X5crwjA Content-Type: text/x-patch; charset=UTF-8; name="0001-make-struct-pthread-a-complete-type.patch" Content-Disposition: attachment; filename="0001-make-struct-pthread-a-complete-type.patch" Content-Transfer-Encoding: base64 RnJvbSBiNGViMDcxNGIzYmY2ZTA3ODMxNGFmNmJiZTUzMzFkOGYxMTFiNjcxIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBXZWQsIDUgSnVsIDIwMjMgMDg6NTA6MjYgLTA3MDAKU3ViamVjdDogW1BBVENI XSA9P1VURi04P3E/bWFrZT0yMD1FMj04MD05OHN0cnVjdD0yMHB0aHJlYWQ9RTI9ODA9OTk9 MjBhPz0KID0/VVRGLTg/cT89MjBjb21wbGV0ZT0yMHR5cGU/PQpNSU1FLVZlcnNpb246IDEu MApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKQ29udGVudC1UcmFu c2Zlci1FbmNvZGluZzogOGJpdAoKKiBucHRsL2Rlc2NyLmggKHN0cnVjdCBwdGhyZWFkKTog UmVtb3ZlIGVuZF9wYWRkaW5nIG1lbWJlciwgd2hpY2gKbWFkZSB0aGlzIHR5cGUgaW5jb21w bGV0ZS4KKFBUSFJFQURfU1RSVUNUX0VORF9QQURESU5HKTogU3RvcCB1c2luZyBlbmRfcGFk ZGluZy4KLS0tCiBucHRsL2Rlc2NyLmggfCA4ICsrKystLS0tCiAxIGZpbGUgY2hhbmdlZCwg NCBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25wdGwvZGVz Y3IuaCBiL25wdGwvZGVzY3IuaAppbmRleCA3NDZhNGI5ZTRhLi5kMDZhYmQ2YWQ5IDEwMDY0 NAotLS0gYS9ucHRsL2Rlc2NyLmgKKysrIGIvbnB0bC9kZXNjci5oCkBAIC00MDgsMTEgKzQw OCwxMSBAQCBzdHJ1Y3QgcHRocmVhZAogICAvKiByc2VxIGFyZWEgcmVnaXN0ZXJlZCB3aXRo IHRoZSBrZXJuZWwuICAqLwogICBzdHJ1Y3QgcnNlcSByc2VxX2FyZWE7CiAKLSAgLyogVGhp cyBtZW1iZXIgbXVzdCBiZSBsYXN0LiAgKi8KLSAgY2hhciBlbmRfcGFkZGluZ1tdOwotCisg IC8qIEFtb3VudCBvZiBlbmQgcGFkZGluZywgaWYgYW55LCBpbiB0aGlzIHN0cnVjdHVyZS4K KyAgICAgVGhpcyBkZWZpbml0aW9uIHJlbGllcyBvbiByc2VxX2FyZWEgYmVpbmcgbGFzdC4g ICovCiAjZGVmaW5lIFBUSFJFQURfU1RSVUNUX0VORF9QQURESU5HIFwKLSAgKHNpemVvZiAo c3RydWN0IHB0aHJlYWQpIC0gb2Zmc2V0b2YgKHN0cnVjdCBwdGhyZWFkLCBlbmRfcGFkZGlu ZykpCisgIChzaXplb2YgKHN0cnVjdCBwdGhyZWFkKSAtIG9mZnNldG9mIChzdHJ1Y3QgcHRo cmVhZCwgcnNlcV9hcmVhKSBcCisgICArIHNpemVvZiAoc3RydWN0IHJzZXEpKQogfSBfX2F0 dHJpYnV0ZSAoKGFsaWduZWQgKFRDQl9BTElHTk1FTlQpKSk7CiAKIHN0YXRpYyBpbmxpbmUg Ym9vbAotLSAKMi4zOS4yCgo= --------------eFpQJpsQCAw7ar4M2X5crwjA--