1*9ed4a94dSNathan Chancellor // RUN: %clang_cc1 -fsyntax-only -verify -std=c++11 -Wimplicit-fallthrough -Wunreachable-code-fallthrough %s
27532d379SRichard Smith // expected-no-diagnostics
37532d379SRichard Smith 
47532d379SRichard Smith template<bool param>
fallthrough_template(int i)57532d379SRichard Smith int fallthrough_template(int i)
67532d379SRichard Smith {
77532d379SRichard Smith   switch (i) {
87532d379SRichard Smith     case 1:
97532d379SRichard Smith       if (param)
107532d379SRichard Smith         return 3;
117532d379SRichard Smith       [[clang::fallthrough]]; // no warning here, for an unreachable annotation (in the fallthrough_template<true> case) in a template function
127532d379SRichard Smith     case 2:
137532d379SRichard Smith       return 4;
147532d379SRichard Smith     default:
157532d379SRichard Smith       return 5;
167532d379SRichard Smith   }
177532d379SRichard Smith }
187532d379SRichard Smith 
197532d379SRichard Smith template int fallthrough_template<true>(int);
207532d379SRichard Smith 
21