+2017-12-08 Vladimir Makarov <vmakarov@redhat.com>
+
+ PR rtl-optimization/83317
+ * lra-constraints.c (process_address_1): Add insn code check.
+
2017-12-08 Michael Matz <matz@suse.de>
Fix PR tree-optimization/83323
/* Do not attempt to decompose arbitrary addresses generated by combine
for asm operands with loose constraints, e.g 'X'. */
else if (MEM_P (op)
- && !(get_constraint_type (cn) == CT_FIXED_FORM
+ && !(INSN_CODE (curr_insn) < 0
+ && get_constraint_type (cn) == CT_FIXED_FORM
&& constraint_satisfied_p (op, cn)))
decompose_mem_address (&ad, op);
else if (GET_CODE (op) == SUBREG
+2017-12-08 Jakub Jelinek <jakub@redhat.com>
+
+ PR rtl-optimization/83317
+ * gcc.target/i386/pr83317.c: New test.
+
2017-12-08 Jakub Jelinek <jakub@redhat.com>
PR rtl-optimization/81595
--- /dev/null
+/* PR rtl-optimization/83317 */
+/* { dg-do compile } */
+/* { dg-options "-O1" } */
+/* { dg-additional-options "-fPIC" { target fpic } } */
+/* { dg-additional-options "-msse2 -mfpmath=sse" { target ia32 } } */
+
+struct S { double a; };
+struct S c;
+int d, e;
+void *buf[64];
+extern int setjmp (void **);
+
+void
+foo ()
+{
+ setjmp (buf);
+ struct S g;
+ if (d)
+ g.a = __builtin_copysign (e, d);
+ c = g;
+}