--- /dev/null
+// Bug: g++ doesn't see that A is a vbase of C.
+// Submitted by Jason Merrill <jason@cygnus.com>
+// Build don't link:
+
+struct A {
+ int i;
+ void f ();
+};
+
+struct B: public A { };
+struct C: public virtual B { };
+
+void g ()
+{
+ int C::*p = &A::i; // ERROR - conversion from vbase
+ void (C::*fp)() = &A::f; // ERROR - conversion from vbase
+}
--- /dev/null
+// Bug: g++ thinks that the i in g() shadows the parm from f()
+// Contributed by Jason Merrill <jason@cygnus.com>
+// Build don't link:
+
+void f (int i)
+{
+ struct A {
+ void g () {
+ int i;
+ }
+ };
+}
--- /dev/null
+// Bug: g++ checks certain non-virtual functions to see if they override
+// virtual functions.
+// Submitted by Jason Merrill <jason@cygnus.com>
+// Special g++ Options: -Woverloaded-virtual
+// Build don't link:
+
+struct A {
+ virtual void f (int);
+};
+
+struct B: public A {
+ static void f ();
+ void f (int);
+};
--- /dev/null
+// Bug: g++ forgets to instantiate A<int>
+// Contributed by Jason Merrill <jason@cygnus.com>
+// Build don't link:
+
+template <class T> struct A { };
+void f () throw (A<int>);