* [PATCH][ICE] Fix for PR107193.
@ 2022-10-11 0:36 Eugene Rozenfeld
2022-10-11 2:01 ` H.J. Lu
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Eugene Rozenfeld @ 2022-10-11 0:36 UTC (permalink / raw)
To: gcc-patches, Jason Merrill, hjl.tools
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.
---
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;
--
2.25.1
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH][ICE] Fix for PR107193.
2022-10-11 0:36 [PATCH][ICE] Fix for PR107193 Eugene Rozenfeld
@ 2022-10-11 2:01 ` H.J. Lu
2022-10-11 3:09 ` Jason Merrill
2022-10-11 4:11 ` Jeff Law
2 siblings, 0 replies; 4+ messages in thread
From: H.J. Lu @ 2022-10-11 2:01 UTC (permalink / raw)
To: Eugene Rozenfeld; +Cc: gcc-patches, Jason Merrill
On Mon, Oct 10, 2022 at 5:37 PM Eugene Rozenfeld
<Eugene.Rozenfeld@microsoft.com> wrote:
>
> 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.
> ---
> 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;
>
> --
> 2.25.1
>
It restored bootstrap for me.
Thanks.
--
H.J.
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH][ICE] Fix for PR107193.
2022-10-11 0:36 [PATCH][ICE] Fix for PR107193 Eugene Rozenfeld
2022-10-11 2:01 ` H.J. Lu
@ 2022-10-11 3:09 ` Jason Merrill
2022-10-11 4:11 ` Jeff Law
2 siblings, 0 replies; 4+ messages in thread
From: Jason Merrill @ 2022-10-11 3:09 UTC (permalink / raw)
To: Eugene Rozenfeld, gcc-patches, hjl.tools
On 10/10/22 20:36, Eugene Rozenfeld wrote:
> 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.
OK.
> gcc/ChangeLog:
> PR debug/107193
> * tree-cfg.cc (assign_discriminators): Move declaration of cur_locus_e
> out of the loop.
> ---
> 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;
>
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH][ICE] Fix for PR107193.
2022-10-11 0:36 [PATCH][ICE] Fix for PR107193 Eugene Rozenfeld
2022-10-11 2:01 ` H.J. Lu
2022-10-11 3:09 ` Jason Merrill
@ 2022-10-11 4:11 ` Jeff Law
2 siblings, 0 replies; 4+ messages in thread
From: Jeff Law @ 2022-10-11 4:11 UTC (permalink / raw)
To: gcc-patches
On 10/10/22 18:36, Eugene Rozenfeld via Gcc-patches wrote:
> 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.
Thanks. I suspect this caused the hppa bootstrap failure due to
comparison mismatch as well. Given it's an 8hr build, I'm inclined to
just restart it once this patch goes in and hope rather than bisect :-)
jeff
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2022-10-11 4:12 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-10-11 0:36 [PATCH][ICE] Fix for PR107193 Eugene Rozenfeld
2022-10-11 2:01 ` H.J. Lu
2022-10-11 3:09 ` Jason Merrill
2022-10-11 4:11 ` Jeff Law
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).