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;
 | |
| }
 |