From patchwork Fri Jun 10 10:57:04 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Eric Botcazou X-Patchwork-Id: 55008 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 45058383867C for ; Fri, 10 Jun 2022 10:58:18 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 45058383867C DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1654858698; bh=M541NP1JNZaDvwQaSJvamOBMGHX9O82DFDaD8SKPLZw=; h=To:Subject:Date:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:From; b=phCigavneI9CscAL98BE+LmZjsCph881+9TRBwAqxEKIO/CP7wtpSW1Q2XxNgr3L+ zfqfvS7TiydUky5Pwtm7qbX1jRht2jtb2lZAkHfqQFJ2gBQcwdvLnnIz8btgUIE2hM WN+AxP+Pz/1rumr7Ek5rXVghwHrZFSjFBVyADaxk= X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from mail-wm1-x32f.google.com (mail-wm1-x32f.google.com [IPv6:2a00:1450:4864:20::32f]) by sourceware.org (Postfix) with ESMTPS id C946C3838665 for ; Fri, 10 Jun 2022 10:57:07 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org C946C3838665 Received: by mail-wm1-x32f.google.com with SMTP id z9so6936201wmf.3 for ; Fri, 10 Jun 2022 03:57:07 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=M541NP1JNZaDvwQaSJvamOBMGHX9O82DFDaD8SKPLZw=; b=zAILM4h2fKr75qiIXCWQW7kzLCHMYoSOsJJfrUA0BsxP3fsnWBjBfyDkU3hz4z/AzX mBk4LahN4g6y8fRcY8m7kuyOCG5HmaskZcBXOennSLrt17Da08wEQw188MPEHVSNY19F hGVVw03c3RoHD+e1+xYOewDYfWly8cXVCYS2pzdLpGlPmFO0skAKpnjssSrib/cXf5U9 BBNrJGqgUHb6EV4ipuNJYs4AVU6+4cbqEgzWVAUX6wE/T19F4OokEFE2bo23bSKMr3z3 IWgThpEDWO6xqfRA5e7I0SfK7QZKSpdxnGC09M1rcI41x4CDeheaRN96Fiegl/zEPB5G EEgA== X-Gm-Message-State: AOAM530VzuDGkoM9NFDvr4QF3wrkvZGKwPn309ueKHAysk+PYlkbm99/ 2i9sjONyNBKWNF1omwYckPqeQSmS+H0zew== X-Google-Smtp-Source: ABdhPJycdfmorebDVPvgiUWHF9UE7aqpHZHOZpYp4vhFX6PQp1pa+F0lbw+ra8VssXR1OHvKyZN/nw== X-Received: by 2002:a7b:c1d1:0:b0:39c:605c:1530 with SMTP id a17-20020a7bc1d1000000b0039c605c1530mr8149579wmj.80.1654858626137; Fri, 10 Jun 2022 03:57:06 -0700 (PDT) Received: from fomalhaut.localnet ([2a01:e0a:8d5:d990:bf38:f508:6f40:de1d]) by smtp.gmail.com with ESMTPSA id l15-20020a05600c47cf00b0039c5642e430sm2461758wmo.20.2022.06.10.03.57.04 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 10 Jun 2022 03:57:05 -0700 (PDT) X-Google-Original-From: Eric Botcazou To: gcc-patches@gcc.gnu.org Subject: [PATCH] Do not erase warning data in gimple_set_location Date: Fri, 10 Jun 2022 12:57:04 +0200 Message-ID: <7390933.EvYhyI6sBW@fomalhaut> MIME-Version: 1.0 X-Spam-Status: No, score=-10.8 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, 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 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: , X-Patchwork-Original-From: Eric Botcazou via Gcc-patches From: Eric Botcazou Reply-To: Eric Botcazou Errors-To: gcc-patches-bounces+patchwork=sourceware.org@gcc.gnu.org Sender: "Gcc-patches" Hi, gimple_set_location is mostly invoked on newly built GIMPLE statements, so their location is UNKNOWN_LOCATION and setting it will clobber the warning data of the passed location, if any. Tested on x86-64/Linux, OK for mainline and 12 branch? 2022-06-10 Eric Botcazou * gimple.h (gimple_set_location): Do not copy warning data from the previous location when it is UNKNOWN_LOCATION. 2022-06-10 Eric Botcazou testsuite/ * c-c++-common/nonnull-1.c: Remove XFAIL for C++. diff --git a/gcc/gimple.h b/gcc/gimple.h index 6b1e89ad74e..870629cd562 100644 --- a/gcc/gimple.h +++ b/gcc/gimple.h @@ -1913,7 +1913,8 @@ static inline void gimple_set_location (gimple *g, location_t location) { /* Copy the no-warning data to the statement location. */ - copy_warning (location, g->location); + if (g->location != UNKNOWN_LOCATION) + copy_warning (location, g->location); g->location = location; } diff --git a/gcc/testsuite/c-c++-common/nonnull-1.c b/gcc/testsuite/c-c++-common/nonnull-1.c index ea987365302..7be4e3479dd 100644 --- a/gcc/testsuite/c-c++-common/nonnull-1.c +++ b/gcc/testsuite/c-c++-common/nonnull-1.c @@ -30,5 +30,5 @@ func (char *cp1, char *cp2, char *cp3, char *cp4) __attribute__((nonnull (1))) int func2 (char *cp) { - return (cp != NULL) ? 1 : 0; /* { dg-warning "'nonnull' argument" "cp compared to NULL" { xfail c++ } } */ + return (cp != NULL) ? 1 : 0; /* { dg-warning "'nonnull' argument" "cp compared to NULL" } */ }