This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug tree-optimization/67816] [6 Regression] ICE in duplicate_thread_path, 186.crafty fails to build
- From: "rguenth at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Fri, 02 Oct 2015 10:53:54 +0000
- Subject: [Bug tree-optimization/67816] [6 Regression] ICE in duplicate_thread_path, 186.crafty fails to build
- Auto-submitted: auto-generated
- References: <bug-67816-4 at http dot gcc dot gnu dot org/bugzilla/>
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);
}
}