From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by sourceware.org (Postfix) with ESMTPS id BB5D2384AB57 for ; Mon, 22 Apr 2024 02:59:19 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org BB5D2384AB57 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=redhat.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=redhat.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org BB5D2384AB57 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=170.10.133.124 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1713754762; cv=none; b=g3ALE5SYj2zdzA9r5Ncx95fADUbcozbnU9lDTWZFkwjflCVN7f9W5M94a6Yl8baDWW9ZjrEL+BUTLFHrcC2KocsBjM2Zzq+FZgECG4pETrJOBfxKj89jY9ahkFru3Sx4gUPqk7AEHZWP+SbpsbNx8lCMr00qz16EygvDKBJs//0= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1713754762; c=relaxed/simple; bh=X2LxLq5N0Joekj/UP6eGBYwDDDezngYw5/dP7Sw9Sok=; h=DKIM-Signature:From:Date:To:Subject:Message-ID:MIME-Version; b=Zwa34tXyd523hKaiyPHUir14ySCEiJva3+Hu37rA8fS5nTwdbTbKX52r0kfdyueJiRjCSGLYfbPhZfJvkgNK1ahLI53p2eHBVs35J56jawZjwtRxJ7B6NvOcW7bPcTE/sAjUS2cK+SRmQ5zCaCIpdauwclkHeadjyhkrwDY1IX0= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1713754759; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=knojrhaJvn/18qr3uIoGcaABlHXrWfiIZ22PsWSz+4M=; b=IHSXJhYje9QRrWsHN1Mfpg/NSQRqo7g9bc5/1Sz1u9zMRO4fTkxynEbBfkeuSxPlhCXNWe u11cgQW2eFw/Tg8B0wcAauhiDNyMAXALffgVAOeKbS7ekA/HNWNoO0YwXlZHFwb3lPvc9d jSR0hBRShrFfGXs9A20SAN4xf5KMAmA= Received: from mail-qk1-f199.google.com (mail-qk1-f199.google.com [209.85.222.199]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-504-WCVlx5PZOF6YnxfkS2GLfQ-1; Sun, 21 Apr 2024 22:59:18 -0400 X-MC-Unique: WCVlx5PZOF6YnxfkS2GLfQ-1 Received: by mail-qk1-f199.google.com with SMTP id af79cd13be357-78d5ef6055fso599973185a.1 for ; Sun, 21 Apr 2024 19:59:18 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1713754757; x=1714359557; h=mime-version:references:message-id:in-reply-to:subject:cc:to:date :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=knojrhaJvn/18qr3uIoGcaABlHXrWfiIZ22PsWSz+4M=; b=tf3rcjgjeGNs1xBhcJvU1W9k3IrHkdxs9gUXHGLnLT3D/8YxpKhx2FRIWHmZh7QgHm Vw5nRdSh2DUol+L2uCb0siEgK8wtvQzzEnOSiyJn10w0QWXbKDUU60kQbZmD0KFGZoo0 BsU/7cK2rbXw+gV3YY74xomM99b5S/tFNMCI0YzLUiDu5CAismAN4eJZ397aTH02FV/S KHtWjfr7qxrryujbtMbd4qjmjNqP9pwNIoVgTgZrD4+suVcwKJ0LlRcbxG9swyppece2 ghSVTFERW7RPykSBFUg2GB6pTSkOdTxULLgkcu26SsY8Ru94Bl04jtTF2RLT1QjKLjBn i5WQ== X-Gm-Message-State: AOJu0YxbEsxMymHvSaSBX5wlpE+0bSErauoqqo+nJ3hMTfxJBrPqqE9h 59ju0nbWSZOE4vKx08uieok2jXcpW64iX+0ktGyRiBDn82Wy4penf4xa5Gr8X3wjYylxQ0NLZP7 i444BxibyKW9xEu0G/aBLWr/VxvhGDShH2CDKZflZQeFyhpaIc7nfpUkzDpJndBo= X-Received: by 2002:a05:620a:570e:b0:78f:1218:d838 with SMTP id wi14-20020a05620a570e00b0078f1218d838mr10068569qkn.41.1713754757149; Sun, 21 Apr 2024 19:59:17 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFBviPPJCXXN0YZHnj9l5qRCETVRG4JINex897ncNjm3PcaaXkOfeX8Opr6wV4twoGaAdnYIA== X-Received: by 2002:a05:620a:570e:b0:78f:1218:d838 with SMTP id wi14-20020a05620a570e00b0078f1218d838mr10068561qkn.41.1713754756820; Sun, 21 Apr 2024 19:59:16 -0700 (PDT) Received: from [192.168.1.130] (ool-457670bb.dyn.optonline.net. [69.118.112.187]) by smtp.gmail.com with ESMTPSA id y22-20020a05620a0e1600b0078ec71866f7sm3888850qkm.58.2024.04.21.19.59.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 21 Apr 2024 19:59:16 -0700 (PDT) From: Patrick Palka X-Google-Original-From: Patrick Palka Date: Sun, 21 Apr 2024 22:59:15 -0400 (EDT) To: Nathaniel Shead cc: gcc-patches@gcc.gnu.org, Jason Merrill Subject: Re: [PATCH] c++: Check if allocation functions are xobj members [PR114078] In-Reply-To: <66237f55.170a0220.88a25.0553@mx.google.com> Message-ID: <7557fd6d-964a-ce4e-3051-62c070fe5be6@idea> References: <66237f55.170a0220.88a25.0553@mx.google.com> MIME-Version: 1.0 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=US-ASCII X-Spam-Status: No, score=-13.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H4,RCVD_IN_MSPIKE_WL,RCVD_IN_SORBS_WEB,SPF_HELO_NONE,SPF_NONE,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: On Sat, 20 Apr 2024, Nathaniel Shead wrote: > Bootstrapped and regtested on x86_64-pc-linux-gnu, OK for trunk? > > -- >8 -- > > A class allocation member function is implicitly 'static' by > [class.free] p3, so cannot have an explicit object parameter. > > PR c++/114078 > > gcc/cp/ChangeLog: > > * decl.cc (grokdeclarator): Check allocation functions for xobj > parameters. > > gcc/testsuite/ChangeLog: > > * g++.dg/cpp23/explicit-obj-ops-alloc.C: New test. LGTM > > Signed-off-by: Nathaniel Shead > --- > gcc/cp/decl.cc | 6 ++++++ > gcc/testsuite/g++.dg/cpp23/explicit-obj-ops-alloc.C | 11 +++++++++++ > 2 files changed, 17 insertions(+) > create mode 100644 gcc/testsuite/g++.dg/cpp23/explicit-obj-ops-alloc.C > > diff --git a/gcc/cp/decl.cc b/gcc/cp/decl.cc > index 65ab64885ff..2af026d255d 100644 > --- a/gcc/cp/decl.cc > +++ b/gcc/cp/decl.cc > @@ -13728,6 +13728,12 @@ grokdeclarator (const cp_declarator *declarator, > inform (DECL_SOURCE_LOCATION (xobj_parm), > "explicit object parameter declared here"); > } > + if (unqualified_id > + && identifier_p (unqualified_id) > + && IDENTIFIER_NEWDEL_OP_P (unqualified_id)) > + error_at (DECL_SOURCE_LOCATION (xobj_parm), > + "%qD cannot be an explicit object member " > + "function", unqualified_id); > } > } > tree pushed_scope = NULL_TREE; > diff --git a/gcc/testsuite/g++.dg/cpp23/explicit-obj-ops-alloc.C b/gcc/testsuite/g++.dg/cpp23/explicit-obj-ops-alloc.C > new file mode 100644 > index 00000000000..8a277db7ef5 > --- /dev/null > +++ b/gcc/testsuite/g++.dg/cpp23/explicit-obj-ops-alloc.C > @@ -0,0 +1,11 @@ > +// PR c++/114078 > +// { dg-do compile { target c++23 } } > + > +using size_t = decltype(sizeof(0)); > + > +struct S { > + void* operator new(this size_t); // { dg-error "explicit object" } > + void* operator new[](this size_t); // { dg-error "explicit object" } > + void operator delete(this void*); // { dg-error "explicit object" } > + void operator delete[](this void*); // { dg-error "explicit object" } > +}; > -- > 2.43.2 > >