1 // { dg-do compile { target c++2a } } 2 // { dg-additional-options -fdump-tree-gimple } 3 // { dg-final { scan-tree-dump-times "hot label" 5 "gimple" } } 4 // { dg-final { scan-tree-dump-times "cold label" 3 "gimple" } } 5 6 bool b; 7 f()8template <class T> int f() 9 { 10 if (b) 11 [[likely]] return 0; 12 else 13 [[unlikely]] flabel: return 1; 14 switch (b) 15 { 16 [[likely]] case true: break; 17 }; 18 return 1; 19 } 20 main()21int main() 22 { 23 if (b) 24 [[likely]] return 0; 25 else if (b) 26 [[unlikely]] elabel: 27 return 1; 28 else 29 [[likely]] b = false; 30 31 f<int>(); 32 33 switch (b) 34 { 35 [[likely]] case true: break; 36 [[unlikely]] case false: break; 37 }; 38 } 39