From patchwork Tue Oct 5 18:03:11 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Tobias Burnus X-Patchwork-Id: 45906 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 02406385BF86 for ; Tue, 5 Oct 2021 18:03:45 +0000 (GMT) X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from esa2.mentor.iphmx.com (esa2.mentor.iphmx.com [68.232.141.98]) by sourceware.org (Postfix) with ESMTPS id B946C385802D; Tue, 5 Oct 2021 18:03:19 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org B946C385802D Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=codesourcery.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=mentor.com IronPort-SDR: 6wESxUy2jpCWfq4N/wFnJl+Z50i2qELX/N+uimIUQOA+3eUcD548hVxJiX4f5zDL6R7DGpmMDy iU5eei+v20seRT4YX9ZLoNTNoMc3tFfYi+cdeDua+kk2jKWO/uhlzTZsqQ5jPT4xkA/93pYCSl bAX6xDE8p4StaSrPbH6NJrXq/Qm6KaHvylCHhX3tuvyps1/cr4KDXv8TdROUjli33YJsWe8xqj liDGrZI92eAE3VQUXPYkI+8CJbWmVZvjouwmzDTXClduZO46vgyPgZDREd66ZEw+TDTKgPF4rC tYRAYMfa2l7BblxZTEMCzITQ X-IronPort-AV: E=Sophos;i="5.85,349,1624348800"; d="diff'?scan'208";a="66757872" Received: from orw-gwy-01-in.mentorg.com ([192.94.38.165]) by esa2.mentor.iphmx.com with ESMTP; 05 Oct 2021 10:03:18 -0800 IronPort-SDR: ZSlgGF7JKLsnE0b9GB+UhhI3gB+noeH7CBONydzA2dxsab2pd81R8WFIBMeOBNGGZp3Mu8Nbqx o3USqiqbJj2iQO+i+yLkMBbuJlOGnaB+UyBrLARCCNiE/2TUTdngnv3V9Qv9DbEgKgKkpPAucM ojEEtmIJOZDy05q8BKowLE3AeGd3IJimHAdcdog2ujN9j6WJrLE0Vj30UCqNPnllCa5+jm7ZGK k+bqKUM9JVeF6236PBx1fZuCCt2GDWcGcDEx6dOSS4c5F5Wesz0jNEmRcv5G1xfSNoI+eU7P2S 8lY= To: gcc-patches , fortran From: Tobias Burnus Subject: [Patch] Fortran: Fix deprecate warning with parameter Message-ID: Date: Tue, 5 Oct 2021 20:03:11 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.14.0 MIME-Version: 1.0 Content-Language: en-US X-Originating-IP: [137.202.0.90] X-ClientProxiedBy: svr-ies-mbx-02.mgc.mentorg.com (139.181.222.2) To svr-ies-mbx-01.mgc.mentorg.com (139.181.222.1) X-Spam-Status: No, score=-11.6 required=5.0 tests=BAYES_00, GIT_PATCH_0, HEADER_FROM_DIFFERENT_DOMAINS, KAM_DMARC_STATUS, SPF_HELO_PASS, 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-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gcc-patches-bounces+patchwork=sourceware.org@gcc.gnu.org Sender: "Gcc-patches" Played around with the warning in the 'omp_lib' module (needs tweaking as for the current version, no warning is done). Turned out that already use omp_lib outputs a warning even when not used. That's fixed by the attached patch - even if the location is not perfect. OK for GCC 12 + GCC 11 backport? Tobias ----------------- Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstraße 201, 80634 München; Gesellschaft mit beschränkter Haftung; Geschäftsführer: Thomas Heurung, Frank Thürauf; Sitz der Gesellschaft: München; Registergericht München, HRB 106955 Fortran: Fix deprecate warning with parameter gcc/fortran/ChangeLog: * resolve.c (resolve_values): Only show deprecated warning if attr.referenced. gcc/testsuite/ChangeLog: * gfortran.dg/attr_deprecated-2.f90: New test. diff --git a/gcc/fortran/resolve.c b/gcc/fortran/resolve.c index 511fe3a5e55..0d0af39d23f 100644 --- a/gcc/fortran/resolve.c +++ b/gcc/fortran/resolve.c @@ -12351,7 +12351,7 @@ resolve_values (gfc_symbol *sym) if (sym->value == NULL) return; - if (sym->attr.ext_attr & (1 << EXT_ATTR_DEPRECATED)) + if (sym->attr.ext_attr & (1 << EXT_ATTR_DEPRECATED) && sym->attr.referenced) gfc_warning (OPT_Wdeprecated_declarations, "Using parameter %qs declared at %L is deprecated", sym->name, &sym->declared_at); diff --git a/gcc/testsuite/gfortran.dg/attr_deprecated-2.f90 b/gcc/testsuite/gfortran.dg/attr_deprecated-2.f90 new file mode 100644 index 00000000000..97a365a7c4a --- /dev/null +++ b/gcc/testsuite/gfortran.dg/attr_deprecated-2.f90 @@ -0,0 +1,22 @@ +! { dg-do compile } +! { dg-additional-options "-Wall" } +! +! Ensure that only those parameters are warned for which are actually used +! +module m + implicit none + integer, parameter :: parm = 4 ! unused + integer, parameter :: parm2 = 4 ! used in the main program + integer, parameter :: parm3 = 4 ! used in "f()" - { dg-warning "Using parameter 'parm3' declared at .1. is deprecated" } + integer, save :: var, var2 +!GCC$ ATTRIBUTES DEPRECATED :: parm, parm2, parm3, var, var2 +contains + subroutine f() + print *, parm3 ! warning shown above + end +end module m + +use m ! { dg-warning "Using parameter 'parm2' declared at .1. is deprecated" } +implicit none +print *, var2, parm2 ! { dg-warning "Using variable 'var2' at .1. is deprecated" } +end