Bug 36285 - gcc.dg/compat/struct-by-value-xxx improper test for AVR target
Summary: gcc.dg/compat/struct-by-value-xxx improper test for AVR target
Status: RESOLVED FIXED
Alias: None
Product: gcc
Classification: Unclassified
Component: testsuite (show other bugs)
Version: 4.4.0
: P3 normal
Target Milestone: 4.4.0
Assignee: Not yet assigned to anyone
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-05-20 22:59 UTC by Andy Hutchinson
Modified: 2008-06-10 15:43 UTC (History)
3 users (show)

See Also:
Host: i686-pc-linux-gnu
Target: avr-unknown-none
Build:
Known to work:
Known to fail:
Last reconfirmed:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Andy Hutchinson 2008-05-20 22:59:56 UTC
Most of the 21 variants of this test fail for AVR target. Issue noted appears to be excessive memory need and thus failure at link time. For example.

PASS: gcc.dg/compat/struct-by-value-11 c_compat_y_tst.o compile
Executing on host: /home/hutchia/Desktop/awhconf/gcc/xgcc -B/home/hutchia/Desktop/awhconf/gcc/ c_compat_main_tst.o c_compat_x_tst.o c_compat_y_tst.o    -DSTACK_SIZE=2048 -DNO_TRAMPOLINES -fno-show-column  -DSIGNAL_SUPPRESS -mmcu=atmega128  /home/hutchia/Desktop/dejagnuboards/exit.c -Wl,-u,vfprintf -lprintf_flt -Wl,-Tbss=0x802000,--defsym=__heap_end=0x80ffff  -lm   -o gcc-dg-compat-struct-by-value-11-01    (timeout = 300)
/home/hutchia/local/avr/lib/gcc/avr/4.4.0/../../../../avr/bin/ld: gcc-dg-compat-struct-by-value-11-01 section .text will not fit in region text
/home/hutchia/local/avr/lib/gcc/avr/4.4.0/../../../../avr/bin/ld: region text overflowed by 353496 bytes
compiler exited with status 1
output is:
/home/hutchia/local/avr/lib/gcc/avr/4.4.0/../../../../avr/bin/ld: gcc-dg-compat-struct-by-value-11-01 section .text will not fit in region text
/home/hutchia/local/avr/lib/gcc/avr/4.4.0/../../../../avr/bin/ld: region text overflowed by 353496 bytes
Comment 1 Andy Hutchinson 2008-06-01 01:02:18 UTC
I have reduced number of failures slightly by setting higher optimisation and
skipping complex int using 

set COMPAT_SKIPS [list {VA} {COMPLEX_INT}] 
set COMPAT_OPTIONS [list [list {-Os -mcall-prologues} {-Os -mcall-prologues}]] 

But complex float, double and long double are not avoidable and taking way too much code size to link.

Additionally, there appears to be no way of Skipping these test or even marking xfail for the link/run stages.




Comment 2 Andy Hutchinson 2008-06-09 22:49:21 UTC
Subject: Bug 36285

Author: hutchinsonandy
Date: Mon Jun  9 22:48:37 2008
New Revision: 136604

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=136604
Log:
PR testsuite/36285
* gcc.dg/compat/struct-return-10_y.c: Remove test_va.
* gcc.dg/compat/vector-defs.h: Add check for availability of 8 byte double.
* gcc.dg/compat/struct-layout-1_test.h: Change bitfield to match integer size.

Modified:
    trunk/gcc/testsuite/ChangeLog
    trunk/gcc/testsuite/gcc.dg/compat/struct-layout-1_test.h
    trunk/gcc/testsuite/gcc.dg/compat/struct-return-10_y.c
    trunk/gcc/testsuite/gcc.dg/compat/vector-defs.h

Comment 3 Eric Weddington 2008-06-10 15:43:10 UTC
Fixed for 4.4.0.
Comment 4 Andy Hutchinson 2008-07-02 22:32:02 UTC
Subject: Bug 36285

Author: hutchinsonandy
Date: Wed Jul  2 22:31:11 2008
New Revision: 137396

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=137396
Log:
PR testsuite/36285
* gcc.dg/compat/struct-by-value-16_x.c: Move some tests to new file to reduce code size.
* gcc.dg/compat/struct-by-value-16_y.c: Ditto.
* gcc.dg/compat/struct-by-value-16a_main.c: New file.
* gcc.dg/compat/struct-by-value-16a_x.c: Ditto.
* gcc.dg/compat/struct-by-value-16a_y.c: Ditto.
* gcc.dg/compat/struct-by-value-17_x.c: Move some tests to new file to reduce code size.
* gcc.dg/compat/struct-by-value-17_y.c: Ditto.
* gcc.dg/compat/struct-by-value-17a_main.c: New file.
* gcc.dg/compat/struct-by-value-17a_x.c: Ditto.
* gcc.dg/compat/struct-by-value-17a_y.c: Ditto.
* gcc.dg/compat/struct-by-value-18_x.c: Move some tests to new file to reduce code size.
* gcc.dg/compat/struct-by-value-18_y.c: Ditto.
* gcc.dg/compat/struct-by-value-18a_main.c: New file.
* gcc.dg/compat/struct-by-value-18a_x.c: Ditto.
* gcc.dg/compat/struct-by-value-18a_y.c: Ditto.

Added:
    trunk/gcc/testsuite/gcc.dg/compat/struct-by-value-16a_main.c
    trunk/gcc/testsuite/gcc.dg/compat/struct-by-value-16a_x.c
    trunk/gcc/testsuite/gcc.dg/compat/struct-by-value-16a_y.c
    trunk/gcc/testsuite/gcc.dg/compat/struct-by-value-17a_main.c
    trunk/gcc/testsuite/gcc.dg/compat/struct-by-value-17a_x.c
    trunk/gcc/testsuite/gcc.dg/compat/struct-by-value-17a_y.c
    trunk/gcc/testsuite/gcc.dg/compat/struct-by-value-18a_main.c
    trunk/gcc/testsuite/gcc.dg/compat/struct-by-value-18a_x.c
    trunk/gcc/testsuite/gcc.dg/compat/struct-by-value-18a_y.c
Modified:
    trunk/gcc/testsuite/ChangeLog
    trunk/gcc/testsuite/gcc.dg/compat/struct-by-value-16_x.c
    trunk/gcc/testsuite/gcc.dg/compat/struct-by-value-16_y.c
    trunk/gcc/testsuite/gcc.dg/compat/struct-by-value-17_x.c
    trunk/gcc/testsuite/gcc.dg/compat/struct-by-value-17_y.c
    trunk/gcc/testsuite/gcc.dg/compat/struct-by-value-18_x.c
    trunk/gcc/testsuite/gcc.dg/compat/struct-by-value-18_y.c