http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47446
Summary: [x32] .quad instead of .long is used for address Product: gcc Version: 4.6.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target AssignedTo: unassig...@gcc.gnu.org ReportedBy: hjl.to...@gmail.com [hjl@gnu-6 tmp]$ cat x.i extern void abort (void); enum { __GCONV_OK = 0, __GCONV_NOCONV, __GCONV_NODB, __GCONV_NOMEM, __GCONV_EMPTY_INPUT, __GCONV_FULL_OUTPUT, __GCONV_ILLEGAL_INPUT, __GCONV_INCOMPLETE_INPUT, __GCONV_ILLEGAL_DESCRIPTOR, __GCONV_INTERNAL_ERROR }; int foo (int result) { int irreversible = 0; switch (result) { case __GCONV_ILLEGAL_INPUT: irreversible = -1L; break; case __GCONV_FULL_OUTPUT: irreversible = -2L; break; case __GCONV_INCOMPLETE_INPUT: irreversible = -3L; break; case __GCONV_EMPTY_INPUT: case __GCONV_OK: break; default: abort (); } return irreversible; } [hjl@gnu-6 tmp]$ /export/build/gnu/gcc-x32/release/usr/gcc-4.6.0-x32/bin/gcc -mx32 -O -c x.i /tmp/ccjRzjne.s: Assembler messages: /tmp/ccjRzjne.s:19: Error: cannot represent relocation type BFD_RELOC_64 in x32 mode /tmp/ccjRzjne.s:20: Error: cannot represent relocation type BFD_RELOC_64 in x32 mode /tmp/ccjRzjne.s:21: Error: cannot represent relocation type BFD_RELOC_64 in x32 mode /tmp/ccjRzjne.s:22: Error: cannot represent relocation type BFD_RELOC_64 in x32 mode /tmp/ccjRzjne.s:23: Error: cannot represent relocation type BFD_RELOC_64 in x32 mode /tmp/ccjRzjne.s:24: Error: cannot represent relocation type BFD_RELOC_64 in x32 mode /tmp/ccjRzjne.s:25: Error: cannot represent relocation type BFD_RELOC_64 in x32 mode /tmp/ccjRzjne.s:26: Error: cannot represent relocation type BFD_RELOC_64 in x32 mode [hjl@gnu-6 tmp]$