From-SVN: r24752
This commit is contained in:
Jason Merrill 1999-01-18 16:43:11 -05:00
parent b661835c07
commit d363b1f305
4 changed files with 72 additions and 0 deletions

View File

@ -0,0 +1,14 @@
// Submitted by Nathan Sidwell <nathan@acm.org>
// Bug: g++ was giving the wrong line number for statics.
// Special g++ Options: -w
class A
{
A(); // ERROR - private
~A(); // ERROR - private
};
static A a; // ERROR - here

View File

@ -0,0 +1,14 @@
// Submitted by Nathan Sidwell <nathan@acm.org>
// Bug: g++ wasn't listing candidates for a failed conversion.
void f(int, double); // ERROR - candidate
void f(double, int); // ERROR - candidate
void f(int); // ERROR - candidate
int
main ()
{
void (*ptr)(int, int);
ptr = &f; // ERROR - no match
}

View File

@ -0,0 +1,24 @@
// Submitted by Nathan Sidwell <nathan@acm.org>
// Bug: g++ was crashing after giving errors.
template<class T>
void connect_to_method(
T *receiver,
void (T::*method)())
{}
class Gtk_Base
{
public:
void expose();
void show();
void show(int);
Gtk_Base();
};
Gtk_Base::Gtk_Base()
{
connect_to_method(this,&show); // ERROR - invalid pmf expression
connect_to_method(this,&expose); // ERROR - invalid pmf expression
}

View File

@ -0,0 +1,20 @@
// Build don't link:
// Reported by Bruce Eckel <Bruce@EckelObjects.com>
// [temp.deduct.type]
// Make sure we treat <T> in the construct TT<T> as any type containing T.
template <class T> class C
{
};
template <class T, template <class> class TT> void f (TT<T *> &t)
{
}
int main ()
{
C<char *> c;
f(c);
}