https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110073

            Bug ID: 110073
           Summary: [14 regression] btfout.cc format errors break
                    bootstrap
           Product: gcc
           Version: 13.0
            Status: UNCONFIRMED
          Keywords: build
          Severity: normal
          Priority: P3
         Component: debug
          Assignee: unassigned at gcc dot gnu.org
          Reporter: ro at gcc dot gnu.org
                CC: david.faust at oracle dot com
  Target Milestone: ---
            Target: i386-pc-solaris2.11

Created attachment 55230
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=55230&action=edit
proposed patch

This patch

commit 7aae58b04b92303ccda3ead600be98f0d4b7f462
Author: David Faust <david.fa...@oracle.com>
Date:   Wed May 31 08:31:24 2023 -0700

    btf: improve -dA comments for testsuite

broke (at least) Solaris/x86 bootstrap:

/vol/gcc/src/hg/master/local/gcc/btfout.cc: In function 'void
btf_asm_type(ctf_container_ref, ctf_dtdef_ref)':
/vol/gcc/src/hg/master/local/gcc/btfout.cc:802:32: error: format '%lu' expects
argument of type 'long unsigned int', but argument 4 has type 'ctf_id_t' {aka
'long long unsigned int'} [-Werror=format=]
  802 |                        "TYPE %lu BTF_KIND_%s '%s'",
      |                              ~~^
      |                                |
      |                                long unsigned int
      |                              %llu
  803 |                        get_btf_id (dtd->dtd_type), btf_kind_name
(btf_kind),
      |                        ~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                                   |
      |                                   ctf_id_t {aka long long unsigned int}

ctf_id_t is uint64_t, from gcc/ctfc.h; should use PRIu64 instead

/vol/gcc/src/hg/master/local/gcc/btfout.cc: In function 'void
btf_asm_func_type(ctf_container_ref, ctf_dtdef_ref, std::size_t)':
/vol/gcc/src/hg/master/local/gcc/btfout.cc:944:32: error: format '%lu' expects
argument of type 'long unsigned int', but argument 4 has type 'unsigned int'
[-Werror=format=]
  944 |                        "TYPE %lu BTF_KIND_FUNC '%s'",
      |                              ~~^
      |                                |
     |                              ~~^
      |                                |
      |                                long unsigned int
      |                              %u
  945 |                        num_types_added + num_vars_added + 1 + i,
      |                        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                                                             |
      |                                                             unsigned
int

just use %u instead

The attached patch allowed the build to succeed; make check still running.

Reply via email to