Home | History | Annotate | Download | only in test
      1 //===---------------------- catch_function_02.cpp -------------------------===//
      2 //
      3 //                     The LLVM Compiler Infrastructure
      4 //
      5 // This file is dual licensed under the MIT and the University of Illinois Open
      6 // Source Licenses. See LICENSE.TXT for details.
      7 //
      8 //===----------------------------------------------------------------------===//
      9 
     10 // Can you have a catch clause of array type that catches anything?
     11 // UNSUPPORTED: libcxxabi-no-exceptions
     12 
     13 #include <cassert>
     14 
     15 void f() {}
     16 
     17 int main()
     18 {
     19     typedef void Function();
     20     try
     21     {
     22         throw f;     // converts to void (*)()
     23         assert(false);
     24     }
     25     catch (Function b)  // equivalent to void (*)()
     26     {
     27     }
     28     catch (...)
     29     {
     30         assert(false);
     31     }
     32 }
     33