From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pg1-x532.google.com (mail-pg1-x532.google.com [IPv6:2607:f8b0:4864:20::532]) by sourceware.org (Postfix) with ESMTPS id E3E853858D33 for ; Sat, 20 Apr 2024 08:38:52 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org E3E853858D33 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org E3E853858D33 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2607:f8b0:4864:20::532 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1713602334; cv=none; b=ea0bS9O9IBDZjtKQdfks/8Cxib8L9n6z89c0+4zpjaHmkZGTufVj5DapfY74dlQ9j02tcLREaGPhCn79c1Vv6hnfuM7SQLGQu29YK89zijvHUBs4swD2PML3QGSJCWdPFHKN1Vhzv91irJntsyMZnN44o7hb9HT4ASp/7+/bX+I= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1713602334; c=relaxed/simple; bh=8NWJAyAPRHNyjfA/HOE4gSJtgvD7Qst7Ck0Dvs3Lx+w=; h=DKIM-Signature:Message-ID:Date:From:To:Subject:MIME-Version; b=GfFeBreUAfCtKtFUJSx7go2Z7s2x/eJjdvn8GXaSBHE4N8dxa78dcNBXhs2RpllUJrn5l25yH+P59gvnRP/95c4F0ISmkPzWJUx6t+QQLymRasL1Kc7gSBQvH5nQJ0DDhqFVpshacfhBRmc81osIouWaOw7iiEwZxiLFNraNu4o= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-pg1-x532.google.com with SMTP id 41be03b00d2f7-53fbf2c42bfso2003779a12.3 for ; Sat, 20 Apr 2024 01:38:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1713602332; x=1714207132; darn=gcc.gnu.org; h=content-disposition:mime-version:subject:cc:to:from:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=YrzDO89tGLiAYQOZnkI0PPTQpi2nlHDFpmnVVM+61mY=; b=Ul8zHSeKHRqvH8z4D2Dm35y08YPPcPfKMFKWICgheR9s4y+IH6bZ4X4dJgWfpZBaN7 pucO8k2DsYliMQUE6zh05gXPAvdyVYOZDizmdFxafxt7PAVMt80eJyTvu/nZlSY8kCvt 4JYPZmvoSJxkwJravaIPM/A3ZhEpzzwXuzoGqPGwWpq5Gjm9ujEw/lRHoxcNFkBT2CT2 ByjV7Sx7EwCqkjX5TUcRcoYbXWZP6TLQ4dSpHsyGWmT/88jHxzJe0Ltp7/oSX/0ow8yf BNXPH/iLE+K6HjcN502yU7XIdv5WQe2u37hdd8t9b0nUuBgdr+nspMnEcvqd1+vOyNx1 JoAg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1713602332; x=1714207132; h=content-disposition:mime-version:subject:cc:to:from:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=YrzDO89tGLiAYQOZnkI0PPTQpi2nlHDFpmnVVM+61mY=; b=b28jX8a7EArOSUOuSBYOEg0jQuxar+AglSUQzereJvcDPekNF2SFgv46KE9mAgxx52 rIXz6ZZVtbIfuaikB3NN5YdPIFPeBiTcNa/UNa6XtxfcJZCMr64ysJOxz8EpgZEFO2J4 V6NwhBRT3af+/hx9LwKIE+z6qYTM/U1IU50skHb4Ogq8XZh40WDA91q88z+jvRfolsGK PjdMWsSBtFVgKJgV7ogoeYmHgzdXdlhfNGiKkg02cxXcjjX+DD1Srr/T4mLy3dDaw73d PBUIeHjZL2nzAEGqKPv65Yd5q75ZTNYMG9l+AMWKMn/DhPkVc5iQ6auS9vCvEWxHTXjT ffXg== X-Gm-Message-State: AOJu0Yx4A5zBLQJwtENSt3YnaGsiQE8d9PX79rWUHGkhfDkQAsffTIX2 aX+OyjcoI7V3qtkLbhpQ+5e8r0JP0nuTRVAjLkv7XhMTfTj7kDl/74L6gQ== X-Google-Smtp-Source: AGHT+IFP+7Bkn9qdmguoXiJ94LRR2qbfWmzbOM/6QCXkAlADML5V2IlV0JlliG6RwWjK3Nd5NdrCOw== X-Received: by 2002:a05:6a20:5505:b0:1aa:5e75:d31f with SMTP id ko5-20020a056a20550500b001aa5e75d31fmr4453444pzb.16.1713602331678; Sat, 20 Apr 2024 01:38:51 -0700 (PDT) Received: from Thaum. (121-44-11-123.tpgi.com.au. [121.44.11.123]) by smtp.gmail.com with ESMTPSA id x14-20020a63db4e000000b005f750f36968sm4333378pgi.42.2024.04.20.01.38.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 20 Apr 2024 01:38:51 -0700 (PDT) Message-ID: <66237f1b.630a0220.ed3e.fd8b@mx.google.com> X-Google-Original-Message-ID: Date: Sat, 20 Apr 2024 18:38:46 +1000 From: Nathaniel Shead To: gcc-patches@gcc.gnu.org Cc: Jason Merrill Subject: [PATCH] c++: Fix ICE with xobj parms and maybe incomplete decl-specifiers MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline X-Spam-Status: No, score=-11.9 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,GIT_PATCH_0,RCVD_IN_DNSWL_NONE,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: Bootstrapped and regtested on x86_64-pc-linux-gnu, OK for trunk? -- >8 -- This fixes a null dereference issue when decl_specifiers.type is not yet provided. gcc/cp/ChangeLog: * parser.cc (cp_parser_parameter_declaration): Check if decl_specifiers.type is null. gcc/testsuite/ChangeLog: * g++.dg/cpp23/explicit-obj-basic7.C: New test. Signed-off-by: Nathaniel Shead --- gcc/cp/parser.cc | 5 +++-- gcc/testsuite/g++.dg/cpp23/explicit-obj-basic7.C | 9 +++++++++ 2 files changed, 12 insertions(+), 2 deletions(-) create mode 100644 gcc/testsuite/g++.dg/cpp23/explicit-obj-basic7.C diff --git a/gcc/cp/parser.cc b/gcc/cp/parser.cc index 50d3ad35b61..97ee2650dc4 100644 --- a/gcc/cp/parser.cc +++ b/gcc/cp/parser.cc @@ -25780,8 +25780,9 @@ cp_parser_parameter_declaration (cp_parser *parser, } if (xobj_param_p - && (declarator ? declarator->parameter_pack_p - : PACK_EXPANSION_P (decl_specifiers.type))) + && ((declarator && declarator->parameter_pack_p) + || (decl_specifiers.type + && PACK_EXPANSION_P (decl_specifiers.type)))) { location_t xobj_param = make_location (decl_specifiers.locations[ds_this], diff --git a/gcc/testsuite/g++.dg/cpp23/explicit-obj-basic7.C b/gcc/testsuite/g++.dg/cpp23/explicit-obj-basic7.C new file mode 100644 index 00000000000..a474e97fc18 --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp23/explicit-obj-basic7.C @@ -0,0 +1,9 @@ +// { dg-do compile { target c++23 } } + +// Shouldn't ICE +struct S { + void a(this long); + void b(this const long); + void c(this long unsigned); + void c(this signed); +}; -- 2.43.2