------- Additional Comments From bjoern dot m dot haase at web dot de 2005-01-05 19:47 ------- Hi, I have the impression that the origin of the bug is not in first line linked to a wrong assignment of types in libgcc2. I doubt whether the problem is not linked to a problem during reload. I.e. I assume that reload presently is no longer able to reload any long long objects properly for the avr target. This is something that used to work in 3.4.3. and seemingly also older revisions of head 4.0 up to about beginning of December. In order to confirm this, I have used a workaround by commenting out the code of the hand full of libgcc2 functions that caused the problems. I.e. I have modified them so that they essentially do nothing. You will have to remove 3 function bodies, IIRC. Of course this will result in compiler output that does not execute properly if these functions ever happen to be used. But at compile time a problem should never should show up. I.e. using empty functions in libgcc2 should never inhibit a proper reload. After building the compiler this way, I have started the test suite and observed about 150 regressions in comparison to 3.4.3. All of them showed up at compile time. They all issued an error message of the type /home/bmh/gnucvs/head/gcc/gcc/testsuite/gcc.c-torture/execute/961122-1.c:11 internal compiler error: in find_valid_class, at reload.c:719 When checking gcc-3.4.3, I have obtained a PASS for these test cases. Namely 961122-1.c compiles correctly with gcc-3.4.3. There are quite a number of files generating this error. All files that I have investigated had made use of long longs. If it helps, I will post a complete list of them. c-torture/execute/961122-1.c is a fairly typical example and I'd suggest to concentrate on it first, since it is also a fairly short test case. If I'm not making a mistake 961122-1.c does also does not make any use of the conversion functions that I had to mutilate in order to make avr-gcc bootstrap. I also have verified that gcc-3.4.3 indeed has made use of the full DI modes. I.e. 3.4.3 has generated code with 8 Byte - objects. Maybe one should rather look a bit closer at the changes in reload.c . Yours, Björn -- What |Removed |Added ---------------------------------------------------------------------------- CC| |bjoern dot m dot haase at | |web dot de http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18887