Bug#633469: ICE: gcc-4.6: ICE on armhf with traverso-0.49.2-3
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++;
}
}
Reply to: