On Wed, Jun 22, 2016 at 11:21:44AM +0200, Eric Botcazou wrote: > > Ok, even for branches I think, but would be nice to have a corresponding > > guality testcase (perhaps just for -O0 with dg-skip-if) which fails without > > this patch and succeeds with it. > > Thanks. The failure mode is that the offset from VIRTUAL_STACK_VARS_REGNUM > is > too large so, on RISC architectures, it is not legitimate and the address is > rewritten. Can this me mimiced on x86?
The testcase doesn't necessarily need to FAIL without the patch on x86, it is fine if it fails on some PowerPC* or Visium. I'd expect something like: /* { dg-do run } */ /* { dg-options "-g" } */ /* { dg-skip-if "" { *-*-* } { "*" } { "-O0" } } */ volatile int v++; rettype foo (..., sometype arg1, sometype arg2, ...) { // whatever needed to grow the stack frame enough v++; /* { dg-final { gdb-test <line_of_v++> "arg1" "3" } } */ /* { dg-final { gdb-test <line_of_v++> "arg2" "4" } } */ } int main () { foo (..., 3, 4, ...); return 0; } might be enough. Jakub