iOutput of "runtest --version": Expect version is 5.45 Tcl version is 8.5 Framework version is 1.5
Running the attached test file for the Gcc test suite (current gcc-5.0 development version) does not yield the expected result. What happens is that the c++ compiler generated an error message for each line in the test function (because it cannot resolve which version of the overloaded function to choose) followed by a number of notes. After about 50 errors, dejagnu simply stops processing any errors, i.e. it prints "PASS" for the first ~50 errors, then a "FAIL" for the remaining errors, e.g. ... PASS: foo.C (test for errors, line 105) PASS: foo.C (test for errors, line 106) FAIL: foo.C (test for errors, line 107) FAIL: foo.C (test for errors, line 108) FAIL: foo.C (test for errors, line 109) FAIL: foo.C (test for errors, line 110) PASS: foo.C (test for excess errors) (line number may not be accurate). In the gcc.log file, no errors appear for the the "FAIL" lines appear, although the compiler invocation from the log file does produce all error messages when run manually from a shell. There should also be "excess errors" for the notes from the compiler which *do* appear in the gcc.log. -- As this effect depends on how long the actual error message is, I assume there is some kind of internal buffer for the error output that gets overrun. So, I've replaced expect with this little script: #!/bin/sh /usr/bin/expect -c "match_max 10000000" $@ Although the script is really executed, match_max does not help at all. There must be a different reason for this behaviour. (I've already verified that match_max is indeed interpreted by expect; if replaced by some invalid string, it complais about that). Any ideas where the problem comes from and hot to fix it? -- P.S.: I cannot simply split the test files because there are hundreds of thousands of automatically generated tests, and running them all from separate files would take ages (even in batches of 50 per file). Ciao Dominik ^_^ ^_^ -- Dominik Vogt IBM Germany
/* { dg-do compile } */ /* { dg-options "-std=gnu++11" } */ typedef struct {} _v_signed_char; typedef struct { } _v_unsigned_char; typedef struct { } _v_signed_short; typedef struct { } _v_unsigned_short; typedef struct { } _v_signed_int; typedef struct { } _v_unsigned_int; typedef struct { } _v_signed_long_long; typedef struct { } _v_unsigned_long_long; typedef struct { } _v_bool_char; typedef struct { } _v_bool_short; typedef struct { } _v_bool_int; typedef struct { } _v_bool_long_long; typedef struct { } _v_double; signed foo(_v_signed_char, _v_signed_char) { } signed foo(_v_signed_char, _v_bool_char) { } signed foo(_v_bool_char, _v_bool_char) { } signed foo(_v_bool_char, _v_signed_char) { } signed foo(_v_bool_char, _v_unsigned_char) { } signed foo(_v_unsigned_char, _v_unsigned_char) { } signed foo(_v_unsigned_char, _v_bool_char) { } signed foo(_v_signed_short, _v_signed_short) { } signed foo(_v_signed_short, _v_bool_short) { } signed foo(_v_bool_short, _v_bool_short) { } signed foo(_v_bool_short, _v_signed_short) { } signed foo(_v_bool_short, _v_unsigned_short) { } signed foo(_v_unsigned_short, _v_unsigned_short) { } signed foo(_v_unsigned_short, _v_bool_short) { } signed foo(_v_signed_int, _v_signed_int) { } signed foo(_v_signed_int, _v_bool_int) { } signed foo(_v_bool_int, _v_bool_int) { } signed foo(_v_bool_int, _v_signed_int) { } signed foo(_v_bool_int, _v_unsigned_int) { } signed foo(_v_unsigned_int, _v_unsigned_int) { } signed foo(_v_unsigned_int, _v_bool_int) { } signed foo(_v_signed_long_long, _v_signed_long_long) { } signed foo(_v_signed_long_long, _v_bool_long_long) { } signed foo(_v_bool_long_long, _v_bool_long_long) { } signed foo(_v_bool_long_long, _v_signed_long_long) { } signed foo(_v_bool_long_long, _v_unsigned_long_long) { } signed foo(_v_unsigned_long_long, _v_unsigned_long_long) { } signed foo(_v_unsigned_long_long, _v_bool_long_long) { } signed foo(_v_double, _v_double) { } void test_builtin_sigs() { _v_unsigned_char u; _v_signed_char s; foo(u, s); /* { dg-error "" "" } */ foo(u, s); /* { dg-error "" "" } */ foo(u, s); /* { dg-error "" "" } */ foo(u, s); /* { dg-error "" "" } */ foo(u, s); /* { dg-error "" "" } */ foo(u, s); /* { dg-error "" "" } */ foo(u, s); /* { dg-error "" "" } */ foo(u, s); /* { dg-error "" "" } */ foo(u, s); /* { dg-error "" "" } */ foo(u, s); /* { dg-error "" "" } */ foo(u, s); /* { dg-error "" "" } */ foo(u, s); /* { dg-error "" "" } */ foo(u, s); /* { dg-error "" "" } */ foo(u, s); /* { dg-error "" "" } */ foo(u, s); /* { dg-error "" "" } */ foo(u, s); /* { dg-error "" "" } */ foo(u, s); /* { dg-error "" "" } */ foo(u, s); /* { dg-error "" "" } */ foo(u, s); /* { dg-error "" "" } */ foo(u, s); /* { dg-error "" "" } */ foo(u, s); /* { dg-error "" "" } */ foo(u, s); /* { dg-error "" "" } */ foo(u, s); /* { dg-error "" "" } */ foo(u, s); /* { dg-error "" "" } */ foo(u, s); /* { dg-error "" "" } */ foo(u, s); /* { dg-error "" "" } */ foo(u, s); /* { dg-error "" "" } */ foo(u, s); /* { dg-error "" "" } */ foo(u, s); /* { dg-error "" "" } */ foo(u, s); /* { dg-error "" "" } */ foo(u, s); /* { dg-error "" "" } */ foo(u, s); /* { dg-error "" "" } */ foo(u, s); /* { dg-error "" "" } */ foo(u, s); /* { dg-error "" "" } */ foo(u, s); /* { dg-error "" "" } */ foo(u, s); /* { dg-error "" "" } */ foo(u, s); /* { dg-error "" "" } */ foo(u, s); /* { dg-error "" "" } */ foo(u, s); /* { dg-error "" "" } */ foo(u, s); /* { dg-error "" "" } */ foo(u, s); /* { dg-error "" "" } */ foo(u, s); /* { dg-error "" "" } */ foo(u, s); /* { dg-error "" "" } */ foo(u, s); /* { dg-error "" "" } */ foo(u, s); /* { dg-error "" "" } */ foo(u, s); /* { dg-error "" "" } */ foo(u, s); /* { dg-error "" "" } */ foo(u, s); /* { dg-error "" "" } */ foo(u, s); /* { dg-error "" "" } */ foo(u, s); /* { dg-error "" "" } */ foo(u, s); /* { dg-error "" "" } */ foo(u, s); /* { dg-error "" "" } */ foo(u, s); /* { dg-error "" "" } */ /* no more errors are processed after here */ foo(u, s); /* { dg-error "" "" } */ foo(u, s); /* { dg-error "" "" } */ foo(u, s); /* { dg-error "" "" } */ foo(u, s); /* { dg-error "" "" } */ }
_______________________________________________ DejaGnu mailing list DejaGnu@gnu.org https://lists.gnu.org/mailman/listinfo/dejagnu