20 lines
		
	
	
		
			463 B
		
	
	
	
		
			C++
		
	
	
	
			
		
		
	
	
			20 lines
		
	
	
		
			463 B
		
	
	
	
		
			C++
		
	
	
	
| // RUN: %clang_cc1 -fsyntax-only -verify -fblocks -std=c++11 -Wimplicit-fallthrough %s
 | |
| 
 | |
| void fallthrough_in_blocks() {
 | |
|   void (^block)() = ^{
 | |
|     int x = 0;
 | |
|     switch (x) {
 | |
|     case 0:
 | |
|       x++;
 | |
|       [[clang::fallthrough]]; // no diagnostics
 | |
|     case 1:
 | |
|       x++;
 | |
|     default: // \
 | |
|         expected-warning{{unannotated fall-through between switch labels}} \
 | |
|         expected-note{{insert 'break;' to avoid fall-through}}
 | |
|       break;
 | |
|     }
 | |
|   };
 | |
|   block();
 | |
| }
 |