+2016-03-18 Jason Merrill <jason@redhat.com>
+
+ * calls.c (load_register_parameters): Fix zero size sibcall logic.
+
2016-03-18 Kirill Yukhin <kirill.yukhin@intel.com>
* config/i386/sse.md: Use vpbroadcastq for broadcasting DF
/* Check for overlap with already clobbered argument area,
providing that this has non-zero size. */
if (is_sibcall
- && (size == 0
- || mem_overlaps_already_clobbered_arg_p
- (XEXP (args[i].value, 0), size)))
+ && size != 0
+ && (mem_overlaps_already_clobbered_arg_p
+ (XEXP (args[i].value, 0), size)))
*sibcall_failure = 1;
if (size % UNITS_PER_WORD == 0
--- /dev/null
+// Test for sibcall optimization with empty struct.
+// { dg-options "-O2" }
+// { dg-final { scan-assembler "jmp" { target i?86-*-* x86_64-*-* } } }
+
+struct A { };
+void f(struct A);
+void g(struct A a) { f(a); }