https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67816
--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> --- Seen with r228349 btw. Delta-reduced testcase: typedef struct { int path[65]; } CHESS_PATH; extern int early_exit; extern int number_of_solutions; extern int solutions[10]; extern int solution_type; extern int iteration_depth; extern int hash_table_size; extern int *last[65]; extern signed char searched_this_root_move[256]; extern unsigned int root_nodes[256]; extern CHESS_PATH pv[65]; int Iterate(int wtm, int search_type, int root_list_done) { int *mvp; int i, value=0, time_used; int correct, correct_count, material=0, sorted, temp; for (; iteration_depth<=60; iteration_depth++) { for (mvp=last[0]; mvp<last[1]; mvp++) searched_this_root_move[mvp-last[0]]=0; for (i=0; i<number_of_solutions; i++) { if (!solution_type) { if (solutions[i] == pv[1].path[1]) correct=1; } else if (solutions[i] == pv[1].path[1]) correct=0; } if (correct) correct_count++; if (correct_count >= early_exit) break; do { sorted=1; for (mvp=last[0]+1; mvp<last[1]-1; mvp++) { if (root_nodes[mvp-last[0]] < root_nodes[mvp-last[0]+1]) { temp=*mvp; *mvp=*(mvp+1); *(mvp+1)=temp; temp=root_nodes[mvp-last[0]]; root_nodes[mvp-last[0]]=root_nodes[mvp-last[0]+1]; root_nodes[mvp-last[0]+1]=temp; sorted=0; } } } while(!sorted); } }