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()8 template <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()21 int 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