* c-common.c (catenate_strings): New.
[official-gcc.git] / gcc / testsuite / g++.old-deja / g++.jason / operator.C
blob81c1e1dfecdceb0ac0a23632478b94c7102bda7b
1 // { dg-do assemble  }
2 // { dg-options "" }
3 // General test for operator overloading permissiveness.
5 typedef __SIZE_TYPE__ size_t;
7 struct A {
8   int operator?:(int a, int b);    // { dg-warning "" } 
9   static int operator()(int a);    // { dg-error "" } must be nonstatic
10   static int operator+(A,A);       // { dg-error "" } must be nonstatic
11   int operator+(int a, int b = 1); // { dg-error "" } two errors on this line
12   int operator++(char);            // { dg-error "" } must take 'int'
13   void operator delete (void *);   
14   void operator delete (void *, unsigned long); 
17 struct B {
18   void * operator new (size_t, void *);
19   int operator++(int = 0);
20   int operator+ (int);
21   void operator()();
22   char * operator[](int);
23   B * operator->();
26 int operator-(int a, int b);    // { dg-error "" } no class argument
28 void * operator new (A a);      // { dg-error "" } invalid first argument
29 void operator delete (A a);     // { dg-error "" } ditto
31 char * operator char * (int);   // { dg-error "" } return value, nonmember