]> oss.titaniummirror.com Git - msp430-gcc.git/blobdiff - gcc/testsuite/g++.old-deja/g++.other/overload11.C
Imported gcc-4.4.3
[msp430-gcc.git] / gcc / testsuite / g++.old-deja / g++.other / overload11.C
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 (file)
index fdd83ae..0000000
+++ /dev/null
@@ -1,93 +0,0 @@
-// Build don't link:
-
-// Copyright (C) 1999 Free Software Foundation, Inc.
-// Contributed by Nathan Sidwell 5 Sep 1999 <nathan@acm.org>
-
-// [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<void>(f);          // ok
-  static_cast<void>(ovl);        // ERROR - not suitable for overload
-  static_cast<void>(&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;
-}