gcc.c-torture/execute/float-floor.c depends on the target supporting an actual 64-bit double type. Since the type "double" in the avr target is actually a 32-bit float, the test always fails.
Created attachment 15045 [details] patch to allow target to set double type as unsupported with this patch, the target can simply add: set_board_info no_double 1 to its configuration file, and the tests that use the "double" type are marked as unsupported instead of failing. This way, only targets that want to skip these tests are affected and most targets will continue to run the tests as usual.
Created attachment 15054 [details] fix to float-floor.c Marking all tests that use double as unsupported is actually overkill. The avr target supports "4 byte doubles" (the same as floats) that allows it to pass most tests that use the double type. This patch fixes this test instead, which is the only test that fails from the gcc.c-torture/execute batch because of lack of 8 byte double support. The patch leaves the test as is for most targets, only changing it for targets whose sizeof(double) is 4 or less.
Confirmed on 4.3 - its always been bad. Patch will need to be posted. But it works.
Paulo, please send the patch from comment #2 to gcc-patches@gcc.gnu.org with an appropriate ChangeLog entry. Let me know if you need help with that.
Fixed 4.4 Revision: 136344 Author: hutchinsonandy Date: 7:46:07 PM, Tuesday, June 03, 2008 Message: PR/34880 * gcc.c-torture/execute/float-floor.c: Adjust test for 4 byte doubles. ---- Modified : /trunk/gcc/testsuite/ChangeLog Modified : /trunk/gcc/testsuite/gcc.c-torture/execute/float-floor.c