forked from OSchip/llvm-project
				
			
		
			
				
	
	
		
			43 lines
		
	
	
		
			595 B
		
	
	
	
		
			C++
		
	
	
	
			
		
		
	
	
			43 lines
		
	
	
		
			595 B
		
	
	
	
		
			C++
		
	
	
	
// RUN: %clang_cc1 -x c++-header -emit-pch %s -o %t
 | 
						|
// RUN: %clang_cc1 -include-pch %t -fsyntax-only -verify %s
 | 
						|
 | 
						|
// expected-no-diagnostics
 | 
						|
 | 
						|
#ifndef HEADER_INCLUDED
 | 
						|
#define HEADER_INCLUDED
 | 
						|
 | 
						|
static inline void foo(int &x, int y) {
 | 
						|
  // Capturing x and y
 | 
						|
  #pragma clang __debug captured
 | 
						|
  {
 | 
						|
    x += y;
 | 
						|
  }
 | 
						|
}
 | 
						|
 | 
						|
struct C {
 | 
						|
  int val;
 | 
						|
 | 
						|
  explicit C(int v) : val(v) { }
 | 
						|
 | 
						|
  void bar(int &x) {
 | 
						|
    // Capturing x and this
 | 
						|
    #pragma clang __debug captured
 | 
						|
    {
 | 
						|
      x += val;
 | 
						|
    }
 | 
						|
  }
 | 
						|
};
 | 
						|
 | 
						|
#else
 | 
						|
 | 
						|
void test_foo(int &x) {
 | 
						|
  foo(x, 10);
 | 
						|
}
 | 
						|
 | 
						|
void test_bar(int &x) {
 | 
						|
  C Obj(10);
 | 
						|
  Obj.bar(x);
 | 
						|
}
 | 
						|
 | 
						|
#endif
 |