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.

Reply via email to