diff options
author | YamaArashi <shadow962@live.com> | 2016-01-06 01:47:28 -0800 |
---|---|---|
committer | YamaArashi <shadow962@live.com> | 2016-01-06 01:47:28 -0800 |
commit | be8b04496302184c6e8f04d6179f9c3afc50aeb6 (patch) | |
tree | 726e2468c0c07add773c0dbd86ab6386844259ae /gcc/testsuite/g++.old-deja/g++.jason/operator.C |
initial commit
Diffstat (limited to 'gcc/testsuite/g++.old-deja/g++.jason/operator.C')
-rwxr-xr-x | gcc/testsuite/g++.old-deja/g++.jason/operator.C | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.old-deja/g++.jason/operator.C b/gcc/testsuite/g++.old-deja/g++.jason/operator.C new file mode 100755 index 0000000..bd21e37 --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.jason/operator.C @@ -0,0 +1,31 @@ +// General test for operator overloading permissiveness. +// Build don't link: +// Special g++ Options: + +typedef __SIZE_TYPE__ size_t; + +struct A { + int operator?:(int a, int b); // WARNING - + static int operator()(int a); // ERROR - must be nonstatic + static int operator+(A,A); // ERROR - must be nonstatic + int operator+(int a, int b = 1); // ERROR - two errors on this line + int operator++(char); // ERROR - must take 'int' + void operator delete (void *); + void operator delete (void *, unsigned long); +}; + +struct B { + void * operator new (size_t, void *); + int operator++(int = 0); + int operator+ (int); + void operator()(); + char * operator[](int); + B * operator->(); +}; + +int operator-(int a, int b); // ERROR - no class argument + +void * operator new (A a); // ERROR - invalid first argument +void operator delete (A a); // ERROR - ditto + +char * operator char * (int); // ERROR - return value, nonmember |