Save ref->speculative_id before clone_reference.

	PR ipa/94250
	* symtab.c (symtab_node::clone_references): Save speculative_id
	as ref may be overwritten by create_reference.
	(symtab_node::clone_referring): Likewise.
	(symtab_node::clone_reference): Likewise.
parent b809f0b6
2020-03-23 Martin Liska <mliska@suse.cz>
PR ipa/94250
* symtab.c (symtab_node::clone_references): Save speculative_id
as ref may be overwritten by create_reference.
(symtab_node::clone_referring): Likewise.
(symtab_node::clone_reference): Likewise.
2020-03-22 Iain Sandoe <iain@sandoe.co.uk> 2020-03-22 Iain Sandoe <iain@sandoe.co.uk>
* config/i386/darwin.h (JUMP_TABLES_IN_TEXT_SECTION): Remove * config/i386/darwin.h (JUMP_TABLES_IN_TEXT_SECTION): Remove
......
...@@ -670,11 +670,12 @@ symtab_node::clone_references (symtab_node *node) ...@@ -670,11 +670,12 @@ symtab_node::clone_references (symtab_node *node)
{ {
bool speculative = ref->speculative; bool speculative = ref->speculative;
unsigned int stmt_uid = ref->lto_stmt_uid; unsigned int stmt_uid = ref->lto_stmt_uid;
unsigned int spec_id = ref->speculative_id;
ref2 = create_reference (ref->referred, ref->use, ref->stmt); ref2 = create_reference (ref->referred, ref->use, ref->stmt);
ref2->speculative = speculative; ref2->speculative = speculative;
ref2->lto_stmt_uid = stmt_uid; ref2->lto_stmt_uid = stmt_uid;
ref2->speculative_id = ref->speculative_id; ref2->speculative_id = spec_id;
} }
} }
...@@ -689,11 +690,12 @@ symtab_node::clone_referring (symtab_node *node) ...@@ -689,11 +690,12 @@ symtab_node::clone_referring (symtab_node *node)
{ {
bool speculative = ref->speculative; bool speculative = ref->speculative;
unsigned int stmt_uid = ref->lto_stmt_uid; unsigned int stmt_uid = ref->lto_stmt_uid;
unsigned int spec_id = ref->speculative_id;
ref2 = ref->referring->create_reference (this, ref->use, ref->stmt); ref2 = ref->referring->create_reference (this, ref->use, ref->stmt);
ref2->speculative = speculative; ref2->speculative = speculative;
ref2->lto_stmt_uid = stmt_uid; ref2->lto_stmt_uid = stmt_uid;
ref2->speculative_id = ref->speculative_id; ref2->speculative_id = spec_id;
} }
} }
...@@ -704,12 +706,13 @@ symtab_node::clone_reference (ipa_ref *ref, gimple *stmt) ...@@ -704,12 +706,13 @@ symtab_node::clone_reference (ipa_ref *ref, gimple *stmt)
{ {
bool speculative = ref->speculative; bool speculative = ref->speculative;
unsigned int stmt_uid = ref->lto_stmt_uid; unsigned int stmt_uid = ref->lto_stmt_uid;
unsigned int spec_id = ref->speculative_id;
ipa_ref *ref2; ipa_ref *ref2;
ref2 = create_reference (ref->referred, ref->use, stmt); ref2 = create_reference (ref->referred, ref->use, stmt);
ref2->speculative = speculative; ref2->speculative = speculative;
ref2->lto_stmt_uid = stmt_uid; ref2->lto_stmt_uid = stmt_uid;
ref2->speculative_id = ref->speculative_id; ref2->speculative_id = spec_id;
return ref2; return ref2;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment