text: //===---------------------- catch_array_01.cpp ----------------------------===//
  //
  //                     The LLVM Compiler Infrastructure
  //
  // This file is dual licensed under the MIT and the University of Illinois Open
  // Source Licenses. See LICENSE.TXT for details.
  //
  //===----------------------------------------------------------------------===//
  
  // Can you have a catch clause of array type that catches anything?
  
  
  // GCC incorrectly allows array types to be caught by reference.
  // See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69372
  // XFAIL: gcc
  
  #include <cassert>
  
  int main()
  {
      typedef char Array[4];
      Array a = {'H', 'i', '!', 0};
      try
      {
          throw a;  // converts to char*
          assert(false);
      }
      catch (Array& b)  // can't catch char*
      {
          assert(false);
      }
      catch (...)
      {
      }
  }
  