1*01ecd310SAlexander Kornienko // RUN: %clang_cc1 -fsyntax-only -verify -fblocks -std=c++11 -Wimplicit-fallthrough %s 2*01ecd310SAlexander Kornienko fallthrough_in_blocks()3*01ecd310SAlexander Kornienkovoid fallthrough_in_blocks() { 4*01ecd310SAlexander Kornienko void (^block)() = ^{ 5*01ecd310SAlexander Kornienko int x = 0; 6*01ecd310SAlexander Kornienko switch (x) { 7*01ecd310SAlexander Kornienko case 0: 8*01ecd310SAlexander Kornienko x++; 9*01ecd310SAlexander Kornienko [[clang::fallthrough]]; // no diagnostics 10*01ecd310SAlexander Kornienko case 1: 11*01ecd310SAlexander Kornienko x++; 12*01ecd310SAlexander Kornienko default: // \ 13*01ecd310SAlexander Kornienko expected-warning{{unannotated fall-through between switch labels}} \ 14*01ecd310SAlexander Kornienko expected-note{{insert 'break;' to avoid fall-through}} 15*01ecd310SAlexander Kornienko break; 16*01ecd310SAlexander Kornienko } 17*01ecd310SAlexander Kornienko }; 18*01ecd310SAlexander Kornienko block(); 19*01ecd310SAlexander Kornienko } 20