Mark test x3hardorder.cc as passing. Update many other tests to indicate their current failure reason. Fix the readme.
Index: gcc/testsuite/ChangeLog.pph 2011-10-13 Lawrence Crowl <cr...@google.com> * g++.dg/pph/README: Put z files in regular expression. * g++.dg/pph/x3hardorder.cc: Mark passing. * g++.dg/pph/c1limits-externalid.cc: Add triage comment. * g++.dg/pph/e4variables.cc: Likewise. * g++.dg/pph/x1tmplclass1.cc: Likewise. * g++.dg/pph/x1tmplclass2.cc: Likewise. * g++.dg/pph/x4keyed.cc: Likewise. * g++.dg/pph/x4keyex.cc: Likewise. * g++.dg/pph/x4keyno.cc: Likewise. * g++.dg/pph/x4resolve1.cc: Likewise. * g++.dg/pph/x4resolve2.cc: Likewise. * g++.dg/pph/x4structover1.cc: Likewise. * g++.dg/pph/x4tmplclass2.cc: Likewise. * g++.dg/pph/x4tmplfuncinln.cc: Likewise. * g++.dg/pph/x4tmplfuncninl.cc: Likewise. * g++.dg/pph/x6dynarray3.cc: Likewise. * g++.dg/pph/x6dynarray4.cc: Likewise. * g++.dg/pph/x6rtti.cc: Likewise. * g++.dg/pph/x7dynarray5.cc: Likewise. * g++.dg/pph/x7rtti.cc: Likewise. * g++.dg/pph/z4nontrivinit.cc: Likewise. * g++.dg/pph/z4tmplclass1.cc: Likewise. * g++.dg/pph/z4tmplclass2.cc: Likewise. * g++.dg/pph/z4tmplfuncinln.cc: Likewise. * g++.dg/pph/z4tmplfuncninl.cc: Likewise. Index: gcc/testsuite/g++.dg/pph/x4resolve1.cc =================================================================== --- gcc/testsuite/g++.dg/pph/x4resolve1.cc (revision 179942) +++ gcc/testsuite/g++.dg/pph/x4resolve1.cc (working copy) @@ -1,4 +1,6 @@ // pph asm xwant 03374 +// This test produces overload differences because the declaration and +// call orders are different between pph and textual parsing. #include "x0resolve1.h" #include "x0resolve2.h" Index: gcc/testsuite/g++.dg/pph/x4tmplfuncninl.cc =================================================================== --- gcc/testsuite/g++.dg/pph/x4tmplfuncninl.cc (revision 179942) +++ gcc/testsuite/g++.dg/pph/x4tmplfuncninl.cc (working copy) @@ -1,4 +1,6 @@ // pph asm xdiff 37887 +// xfail BOGUS DIFF LABEL + #include "x0tmplfuncninl1.h" #include "x0tmplfuncninl2.h" #include "a0tmplfuncninl_u.h" Index: gcc/testsuite/g++.dg/pph/z4tmplfuncninl.cc =================================================================== --- gcc/testsuite/g++.dg/pph/z4tmplfuncninl.cc (revision 179942) +++ gcc/testsuite/g++.dg/pph/z4tmplfuncninl.cc (working copy) @@ -1,4 +1,6 @@ // pph asm xdiff 05125 +// xfail BOGUS DUPFUN + #include "x0tmplfuncninl3.h" #include "x0tmplfuncninl4.h" #include "a0tmplfuncninl_u.h" Index: gcc/testsuite/g++.dg/pph/x6dynarray3.cc =================================================================== --- gcc/testsuite/g++.dg/pph/x6dynarray3.cc (revision 179942) +++ gcc/testsuite/g++.dg/pph/x6dynarray3.cc (working copy) @@ -1,5 +1,7 @@ // pph asm xdiff 30893 -// .Lnn labels emitted with different values of 'nn'. +// xfail BOGUS UNKNOWN +// Some branches seem to be missing. + #include "x5dynarray3.h" #include "a0integer.h" Index: gcc/testsuite/g++.dg/pph/x4keyno.cc =================================================================== --- gcc/testsuite/g++.dg/pph/x4keyno.cc (revision 179942) +++ gcc/testsuite/g++.dg/pph/x4keyno.cc (working copy) @@ -1,5 +1,6 @@ // { dg-xfail-if "BOGUS MERGE AUXVAR" { "*-*-*" } { "-fpph-map=pph.map" } } -// { dg-bogus "x4keyno.cc:11:1: error: redefinition of 'const char _ZTS5keyno" "" { xfail *-*-* } 0 } +// { dg-bogus "x4keyno.cc:12:1: error: redefinition of 'const char _ZTS5keyno" "" { xfail *-*-* } 0 } +// The variable for the typeinfo name for 'keyno' is duplicated. #include "x0keyno1.h" #include "x0keyno2.h" Index: gcc/testsuite/g++.dg/pph/x7dynarray5.cc =================================================================== --- gcc/testsuite/g++.dg/pph/x7dynarray5.cc (revision 179942) +++ gcc/testsuite/g++.dg/pph/x7dynarray5.cc (working copy) @@ -1,4 +1,5 @@ -// { dg-xfail-if "BOGUS" { "*-*-*" } { "-fpph-map=pph.map" } } +// { dg-xfail-if "BOGUS POSSIBLY DROPPING SYMBOLS " { "*-*-*" } { "-fpph-map=pph.map" } } + #include "x0dynarray4.h" #include "x6dynarray5.h" Index: gcc/testsuite/g++.dg/pph/README =================================================================== --- gcc/testsuite/g++.dg/pph/README (revision 179942) +++ gcc/testsuite/g++.dg/pph/README (working copy) @@ -1,7 +1,7 @@ The test names have the following convention on the prefix of their names. - [acdpxy][0-9]* + [acdpxyz][0-9]* a - auxillary headers c - positive tests for C-level headers and sources Index: gcc/testsuite/g++.dg/pph/x4resolve2.cc =================================================================== --- gcc/testsuite/g++.dg/pph/x4resolve2.cc (revision 179942) +++ gcc/testsuite/g++.dg/pph/x4resolve2.cc (working copy) @@ -1,4 +1,6 @@ // pph asm xwant 37643 +// This test produces overload differences because the declaration and +// call orders are different between pph and textual parsing. #include "x0resolve2.h" #include "x0resolve1.h" Index: gcc/testsuite/g++.dg/pph/x6dynarray4.cc =================================================================== --- gcc/testsuite/g++.dg/pph/x6dynarray4.cc (revision 179942) +++ gcc/testsuite/g++.dg/pph/x6dynarray4.cc (working copy) @@ -1,4 +1,6 @@ -// { dg-xfail-if "BOGUS" { "*-*-*" } { "-fpph-map=pph.map" } } +// { dg-xfail-if "BOGUS MERGING" { "*-*-*" } { "-fpph-map=pph.map" } } +// Too many failures to diagnose. + #include "x6dynarray5.h" #include <algorithm> Index: gcc/testsuite/g++.dg/pph/x1tmplclass1.cc =================================================================== --- gcc/testsuite/g++.dg/pph/x1tmplclass1.cc (revision 179942) +++ gcc/testsuite/g++.dg/pph/x1tmplclass1.cc (working copy) @@ -1,5 +1,7 @@ // pph asm xdiff 11432 -// Assembly differences seem to be due to the order in which the -// symbols in the template hash tables are emitted. +// xfail BOGUS MISSVAR +// The assembly is missing a template class static member variable +// base<char>::variable instantiated in a prior pph file. + #include "x0tmplclass13.h" #include "a0tmplclass1_u.h" Index: gcc/testsuite/g++.dg/pph/c1limits-externalid.cc =================================================================== --- gcc/testsuite/g++.dg/pph/c1limits-externalid.cc (revision 179942) +++ gcc/testsuite/g++.dg/pph/c1limits-externalid.cc (working copy) @@ -1,6 +1,8 @@ +/* { dg-timeout 15 } */ +/* { dg-xfail-if "BOGUS MERGE HUGE SYMBOL LIST" { *-*-* } { "-fpph-map=pph.map" } } */ /* FIXME pph - The following timeout may cause failures on slow targets. In general it takes no longer than a couple of seconds to compile - this test, but the new merging code is having trouble with this. */ -/* { dg-timeout 15 } */ -/* { dg-xfail-if "MERGE INFINITE LOOP" { *-*-* } { "-fpph-map=pph.map" } } */ + this test, but the new merging code is having trouble with this. + Probably due to an O(n^2) merging algorithm. */ + #include "c0limits-externalid.h" Index: gcc/testsuite/g++.dg/pph/x7rtti.cc =================================================================== --- gcc/testsuite/g++.dg/pph/x7rtti.cc (revision 179942) +++ gcc/testsuite/g++.dg/pph/x7rtti.cc (working copy) @@ -1,5 +1,5 @@ // FIXME pph: This should be a { dg=do run } (with '=' replaced by '-') -// { dg-xfail-if "BOGUS" { "*-*-*" } { "-fpph-map=pph.map" } } +// { dg-xfail-if "BOGUS POSSIBLE TYPE MISMERGE" { "*-*-*" } { "-fpph-map=pph.map" } } // { dg-bogus "x7rtti.cc:19:0: warning: .__STDC_IEC_559_COMPLEX__. redefined .enabled by default." "" { xfail *-*-* } 0 } // { dg-bogus "x7rtti.cc:19:0: warning: .__STDC_ISO_10646__. redefined .enabled by default." "" { xfail *-*-* } 0 } // { dg-bogus "x7rtti.cc:19:0: warning: .__STDC_IEC_559__. redefined .enabled by default." "" { xfail *-*-* } 0 } Index: gcc/testsuite/g++.dg/pph/x1tmplclass2.cc =================================================================== --- gcc/testsuite/g++.dg/pph/x1tmplclass2.cc (revision 179942) +++ gcc/testsuite/g++.dg/pph/x1tmplclass2.cc (working copy) @@ -1,5 +1,9 @@ // pph asm xdiff 37711 -// Assembly differences seem to be due to the order in which the -// symbols in the template hash tables are emitted. +// xfail BOGUS MISSVAR , ORDER +// The assembly is missing a template class static member variable +// base<char>::variable instantiated in a prior pph file. +// Explicit specializations base<short>::variable and base<double>::d_variable +// appear in a different order. + #include "x0tmplclass23.h" #include "a0tmplclass2_u.h" Index: gcc/testsuite/g++.dg/pph/z4tmplclass1.cc =================================================================== --- gcc/testsuite/g++.dg/pph/z4tmplclass1.cc (revision 179942) +++ gcc/testsuite/g++.dg/pph/z4tmplclass1.cc (working copy) @@ -1,6 +1,6 @@ // pph asm xdiff 10444 -// Assembly differences seem to be due to the order in which the -// symbols in the template hash tables are emitted. +// xfail BOGUS DUPVAR DUPFUNC + #include "x0tmplclass13.h" #include "x0tmplclass14.h" #include "a0tmplclass1_u.h" Index: gcc/testsuite/g++.dg/pph/x4keyex.cc =================================================================== --- gcc/testsuite/g++.dg/pph/x4keyex.cc (revision 179942) +++ gcc/testsuite/g++.dg/pph/x4keyex.cc (working copy) @@ -1,5 +1,5 @@ // pph asm xdiff 32642 -// xfail BOGUS LABELS +// xfail BOGUS MERGE LABELS // // This test case fails to compare because LFB/LFE labels are different. // Index: gcc/testsuite/g++.dg/pph/x4tmplfuncinln.cc =================================================================== --- gcc/testsuite/g++.dg/pph/x4tmplfuncinln.cc (revision 179942) +++ gcc/testsuite/g++.dg/pph/x4tmplfuncinln.cc (working copy) @@ -1,5 +1,6 @@ // pph asm xdiff 16845 -// duplicate function emission +// xfail BOGUS DUPFUN +// double function1<double>(double) is duplicated #include "x0tmplfuncinln1.h" #include "x0tmplfuncinln2.h" Index: gcc/testsuite/g++.dg/pph/z4tmplfuncinln.cc =================================================================== --- gcc/testsuite/g++.dg/pph/z4tmplfuncinln.cc (revision 179942) +++ gcc/testsuite/g++.dg/pph/z4tmplfuncinln.cc (working copy) @@ -1,4 +1,6 @@ // pph asm xdiff 65129 +// xfail BOGUS DUPFUNC + #include "x0tmplfuncinln3.h" #include "x0tmplfuncinln4.h" #include "a0tmplfuncinln_u.h" Index: gcc/testsuite/g++.dg/pph/z4tmplclass2.cc =================================================================== --- gcc/testsuite/g++.dg/pph/z4tmplclass2.cc (revision 179942) +++ gcc/testsuite/g++.dg/pph/z4tmplclass2.cc (working copy) @@ -1,6 +1,6 @@ // pph asm xdiff 59292 -// Assembly differences seem to be due to the order in which the -// symbols in the template hash tables are emitted. +// xfail BOGUS DUPVAR DUPFUNC + #include "x0tmplclass23.h" #include "x0tmplclass24.h" #include "a0tmplclass2_u.h" Index: gcc/testsuite/g++.dg/pph/x4structover1.cc =================================================================== --- gcc/testsuite/g++.dg/pph/x4structover1.cc (revision 179942) +++ gcc/testsuite/g++.dg/pph/x4structover1.cc (working copy) @@ -1,5 +1,6 @@ -// { dg-xfail-if "BOGUS" { "*-*-*" } { "-fpph-map=pph.map" } } - +// { dg-xfail-if "BOGUS TYPE MERGE" { "*-*-*" } { "-fpph-map=pph.map" } } +// This test fails because even if we merge type decls, +// we are not merging the corresponding types. #include "x0structover1.h" #include "x0structover2.h" Index: gcc/testsuite/g++.dg/pph/z4nontrivinit.cc =================================================================== --- gcc/testsuite/g++.dg/pph/z4nontrivinit.cc (revision 179942) +++ gcc/testsuite/g++.dg/pph/z4nontrivinit.cc (working copy) @@ -1,3 +1,5 @@ // pph asm xdiff 65039 +// xfail BOGUS DUPVAR + #include "x0nontrivinit1.h" #include "x0nontrivinit2.h" Index: gcc/testsuite/g++.dg/pph/e4variables.cc =================================================================== --- gcc/testsuite/g++.dg/pph/e4variables.cc (revision 179942) +++ gcc/testsuite/g++.dg/pph/e4variables.cc (working copy) @@ -1,4 +1,6 @@ // pph asm xdiff 26015 +// xfail BOGUS DUPVAR + #include "c0variables3.h" #include "c0variables4.h" Index: gcc/testsuite/g++.dg/pph/x4keyed.cc =================================================================== --- gcc/testsuite/g++.dg/pph/x4keyed.cc (revision 179942) +++ gcc/testsuite/g++.dg/pph/x4keyed.cc (working copy) @@ -1,5 +1,6 @@ // { dg-xfail-if "BOGUS MERGE AUXVAR" { "*-*-*" } { "-fpph-map=pph.map" } } -// { dg-bogus "x4keyed.cc:13:1: error: redefinition of 'const char _ZTS5keyed ..'" "" { xfail *-*-* } 0 } +// { dg-bogus "x4keyed.cc:14:1: error: redefinition of 'const char _ZTS5keyed ..'" "" { xfail *-*-* } 0 } +// The variable for the typeinfo name for 'keyed' is duplicated. #include "x0keyed1.h" #include "x0keyed2.h" Index: gcc/testsuite/g++.dg/pph/x3hardorder.cc =================================================================== --- gcc/testsuite/g++.dg/pph/x3hardorder.cc (revision 179942) +++ gcc/testsuite/g++.dg/pph/x3hardorder.cc (working copy) @@ -1,5 +1,6 @@ -//pph asm xdiff 28345 -//Ordering of globals is different +// pph asm xwant 28345 +// The test will inherently have a different assembly order +// because the PPH file is read before any parsing. #include "x3hardorder2.h" Index: gcc/testsuite/g++.dg/pph/x4tmplclass2.cc =================================================================== --- gcc/testsuite/g++.dg/pph/x4tmplclass2.cc (revision 179942) +++ gcc/testsuite/g++.dg/pph/x4tmplclass2.cc (working copy) @@ -1,6 +1,8 @@ // pph asm xdiff 49533 -// Assembly differences seem to be due to the order in which the -// symbols in the template hash tables are emitted. +// xfail BOGUS DUPFUN +// base<short>::dynamic_early_inline() and base<short>::static_early_inline() +// are duplicated. + #include "x0tmplclass21.h" #include "x0tmplclass22.h" #include "a0tmplclass2_u.h" Index: gcc/testsuite/g++.dg/pph/x6rtti.cc =================================================================== --- gcc/testsuite/g++.dg/pph/x6rtti.cc (revision 179942) +++ gcc/testsuite/g++.dg/pph/x6rtti.cc (working copy) @@ -1,5 +1,4 @@ -// { dg-xfail-if "BOGUS" { "*-*-*" } { "-fpph-map=pph.map" } } - +// { dg-xfail-if "BOGUS POSSIBLE TYPE MISMERGE" { "*-*-*" } { "-fpph-map=pph.map" } } //FIXME We should make this a run test. #include "x5rtti1.h" -- This patch is available for review at http://codereview.appspot.com/5271044