@@ -21787,7 +21787,7 @@ assign_386_stack_local (enum machine_mod
for (s = ix86_stack_locals; s; s = s->next)
if (s->mode == mode && s->n == n)
- return copy_rtx (s->rtl);
+ return validize_mem (copy_rtx (s->rtl));
s = ggc_alloc_stack_local_entry ();
s->n = n;
@@ -21796,7 +21796,7 @@ assign_386_stack_local (enum machine_mod
s->next = ix86_stack_locals;
ix86_stack_locals = s;
- return s->rtl;
+ return validize_mem (s->rtl);
}
/* Calculate the length of the memory address in the instruction encoding.
@@ -0,0 +1,15 @@
+/* PR target/50092 */
+/* { dg-do compile { target lp64 } } */
+
+volatile int v;
+
+void bar (long double);
+void baz (_Complex long double *);
+
+void
+foo (void)
+{
+ _Complex long double w[100000000];
+ bar ((long double) v / 2147483648.0);
+ baz (w);
+}