36 lines
		
	
	
		
			638 B
		
	
	
	
		
			C++
		
	
	
	
			
		
		
	
	
			36 lines
		
	
	
		
			638 B
		
	
	
	
		
			C++
		
	
	
	
// 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 (...) {
 | 
						|
  }
 | 
						|
}
 | 
						|
 | 
						|
}
 |