forked from OSchip/llvm-project
				
			
		
			
				
	
	
		
			28 lines
		
	
	
		
			807 B
		
	
	
	
		
			C++
		
	
	
	
			
		
		
	
	
			28 lines
		
	
	
		
			807 B
		
	
	
	
		
			C++
		
	
	
	
// RUN: %clang_cc1 -fsyntax-only -std=c++14 -code-completion-at=%s:24:5 %s -o - 2>&1 | FileCheck %s
 | 
						|
template <class T>
 | 
						|
auto make_func() {
 | 
						|
  struct impl {
 | 
						|
    impl* func() {
 | 
						|
      int x;
 | 
						|
      if (x = 10) {}
 | 
						|
      // Check that body of this function is actually skipped.
 | 
						|
      // CHECK-NOT: crash-skipped-bodies-template-inst.cpp:7:{{[0-9]+}}: warning: using the result of an assignment as a condition without parentheses
 | 
						|
      return this;
 | 
						|
    }
 | 
						|
  };
 | 
						|
 | 
						|
  int x;
 | 
						|
  if (x = 10) {}
 | 
						|
  // Check that this function is not skipped.
 | 
						|
  // CHECK: crash-skipped-bodies-template-inst.cpp:15:9: warning: using the result of an assignment as a condition without parentheses
 | 
						|
  return impl();
 | 
						|
}
 | 
						|
 | 
						|
void foo() {
 | 
						|
  []() {
 | 
						|
    make_func<int>();
 | 
						|
    m
 | 
						|
    // CHECK: COMPLETION: make_func : [#auto#]make_func<<#class T#>>()
 | 
						|
  };
 | 
						|
}
 |