+2019-07-19 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/91190
+ * function.c (insert_temp_slot_address): Store into the hash table
+ a copy of address to avoid RTL sharing issues.
+
2019-07-19 Richard Biener <rguenther@suse.de>
PR tree-optimization/91207
insert_temp_slot_address (rtx address, class temp_slot *temp_slot)
{
struct temp_slot_address_entry *t = ggc_alloc<temp_slot_address_entry> ();
- t->address = address;
+ t->address = copy_rtx (address);
t->temp_slot = temp_slot;
t->hash = temp_slot_address_compute_hash (t);
*temp_slot_address_table->find_slot_with_hash (t, t->hash, INSERT) = t;
+2019-07-19 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/91190
+ * gcc.c-torture/compile/pr91190.c: New test.
+
2019-07-19 Richard Biener <rguenther@suse.de>
PR tree-optimization/91207
--- /dev/null
+/* PR middle-end/91190 */
+
+unsigned a[1], c;
+long d, h;
+int e[2], f, g;
+char i;
+
+int
+main ()
+{
+ char k = 0;
+ int l;
+ while (i || d)
+ {
+ if (g)
+ while (1)
+ ;
+ e[1] = 0;
+ long m[2], n = ~(3 & (5 | (h | 9) * 2237420170));
+ g = 90 * n;
+ char b = m[300000000], j = 0;
+ c = 5 ^ a[c ^ (b & 5)];
+ int o = d;
+ k = o ? : j;
+ if (k)
+ for (l = 0; l < 3; l++)
+ if (m[200000000000000000])
+ __builtin_printf ("%d", f);
+ }
+ return 0;
+}