| /* { dg-do compile } */ | |
| /* { dg-options "-O2 -fno-strict-overflow -fsanitize=shift -Warray-bounds" } */ | |
| enum psi_task_count { | |
| NR_IOWAIT, | |
| NR_PSI_TASK_COUNTS = 4, | |
| }; | |
| unsigned int tasks[NR_PSI_TASK_COUNTS]; | |
| static void psi_group_change(unsigned int set) | |
| { | |
| unsigned int t; | |
| unsigned int state_mask = 0; | |
| for (t = 0; set; set &= ~(1 << t), t++) | |
| if (set & (1 << t)) | |
| tasks[t]++; | |
| } | |
| void psi_task_switch(int sleep) | |
| { | |
| int set = 0; | |
| if (sleep) | |
| set |= (1 << NR_IOWAIT); | |
| psi_group_change(set); | |
| } |