49 lines
		
	
	
		
			766 B
		
	
	
	
		
			C++
		
	
	
	
			
		
		
	
	
			49 lines
		
	
	
		
			766 B
		
	
	
	
		
			C++
		
	
	
	
// RUN: %clang_cc1 -fsyntax-only -verify %s
 | 
						|
// expected-no-diagnostics
 | 
						|
 | 
						|
//PR9463
 | 
						|
int subfun(const char *text) {
 | 
						|
  const char *tmp = text;
 | 
						|
  return 0;
 | 
						|
}
 | 
						|
 | 
						|
void fun(const char* text) {
 | 
						|
  int count = 0;
 | 
						|
  bool check = true;
 | 
						|
 | 
						|
  if (check)
 | 
						|
    {
 | 
						|
      const char *end = text;
 | 
						|
 | 
						|
      if (check)
 | 
						|
        {
 | 
						|
          do
 | 
						|
            {
 | 
						|
              if (check)
 | 
						|
                {
 | 
						|
                  count = subfun(end);
 | 
						|
                  goto end;
 | 
						|
                }
 | 
						|
 | 
						|
              check = !check;
 | 
						|
            }
 | 
						|
          while (check);
 | 
						|
        }
 | 
						|
      // also works, after commenting following line of source code
 | 
						|
      int e = subfun(end);
 | 
						|
    }
 | 
						|
 end:
 | 
						|
  if (check)
 | 
						|
    ++count;
 | 
						|
}
 | 
						|
 | 
						|
const char *text = "some text";
 | 
						|
 | 
						|
int main() {
 | 
						|
	const char *ptr = text;
 | 
						|
 | 
						|
	fun(ptr);
 | 
						|
 | 
						|
	return 0;
 | 
						|
}
 |