https://sourceware.org/bugzilla/show_bug.cgi?id=28630

            Bug ID: 28630
           Summary: [mingw] bfd/coffgen.c triggers "cast to pointer from
                    integer of different size"
                    [-Werror=int-to-pointer-cast]
           Product: binutils
           Version: 2.38 (HEAD)
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: binutils
          Assignee: unassigned at sourceware dot org
          Reporter: pexu at sourceware dot mail.kapsi.fi
  Target Milestone: ---

Hi.

The following compile error happens when __INTPTR_TYPE__ is not long int (e.g.
x86_64-linux-gnu and x86_64-w64-mingw32-gcc).

/usr/local/gcc-aarch64-build/src/binutils/bfd/coffgen.c: In function
'coff_print_symbol':
/usr/local/gcc-aarch64-build/src/binutils/bfd/coffgen.c:2221:9: error: cast to
pointer from integer of different size [-Werror=int-to-pointer-cast]
 2221 |         (char *) auxp->u.auxent.x_file.x_n.x_n.x_offset);
      |         ^

binutils/bfd/coffgen.c:
2218                   if (auxp->u.auxent.x_file.x_ftype)
2219                     fprintf (file, "ftype %d fname \"%s\"",
2220                              auxp->u.auxent.x_file.x_ftype,
2221                              (char *)
auxp->u.auxent.x_file.x_n.x_n.x_offset);

A crude fix would be to do `(char *) (bfd_hostptr_t)' and it solves this issue.
 However I wonder if that simply causes more troubles down the road since in
this particual example (mingw32) that involves narrowing and thus the stored
pointer might become invalid if it any of the MSBs are (silently) discarded.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

Reply via email to