On Sun, Nov 17, 2024 at 4:28 AM Lewis Hyatt <lhy...@gmail.com> wrote:
>
> The analyzer occasionally prints internal location_t values for debugging;
> adjust those parts so they will work if location_t is 64-bit. For
> simplicity, to avoid hassling with the printf format string, just convert to
> (unsigned long long) in either case.

OK.

> gcc/analyzer/ChangeLog:
>
>         * checker-event.cc (checker_event::dump): Support printing either
>         32- or 64-bit location_t values.
>         * checker-path.cc (checker_path::inject_any_inlined_call_events):
>         Likewise.
> ---
>  gcc/analyzer/checker-event.cc | 4 ++--
>  gcc/analyzer/checker-path.cc  | 5 +++--
>  2 files changed, 5 insertions(+), 4 deletions(-)
>
> diff --git a/gcc/analyzer/checker-event.cc b/gcc/analyzer/checker-event.cc
> index 5a292377e93..bb26f71e4b4 100644
> --- a/gcc/analyzer/checker-event.cc
> +++ b/gcc/analyzer/checker-event.cc
> @@ -188,8 +188,8 @@ checker_event::dump (pretty_printer *pp) const
>        if (m_effective_fndecl != m_original_fndecl)
>         pp_printf (pp, " corrected from %qE", m_original_fndecl);
>      }
> -  pp_printf (pp, ", m_loc=%x)",
> -            get_location ());
> +  pp_printf (pp, ", m_loc=%llx)",
> +            (unsigned long long) get_location ());
>  }
>
>  /* Dump this event to stderr (for debugging/logging purposes).  */
> diff --git a/gcc/analyzer/checker-path.cc b/gcc/analyzer/checker-path.cc
> index d607679beec..9626e358cb3 100644
> --- a/gcc/analyzer/checker-path.cc
> +++ b/gcc/analyzer/checker-path.cc
> @@ -281,8 +281,9 @@ checker_path::inject_any_inlined_call_events (logger 
> *logger)
>               logger->log_partial ("  %qE", iter.get_block ());
>               if (!flag_dump_noaddr)
>                 logger->log_partial (" (%p)", iter.get_block ());
> -             logger->log_partial (", fndecl: %qE, callsite: 0x%x",
> -                                  iter.get_fndecl (), iter.get_callsite ());
> +             logger->log_partial (", fndecl: %qE, callsite: 0x%llx",
> +                                  iter.get_fndecl (),
> +                                  (unsigned long long) iter.get_callsite ());
>               if (iter.get_callsite ())
>                 dump_location (logger->get_printer (), iter.get_callsite ());
>               logger->end_log_line ();

Reply via email to