From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-ed1-x529.google.com (mail-ed1-x529.google.com [IPv6:2a00:1450:4864:20::529]) by sourceware.org (Postfix) with ESMTPS id B33A03858D33 for ; Sun, 24 Apr 2022 14:09:16 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org B33A03858D33 Received: by mail-ed1-x529.google.com with SMTP id a21so3443086edb.1 for ; Sun, 24 Apr 2022 07:09:16 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:date:from:to:cc:subject:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=WONDaIIUsoFAQOt81JoicrYgyWqZaj7g4K1RobUhizk=; b=faLMP3fx3BxJO9nDisahN2VszkoMlDjPYUvLI28OnQGdDXwSbQ1eKafSwNO0r21Qmf woKKLIDCr7gIw3cvR/AC8rV5DKfwTyHQQP39/Xklu9GM9Z8nraCZwxlM+pv5ZTRscoVF RpCkcEkoo+FU7M5eJwx1FhQcTlphoQeSsk7Z98tjOIIAT2bY04+FPyvJE0KOtRIW3TJ9 VJ4Phzfqkga08xVQtjLO5gDFK2Bg78yBRvwHaGuHCasfaAaBeTShp39QZ5M5g76wPc0Y Fb/jCQoxXsByHX3r8M9HQ4xTVVCBKqGnNaVnsqRtcALl6lBxXJgZ/9buenQ2Hs8FLQBG 5S+A== X-Gm-Message-State: AOAM531oK31FIPX+lHCZh8XrmeO/WqqLVhhvN1RVJw0mxBX/LWcuuqPt 39RjQcm4KKEuZV5Dbq6fCqQ= X-Google-Smtp-Source: ABdhPJwLUZC8USstYEgPL/ozJE7Ky9/uyJJyph3fgBj7QSS48WRZFAnFMN1GDNFXcVQ1MawCYIqbyg== X-Received: by 2002:a05:6402:278f:b0:425:e89c:35e with SMTP id b15-20020a056402278f00b00425e89c035emr403372ede.50.1650809355211; Sun, 24 Apr 2022 07:09:15 -0700 (PDT) Received: from nbbrfq (80-110-214-113.static.upcbusiness.at. [80.110.214.113]) by smtp.gmail.com with ESMTPSA id p3-20020a1709060e8300b006d0e8ada804sm2612224ejf.127.2022.04.24.07.09.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 24 Apr 2022 07:09:15 -0700 (PDT) Date: Sun, 24 Apr 2022 16:09:12 +0200 From: Bernhard Reutner-Fischer To: gcc-help@gcc.gnu.org Cc: rep.dot.nop@gmail.com, jason@redhat.com Subject: Re: C++: missing result_decl loc of (member) functions Message-ID: <20220424160912.5c1f1ba9@nbbrfq> In-Reply-To: <20220420192024.4353ac8c@nbbrfq> References: <20220420192024.4353ac8c@nbbrfq> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Spam-Status: No, score=-10.0 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.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: gcc-help@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-help mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Apr 2022 14:09:18 -0000 On Wed, 20 Apr 2022 19:20:24 +0200 Bernhard Reutner-Fischer wrote: > Hi! >=20 > I'm having a hard time to set the correct location of the result decl of > member functions in C++. Any hint on where to best fix the missing > locus? > TIA for any hint (or a fix :). >=20 > Long version: > =C2=B9) C functions work out fine once fixed to have the correct loc. > C++ functions worked fine once, but i now see that apparently > "int my_main" on line 42 regressed again in the meantime: This is due to decl1 having been ggc_freed here: diff --git a/gcc/cp/decl.cc b/gcc/cp/decl.cc index c136dbbba1a..38874bf1558 100644 --- a/gcc/cp/decl.cc +++ b/gcc/cp/decl.cc @@ -17373,7 +17375,18 @@ start_function (cp_decl_specifier_seq *declspecs, gcc_assert (same_type_p (TREE_TYPE (TREE_TYPE (decl1)), integer_type_node)); =20 - return start_preparsed_function (decl1, attrs, /*flags=3D*/SF_DEFAULT); + ret =3D start_preparsed_function (decl1, attrs, /*flags=3D*/SF_DEFAULT); + + /* decl1 might be ggc_freed here. */ + //decl1 =3D current_function_decl; + which is why i previously had to use current_function_decl here. >=20 >=20 > $ XXX=3D1 ../gcc/xg++ -B../gcc -c -o return-narrow.o return-narrow.cc -fd= iagnostics-color=3Dalways=20 > return-narrow.cc: In function =E2=80=98int my_main(int, char**)=E2=80=99: > return-narrow.cc:42:25: warning: result decl locus sample > 42 | int my_main (int, char**) { return 0; } > | ^ > | the return type