From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 7840) id DE3023858C2D; Tue, 11 Oct 2022 06:35:55 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org DE3023858C2D DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1665470155; bh=PelsJUsxlk7vdywAdfZNi4VDtY85ZZwp8Oug/WOQKOs=; h=From:To:Subject:Date:From; b=Q10FkorlswwgUQhytIdeFspc/0M5YOBd568aSyFD8dvmyvxmANApx3jRWtPe/5ebH yAa+7bIdeO40m3CGtYsClikQlH9lKS3B+1H5puAb8nOa8GJqaFVi9jCTvlnZ4GR7tb +lqbtg7R26Zoc5gwm97zVjzjEw3mfDGnfjGgcq0k= MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="utf-8" From: Eugene Rozenfeld To: gcc-cvs@gcc.gnu.org Subject: [gcc r13-3213] Fix PR107193. X-Act-Checkin: gcc X-Git-Author: Eugene Rozenfeld X-Git-Refname: refs/heads/master X-Git-Oldrev: b88adba751da635c6f0c353c5bc51bbe2ecf4c89 X-Git-Newrev: 80f414e6d73f9f1683f93d83ce63a6a482e54bee Message-Id: <20221011063555.DE3023858C2D@sourceware.org> Date: Tue, 11 Oct 2022 06:35:55 +0000 (GMT) List-Id: https://gcc.gnu.org/g:80f414e6d73f9f1683f93d83ce63a6a482e54bee commit r13-3213-g80f414e6d73f9f1683f93d83ce63a6a482e54bee Author: Eugene Rozenfeld Date: Mon Oct 10 14:10:31 2022 -0700 Fix PR107193. The bug was introduced in f30e9fd33e56a5a721346ea6140722e1b193db42. A variable (cur_locus_e) was incorrectly declared inside a loop. I also moved two other declarations (last and locus) down to make the code more clear. Tested on x86_64-pc-linux-gnu. gcc/ChangeLog: PR debug/107193 * tree-cfg.cc (assign_discriminators): Move declaration of cur_locus_e out of the loop. Diff: --- gcc/tree-cfg.cc | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/gcc/tree-cfg.cc b/gcc/tree-cfg.cc index 41f2925665f..ae781871a19 100644 --- a/gcc/tree-cfg.cc +++ b/gcc/tree-cfg.cc @@ -1204,9 +1204,8 @@ assign_discriminators (void) edge e; edge_iterator ei; gimple_stmt_iterator gsi; - gimple *last = last_stmt (bb); - location_t locus = last ? gimple_location (last) : UNKNOWN_LOCATION; location_t curr_locus = UNKNOWN_LOCATION; + expanded_location curr_locus_e = {}; int curr_discr = 0; /* Traverse the basic block, if two function calls within a basic block @@ -1215,7 +1214,7 @@ assign_discriminators (void) for (gsi = gsi_start_bb (bb); !gsi_end_p (gsi); gsi_next (&gsi)) { gimple *stmt = gsi_stmt (gsi); - expanded_location curr_locus_e; + if (curr_locus == UNKNOWN_LOCATION) { curr_locus = gimple_location (stmt); @@ -1238,6 +1237,8 @@ assign_discriminators (void) curr_discr = next_discriminator_for_locus (curr_locus); } + gimple *last = last_stmt (bb); + location_t locus = last ? gimple_location (last) : UNKNOWN_LOCATION; if (locus == UNKNOWN_LOCATION) continue;