1 // RUN: %clang_cc1 -fsyntax-only -verify %s
2
3 // Various tests for -fno-exceptions
4
5 typedef __SIZE_TYPE__ size_t;
6
7 namespace test0 {
8 // rdar://problem/7878149
9 class Foo {
10 public:
11 void* operator new(size_t x);
12 private:
13 void operator delete(void *x);
14 };
15
test()16 void test() {
17 // Under -fexceptions, this does access control for the associated
18 // 'operator delete'.
19 (void) new Foo();
20 }
21 }
22
23 namespace test1 {
f()24 void f() {
25 throw; // expected-error {{cannot use 'throw' with exceptions disabled}}
26 }
27
g()28 void g() {
29 try { // expected-error {{cannot use 'try' with exceptions disabled}}
30 f();
31 } catch (...) {
32 }
33 }
34
35 }
36