X-Git-Url: https://oss.titaniummirror.com/gitweb/?a=blobdiff_plain;f=gcc%2Ftestsuite%2Fg%2B%2B.old-deja%2Fg%2B%2B.other%2Foverload11.C;fp=gcc%2Ftestsuite%2Fg%2B%2B.old-deja%2Fg%2B%2B.other%2Foverload11.C;h=0000000000000000000000000000000000000000;hb=6fed43773c9b0ce596dca5686f37ac3fc0fa11c0;hp=fdd83ae220768ae32e416a1fdb79599023bb6e58;hpb=27b11d56b743098deb193d510b337ba22dc52e5c;p=msp430-gcc.git diff --git a/gcc/testsuite/g++.old-deja/g++.other/overload11.C b/gcc/testsuite/g++.old-deja/g++.other/overload11.C deleted file mode 100644 index fdd83ae2..00000000 --- a/gcc/testsuite/g++.old-deja/g++.other/overload11.C +++ /dev/null @@ -1,93 +0,0 @@ -// Build don't link: - -// Copyright (C) 1999 Free Software Foundation, Inc. -// Contributed by Nathan Sidwell 5 Sep 1999 - -// [over.match] 13.3 tells us where overload resolution occurs. -// [over.match.call] 13.3.1.1 says that in -// (...( postfix-expression )...) (expression-list) -// the postfix-expression must be the name of a function (amongst some other -// choices). This means comma and conditional exprs cannot be placed there. -// This clause is the only one I can find which bans -// (cond ? fna : fnb) (arglist) -// which would be a major headache to have to implement. -// [over.over] 13.4 tells us when the use of a function name w/o arguments is -// resolved to the address of a particular function. These are determined by -// the context of the function name, and it does allow more complicated primary -// expressions. - -// Using a naked function name is rather strange, we used to warn about it -// (rather inconsistently), but subsequent changes broke the warning. Make -// sure that doesn't happen again. - -// excess errors test - XFAIL - -void ovl (int); // ERROR - candidate -void ovl (float); // ERROR - candidate -void fn (int); -void fna (int); - -int main (int argc, char **argv) -{ - void (*ptr) (int); - void (*vptr) (); - - (ovl) (1); // ok - (&ovl) (1); // ERROR - not suitable for overload resolution - (ovl) (); // ERROR - no matching candidates - (&ovl) (); // ERROR - not suitable for overload resolution - - // 13.3.1.1 indicates that the following are errors -- the primary expression - // is not the name of a function. - (0, ovl) (1); // ERROR - not suitable for overload resolution - (0, &ovl) (1); // ERROR - not suitable for overload resolution - (argc ? ovl : ovl) (1); // ERROR - not suitable for overload resolution - (argc ? &ovl : &ovl) (1); // ERROR - not suitable for overload resolution - - (fn) (1); // ok - (&fn) (1); // ok (no overload resolution) - (0, fn) (1); // ok (no overload resolution) - (0, &fn) (1); // ok (no overload resolution) - (argc ? fna : fn) (1); // ok (no overload resolution) - (argc ? &fna : &fn) (1); // ok (no overload resolution) - - ptr = (ovl); // ok - ptr = (&ovl); // ok - // 13.4 indicates these are ok. - ptr = (0, ovl); // ok - ptr = (0, &ovl); // ok - ptr = (argc ? ovl : ovl); // ok - ptr = (argc ? &ovl : &ovl);// ok - - vptr = (ovl); // ERROR - no matching candidates - vptr = (&ovl); // ERROR - no matching candidates - vptr = (0, ovl); // ERROR - no matching candidates - vptr = (0, &ovl); // ERROR - no matching candidates - vptr = (argc ? ovl : ovl); // ERROR - no matching candidates - vptr = (argc ? &ovl : &ovl);// ERROR - no matching candidates - - ptr = (fn); - ptr = (&fn); - ptr = (0, fn); - ptr = (0, &fn); - ptr = (argc ? fna : fn); - ptr = (argc ? &fna : &fn); - - f; // WARNING - not a call - ovl; // ERROR - not suitable for overload - &ovl; // ERROR - not suitable for overload - (void)f; // ok - (void)ovl; // ERROR - not suitable for overload - (void)&ovl; // ERROR - not suitable for overload - static_cast(f); // ok - static_cast(ovl); // ERROR - not suitable for overload - static_cast(&ovl); // ERROR - not suitable for overload - ((void)1, f); // WARNING - not a call XFAIL - ((void)1, ovl); // ERROR - not suitable for overload - ((void)1, &ovl); // ERROR - not suitable for overload - (void)((void)1, f); // ok - (void)((void)1, ovl); // ERROR - not suitable for overload - (void)((void)1, &ovl); // ERROR - not suitable for overload - - return 0; -}