http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50299
--- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> 2011-09-06 11:21:19 UTC --- The disadvantage of the patch is that it will no longer emit DW_TAG_call_site_parameter e.g. in struct S { long a, b; }; void baz (void); __attribute__((noinline, noclone)) int foo (struct S s) { long a = s.a; long b = s.b; baz (); return 2; } int bar (void) { struct S s = { 1, 2 }; foo (s); return 0; } on x86_64-linux for %rdi and %rsi registers as it used to before (i.e. for multi-register arguments). Would gdb be actually trying to use it? At least here DW_OP_GNU_entry_value isn't emitted because RTL DSE doesn't adjust the debug insns. I guess I could just use the reg's mode for use_regs to restore this.