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.