> I suspect you have something like > > bool overflow_p = false; > double_int temp; > if (subtract_p) > temp = double_int_neg (b->data); > else > temp = b->data; > bool unsigned_p = UNSIGNED_FIXED_POINT_MODE_P (a->mode); > int i_f_bits = GET_MODE_IBIT (a->mode) + GET_MODE_FBIT (a->mode); > > but this won't work because it mixes declarations and code. > > This fixes it: > > bool overflow_p = false; > bool unsigned_p; > int i_f_bits; > double_int temp; > if (subtract_p) > temp = double_int_neg (b->data); > else > temp = b->data; > unsigned_p = UNSIGNED_FIXED_POINT_MODE_P (a->mode); > i_f_bits = GET_MODE_IBIT (a->mode) + GET_MODE_FBIT (a->mode); > Ok. That fixed it. But now I am stuck with a internal errror. The bug reports can be found at http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38124 http://sourceware.org/bugzilla/show_bug.cgi?id=7032 I had to file two bug reports since, the gcc guys think it is a problem with binutils. The binutils' maintainer thinks it is a problem with gcc! Any suggestions?