// RUN: %clang_cc1 -fsyntax-only -verify %s | |
// Various tests for -fno-exceptions | |
typedef __SIZE_TYPE__ size_t; | |
namespace test0 { | |
// rdar://problem/7878149 | |
class Foo { | |
public: | |
void* operator new(size_t x); | |
private: | |
void operator delete(void *x); | |
}; | |
void test() { | |
// Under -fexceptions, this does access control for the associated | |
// 'operator delete'. | |
(void) new Foo(); | |
} | |
} | |
namespace test1 { | |
void f() { | |
throw; // expected-error {{cannot use 'throw' with exceptions disabled}} | |
} | |
void g() { | |
try { // expected-error {{cannot use 'try' with exceptions disabled}} | |
f(); | |
} catch (...) { | |
} | |
} | |
} |