Here is the result of my little investigation on gcc testsuite
failures.
abi/mangle4: template function definition. fail in
afcxx-anonymous
abi/mangle8:
template method operator() definition.
fail in afcxx-disambiguate
abi/mangle12:
template function definition.
fail in afcxx-disambiguate
abi/mangle14:
abi/mangle15:
template
fail in afcxx-anonymous
compat/init-ref2_y:
operator && doesn't work.
fail in afcxx-disambiguate
eh/cleanup1:
declaration of 4000 class attributes,
sglr error: 'too many ambiguities'.
expr/static_cast3:
inheritance with a parameterized class.
fail in afcxx-disambiguate
inherit/access3:
template method definition.
fail in afcxx-disambiguate
init/addr-const1:
use of static and non-static class attribute in a struct constructor.
fail in afcxx-disambiguate
init/array11:
C code, simple cast with a typedef type.
fail in afcxx-disambiguate
init/array6:
char arr [2][4] = { "one", "two" };
doesn't parse.
fail in afcxx-disambiguate
init/copy2:
init/copy3:
struct s {};
s a = s ();
fail in afcxx-disambiguate
init/elide1:
operator &&.
init/empty1:
strange base class initialization.
fail in afcxx-disambiguate
init/init-ref2:
operator &&.
init/new9:
template use.
fail in afcxx-disambiguate
init/ref2:
same as init/copy2.
lookup/disamb1:
call to a method in a base class.
lookup/koenig2:
same as abi/mangle8.
lookup/scoped3:
same as lookup/disamb1.
lookup/template1:
basic template function (parametrized by an int) use.
opt/cfg2:
fail in afcxx-disambiguate
opt/cfg3:
opt/cleanup1:
opt/const1:
these tests are too big, i don't want to investiguate further.
opt/inline1:
struct A {};
template <typename, typename> struct B {};
typedef B <int, int> C;
fail in afcxx-disambiguate
opt/local1:
declaration of a pure virtual method in a inner class.
fail in afcxx-disambiguate
opt/mmx1:
opt/nrv1:
opt/nrv2:
operator &&.
opt/pr6713:
too big test, too many problems.
opt/reload1:
call to 'operator <<' with 1 argument.
fail in afcxx-disambiguate
opt/stack1:
opt/unroll1:
too big, too many problems.
opt/static2:
similar to lookup/template1.
*******************
These piece of code are valid, but fail with parse-cxx. They are
related to gcc failing tests.
***
int i = 1 && 1;
***
int f();
int a = f ();
// or
struct s {};
s a = s ();
***
char a[2][4] = { "one", "two" };
***
// Call to a method in a base class.
struct A
{
void f();
};
struct C : public A
{
void g() { f(); };
};
***
// Declaration of a pure virtual method in a inner class.
struct O {
struct I { virtual bool f() = 0; };
};
***
// Call to 'operator <<' with 1 argument.
struct A
{
void operator << (int s) {}
void f() { return operator << (0); }
};
***
struct A {};
struct B {
B(int, const A&);
};
B t(1, A());
***
// Strange base class initialization.
class a {};
class c : a { c() : a(a()) {} };
***
struct A {};
template <typename, typename> struct B {};
typedef B <int, int> C;
***
template <class T> struct a {};
struct b : a<int> {};
--
Les trous noirs sont les endroits ou Dieu divisa par zero.