Package: g++-4.6 Version: 4.6.1-2 Severity: important Hi,
g++ fails with an ICE on package traverso on armhf: http://buildd.debian-ports.org/status/fetch.php?pkg=traverso&arch=armhf&ver=0.49.2-3&stamp=1307331580 Attached is the smallest trimmed down file that is able to reproduce the ICE: $ g++-4.6 -O2 -c memops_testcase.cpp -o memops_testcase.o memops_testcase.cpp: In function ‘void sample_move_d32u24_sS(char*, audio_sample_t*, long unsigned int, long unsigned int, dither_state_t*)’: memops_testcase.cpp:28:1: internal compiler error: in get_arm_condition_code, at config/arm/arm.c:17152 Please submit a full bug report, with preprocessed source if appropriate. See <file:///usr/share/doc/gcc-4.6/README.Bugs> for instructions. Regards Konstantinos
typedef float audio_sample_t; typedef struct { unsigned int depth; float rm1; unsigned int idx; float e[8]; } dither_state_t; void sample_move_d32u24_sS (char *dst, audio_sample_t *src, unsigned long nsamples, unsigned long dst_skip, dither_state_t*) { long long y; while (nsamples--) { y = (long long)(*src * 8388608.0f) << 8; if (y > 2147483647) { *((int *) dst) = 2147483647; } else if (y < (-2147483647 - 1)) { *((int *) dst) = (-2147483647 - 1); } else { *((int *) dst) = (int)y; } dst += dst_skip; src++; } }