On Fri, 4 Apr 2025 at 12:37, Yash Shinde <yash.shi...@windriver.com> wrote:
>
>
> On 29-03-2025 03:50, Jason Merrill wrote:
> > CAUTION: This email comes from a non Wind River email account!
> > Do not click links or open attachments unless you recognize the sender
> > and know the content is safe.
> >
> > On 3/28/25 3:54 AM, yash.shi...@windriver.com wrote:
> >> From: Jeremy Bettis <jbet...@google.com>
> >>
> >> This patch addresses an issue in the C preprocessor where incorrect
> >> line number information is generated when processing files with a
> >> large number of lines. The problem arises from improper handling
> >> of location intervals in the line map, particularly when locations
> >> exceed LINE_MAP_MAX_LOCATION_WITH_PACKED_RANGES.
> >>
> >> By ensuring that the highest location is not decremented if it
> >> would move to a different ordinary map, this fix resolves
> >> the line number discrepancies observed in certain test cases.
> >> This change improves the accuracy of line number reporting, benefiting
> >> users relying on precise code coverage and debugging information.
> >
> > Pushed, thanks.
> >
> Thanks for pushing the fix.
> I believe this fix will be included in GCC-15 release.
> Could you kindly confirm?

Yes, gcc-15 will branch from current master, so everything in master
automatically goes into gcc-15.

>
> (PS: I have submitted a PR to backport the fix in gcc-14 release branch.
> https://gcc.gnu.org/pipermail/gcc-patches/2025-April/680142.html)
>
> Regards,
> Yash.
> >> libcpp/ChangeLog:
> >>
> >>       PR preprocessor/108900
> >>       * files.cc (_cpp_stack_file): Do not decrement highest_location
> >>       across distinct maps.
> >>
> >> Signed-off-by: Jeremy Bettis <jbet...@google.com>
> >> Signed-off-by: Yash Shinde <yash.shi...@windriver.com>
> >> ---
> >>   libcpp/files.cc | 9 +++++++++
> >>   1 file changed, 9 insertions(+)
> >>
> >> diff --git a/libcpp/files.cc b/libcpp/files.cc
> >> index 1ed19c5555a..c1abde6639f 100644
> >> --- a/libcpp/files.cc
> >> +++ b/libcpp/files.cc
> >> @@ -1046,6 +1046,15 @@ _cpp_stack_file (cpp_reader *pfile, _cpp_file
> >> *file, include_type type,
> >>                   && type < IT_DIRECTIVE_HWM
> >>                   && (pfile->line_table->highest_location
> >>                       != LINE_MAP_MAX_LOCATION - 1));
> >> +
> >> +  if (decrement && LINEMAPS_ORDINARY_USED (pfile->line_table))
> >> +    {
> >> +      const line_map_ordinary *map
> >> +     = LINEMAPS_LAST_ORDINARY_MAP (pfile->line_table);
> >> +      if (map && map->start_location ==
> >> pfile->line_table->highest_location)
> >> +     decrement = false;
> >> +    }
> >> +
> >>     if (decrement)
> >>       pfile->line_table->highest_location--;
> >>
> >
>

Reply via email to