1aafd08aa288da66805f97231e8c64020bc9d50c6Howard Hinnant//===---------------------- catch_array_02.cpp ----------------------------===// 2aafd08aa288da66805f97231e8c64020bc9d50c6Howard Hinnant// 3aafd08aa288da66805f97231e8c64020bc9d50c6Howard Hinnant// The LLVM Compiler Infrastructure 4aafd08aa288da66805f97231e8c64020bc9d50c6Howard Hinnant// 5aafd08aa288da66805f97231e8c64020bc9d50c6Howard Hinnant// This file is dual licensed under the MIT and the University of Illinois Open 6aafd08aa288da66805f97231e8c64020bc9d50c6Howard Hinnant// Source Licenses. See LICENSE.TXT for details. 7aafd08aa288da66805f97231e8c64020bc9d50c6Howard Hinnant// 8aafd08aa288da66805f97231e8c64020bc9d50c6Howard Hinnant//===----------------------------------------------------------------------===// 9aafd08aa288da66805f97231e8c64020bc9d50c6Howard Hinnant 10aafd08aa288da66805f97231e8c64020bc9d50c6Howard Hinnant// Can you have a catch clause of array type that catches anything? 11aafd08aa288da66805f97231e8c64020bc9d50c6Howard Hinnant 12aafd08aa288da66805f97231e8c64020bc9d50c6Howard Hinnant#include <cassert> 13aafd08aa288da66805f97231e8c64020bc9d50c6Howard Hinnant 14aafd08aa288da66805f97231e8c64020bc9d50c6Howard Hinnantint main() 15aafd08aa288da66805f97231e8c64020bc9d50c6Howard Hinnant{ 16aafd08aa288da66805f97231e8c64020bc9d50c6Howard Hinnant typedef char Array[4]; 17aafd08aa288da66805f97231e8c64020bc9d50c6Howard Hinnant Array a = {'H', 'i', '!', 0}; 18aafd08aa288da66805f97231e8c64020bc9d50c6Howard Hinnant try 19aafd08aa288da66805f97231e8c64020bc9d50c6Howard Hinnant { 20aafd08aa288da66805f97231e8c64020bc9d50c6Howard Hinnant throw a; // converts to char* 21aafd08aa288da66805f97231e8c64020bc9d50c6Howard Hinnant assert(false); 22aafd08aa288da66805f97231e8c64020bc9d50c6Howard Hinnant } 23aafd08aa288da66805f97231e8c64020bc9d50c6Howard Hinnant catch (Array b) // equivalent to char* 24aafd08aa288da66805f97231e8c64020bc9d50c6Howard Hinnant { 25aafd08aa288da66805f97231e8c64020bc9d50c6Howard Hinnant } 26aafd08aa288da66805f97231e8c64020bc9d50c6Howard Hinnant catch (...) 27aafd08aa288da66805f97231e8c64020bc9d50c6Howard Hinnant { 28aafd08aa288da66805f97231e8c64020bc9d50c6Howard Hinnant assert(false); 29aafd08aa288da66805f97231e8c64020bc9d50c6Howard Hinnant } 30aafd08aa288da66805f97231e8c64020bc9d50c6Howard Hinnant} 31