http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52611
Steven Bosscher <steven at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Known to work| |4.8.0 Known to fail| |4.6.3 --- Comment #2 from Steven Bosscher <steven at gcc dot gnu.org> 2012-03-18 16:13:31 UTC --- Reduced test case: $ ./xgcc --version xgcc (GCC) 4.6.3 Copyright (C) 2011 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. $ $ $ ./xgcc -B. -S -v pr52611.i Reading specs from ./specs COLLECT_GCC=./xgcc COLLECT_LTO_WRAPPER=./lto-wrapper Target: ia64-hp-hpux11.31 Configured with: ../gcc-4.6.3/configure --with-mpfr=/opt/cfarm/mpfr-2.3.1 --with-gmp=/opt/cfarm/gmp-4.2.4 --with-mpc=/opt/cfarm/mpc-0.8 --enable-languages=c --disable-libmudflap --disable-libssp --disable-libitm --disable-lto --disable-bootstrap --target=ia64-hp-hpux11.31 --enable-checking Thread model: posix gcc version 4.6.3 (GCC) COLLECT_GCC_OPTIONS='-B' '.' '-S' '-v' ./cc1 -fpreprocessed pr52611.i -quiet -dumpbase pr52611.i -auxbase pr52611 -version -o pr52611.s GNU C (GCC) version 4.6.3 (ia64-hp-hpux11.31) compiled by GNU C version 4.3.2, GMP version 4.2.4, MPFR version 2.3.1, MPC version 0.8 GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096 GNU C (GCC) version 4.6.3 (ia64-hp-hpux11.31) compiled by GNU C version 4.3.2, GMP version 4.2.4, MPFR version 2.3.1, MPC version 0.8 GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096 Compiler executable checksum: b14f6f9b99e71d9e506f7502606725db pr52611.i: In function ‘foo’: pr52611.i:5:1: error: invalid types in nop conversion UINT64 void * D.1263 = (UINT64) x; pr52611.i:5:1: internal compiler error: verify_gimple failed Please submit a full bug report, with preprocessed source if appropriate. See <http://gcc.gnu.org/bugs.html> for instructions. $ $ $ cat pr52611.i typedef void *PTR64 __attribute__((mode(DI))); typedef unsigned int UINT64 __attribute__((__mode__(__DI__))); UINT64 foo (void *x) { return (UINT64)(PTR64)x; } I cannot reproduce this with trunk of today (r185505).