+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>
* config/i386/darwin.h (JUMP_TABLES_IN_TEXT_SECTION): Remove
{
bool speculative = ref->speculative;
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->speculative = speculative;
ref2->lto_stmt_uid = stmt_uid;
- ref2->speculative_id = ref->speculative_id;
+ ref2->speculative_id = spec_id;
}
}
{
bool speculative = ref->speculative;
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->speculative = speculative;
ref2->lto_stmt_uid = stmt_uid;
- ref2->speculative_id = ref->speculative_id;
+ ref2->speculative_id = spec_id;
}
}
{
bool speculative = ref->speculative;
unsigned int stmt_uid = ref->lto_stmt_uid;
+ unsigned int spec_id = ref->speculative_id;
ipa_ref *ref2;
ref2 = create_reference (ref->referred, ref->use, stmt);
ref2->speculative = speculative;
ref2->lto_stmt_uid = stmt_uid;
- ref2->speculative_id = ref->speculative_id;
+ ref2->speculative_id = spec_id;
return ref2;
}