diff options
author | Alexandre Oliva <oliva@lsd.ic.unicamp.br> | 1999-09-18 18:06:20 +0000 |
---|---|---|
committer | Alexandre Oliva <oliva@gcc.gnu.org> | 1999-09-18 18:06:20 +0000 |
commit | 711b552c22af933cd3122dc0c9b5012e1cc1e705 (patch) | |
tree | a15ef930c11b7f684b06fd984d317aeda3a0fc8d | |
parent | 7cd33af0c56bd98b73b22e6312ab6e3e22cf2b73 (diff) | |
download | gcc-711b552c22af933cd3122dc0c9b5012e1cc1e705.zip gcc-711b552c22af933cd3122dc0c9b5012e1cc1e705.tar.gz gcc-711b552c22af933cd3122dc0c9b5012e1cc1e705.tar.bz2 |
* overload1.C: New test.
From-SVN: r29499
-rw-r--r-- | gcc/testsuite/g++.old-deja/g++.oliva/ChangeLog | 2 | ||||
-rw-r--r-- | gcc/testsuite/g++.old-deja/g++.oliva/overload1.C | 23 |
2 files changed, 25 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.old-deja/g++.oliva/ChangeLog b/gcc/testsuite/g++.old-deja/g++.oliva/ChangeLog index 0000a9f..4ab874d 100644 --- a/gcc/testsuite/g++.old-deja/g++.oliva/ChangeLog +++ b/gcc/testsuite/g++.old-deja/g++.oliva/ChangeLog @@ -1,5 +1,7 @@ 1999-09-18 Alexandre Oliva <oliva@lsd.ic.unicamp.br> + * overload1.C: New test. + * inline1.C: New test. 1999-08-25 Alexandre Oliva <oliva@dcc.unicamp.br> diff --git a/gcc/testsuite/g++.old-deja/g++.oliva/overload1.C b/gcc/testsuite/g++.old-deja/g++.oliva/overload1.C new file mode 100644 index 0000000..fd79dad --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.oliva/overload1.C @@ -0,0 +1,23 @@ +// Build don't link: + +// Copyright (C) 1999 Free Software Foundation + +// by Alexandre Oliva <oliva@lsd.ic.unicamp.br> +// Based on bug report by JDonner <jdonner@schedsys.com> + +struct foo { + static int bar(); // ERROR - candidate + void bar(int); // ERROR - candidate +}; + +/* gcc emits a hard error without -pedantic, and a warning with + -pedantic, even in bad1. */ +int (*ok1)() = foo::bar; // gets bogus error - XFAIL *-*-* +void (foo::*bad1)(int) = foo::bar; // ERROR - missing & + +int (*ok2)() = &foo::bar; // ok +void (*bad2)(int) = foo::bar; // ERROR - overload resolution fails + +void (foo::*ok3)(int) = &foo::bar; // ok +int (foo::*bad3)() = foo::bar; // ERROR - overload resolution fails + |