Message ID | 1910003.PYKUYFuaPT@fomalhaut |
---|---|
State | New |
Headers | show |
Series | Relax assertion in profile.cc | expand |
On Mon, Oct 24, 2022 at 10:26 AM Eric Botcazou via Gcc-patches <gcc-patches@gcc.gnu.org> wrote: > > Hi, > > this assertion in branch_prob: > > if (bb == ENTRY_BLOCK_PTR_FOR_FN (cfun)->next_bb) > { > location_t loc = DECL_SOURCE_LOCATION (current_function_decl); > gcc_checking_assert (!RESERVED_LOCATION_P (loc)); > > had been correct until: > > 2021-08-11 Bernd Edlinger <bernd.edlinger@hotmail.de> > > PR debug/101598 > * gcc-interface/trans.c (Subprogram_Body_to_gnu): Set the > DECL_SOURCE_LOCATION of DECL_IGNORED_P gnu_subprog_decl to > UNKNOWN_LOCATION. > > was installed. > > Tested on x86-64/Linux, OK for mainline and 12 branch? OK. > > 2022-10-24 Eric Botcazou <ebotcazou@adacore.com> > > * profile.cc (branch_prob): Be prepared for ignored functions with > DECL_SOURCE_LOCATION set to UNKNOWN_LOCATION. > > > 2022-10-24 Eric Botcazou <ebotcazou@adacore.com> > > * gnat.dg/specs/coverage1.ads: New test. > > -- > Eric Botcazou
diff --git a/gcc/profile.cc b/gcc/profile.cc index 96121d60711..1527a04124f 100644 --- a/gcc/profile.cc +++ b/gcc/profile.cc @@ -1457,11 +1457,13 @@ branch_prob (bool thunk) if (bb == ENTRY_BLOCK_PTR_FOR_FN (cfun)->next_bb) { location_t loc = DECL_SOURCE_LOCATION (current_function_decl); - gcc_checking_assert (!RESERVED_LOCATION_P (loc)); - seen_locations.add (loc); - expanded_location curr_location = expand_location (loc); - output_location (&streamed_locations, curr_location.file, - MAX (1, curr_location.line), &offset, bb); + if (!RESERVED_LOCATION_P (loc)) + { + seen_locations.add (loc); + expanded_location curr_location = expand_location (loc); + output_location (&streamed_locations, curr_location.file, + MAX (1, curr_location.line), &offset, bb); + } } for (gsi = gsi_start_bb (bb); !gsi_end_p (gsi); gsi_next (&gsi))