blob: dae6e6aa7816021dc7f17f048f27a114bf96e610 [file] [log] [blame]
Howard Hinnantc325fa72012-02-01 21:01:52 +00001//===--------------------- catch_pointer_nullptr.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#include <cassert>
11
12#if __has_feature(cxx_nullptr)
13
14void test1()
15{
16 try
17 {
18 throw nullptr;
19 assert(false);
20 }
21 catch (int*)
22 {
23 }
24 catch (long*)
25 {
26 assert(false);
27 }
28}
29
30struct A {};
31
32void test2()
33{
34 try
35 {
36 throw nullptr;
37 assert(false);
38 }
39 catch (A*)
40 {
41 }
42 catch (int*)
43 {
44 assert(false);
45 }
46}
47
48#else
49
50void test1()
51{
52}
53
54void test2()
55{
56}
57
58#endif
59
60int main()
61{
62 test1();
63 test2();
64}