annotate gcc/testsuite/g++.old-deja/g++.jason/operator.C @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents 04ced10e8804
children 1830386684a0
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
111
kono
parents:
diff changeset
1 // { dg-do assemble }
kono
parents:
diff changeset
2 // { dg-options "" }
kono
parents:
diff changeset
3 // General test for operator overloading permissiveness.
kono
parents:
diff changeset
4
kono
parents:
diff changeset
5 typedef __SIZE_TYPE__ size_t;
kono
parents:
diff changeset
6
kono
parents:
diff changeset
7 struct A {
kono
parents:
diff changeset
8 int operator?:(int a, int b); // { dg-error "expected type-specifier" }
131
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
9 static int operator()(int a); // { dg-error "14:.static int A::operator\\(\\)\\(int\\). must be a nonstatic member function" }
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
10 static int operator+(A,A); // { dg-error "14:.static int A::operator\\+\\(A, A\\). must be either a non-static member function or a non-member function" }
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
11 int operator+(int a, int b = 1); // { dg-error "7:.int A::operator\\+\\(int, int\\). must have either zero or one argument" }
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
12 int operator++(char); // { dg-error "7:postfix .int A::operator\\+\\+\\(char\\). must have .int. as its argument" }
111
kono
parents:
diff changeset
13 void operator delete (void *);
kono
parents:
diff changeset
14 void operator delete (void *, unsigned long);
kono
parents:
diff changeset
15 };
kono
parents:
diff changeset
16
kono
parents:
diff changeset
17 struct B {
kono
parents:
diff changeset
18 void * operator new (size_t, void *);
131
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
19 int operator++(int = 0); // { dg-error "7:.int B::operator\\+\\+\\(int\\). cannot have default arguments" }
111
kono
parents:
diff changeset
20 int operator+ (int);
kono
parents:
diff changeset
21 void operator()();
kono
parents:
diff changeset
22 char * operator[](int);
kono
parents:
diff changeset
23 B * operator->();
kono
parents:
diff changeset
24 };
kono
parents:
diff changeset
25
131
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
26 int operator-(int a, int b); // { dg-error "5:.int operator-\\(int, int\\). must have an argument of class or enumerated type" }
111
kono
parents:
diff changeset
27
131
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
28 void * operator new (A a); // { dg-error ".operator new. takes type .size_t." }
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
29 void operator delete (A a); // { dg-error ".operator delete. takes type .void\\*. as first parameter" }
111
kono
parents:
diff changeset
30
kono
parents:
diff changeset
31 char * operator char * (int); // { dg-error "return type" "ret" }
131
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
32 // { dg-error "8:.operator char\\*\\*\\(int\\). must be a nonstatic member function" "mem" { target *-*-* } .-1 }