Port-vax archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Silly gcc bugs


While trying to compile devel/pkg-config, I saw lots of problems like:

gchecksum.c: In function 'sha512_sum_init':
gchecksum.c:1122: warning: integer constant is too large for 'long' type
gchecksum.c:1123: warning: integer constant is too large for 'long' type

sha512_sum_init is of type Sha512sum, which is guint64, which is supposedly guaranteed to be 64 bits. However, the compiler doesn't agree. Changing:

  sha512->H[0] = 0x6a09e667f3bcc908;
  sha512->H[0] = 0x6a09e667f3bcc908ULL;

makes it work. gcc bug?

This, by the way, is gcc 4.1.3 on NetBSD 6.1.5 since gcc 4.8, AFAIK, is not yet producing code natively.

Even after fixing that, though, compilation fails in the same file:

gchecksum.c: In function 'sha512_transform':
gchecksum.c:1250: error: insn does not satisfy its constraints:
(insn 516 457 479 2 (set (reg:SI 0 %r0)
        (reg/f:SI 17 virtual-stack-vars)) 16 {movsi_2} (nil)
gchecksum.c:1250: internal compiler error: in reload_cse_simplify_operands, at postreload.c:393



Home | Main Index | Thread Index | Old Index