On Jun 21, 2012, Alexandre Oliva wrote: > Here's one more patch that addresses a problem I found out while > investigating the PR53671 regressions: rather than recording incoming > stack args as MEMs with non-VALUE expressions, it's more consistent (and > less surprising) if we emit them as VALUE expressions, like other MEMs. > Regstrapped on x86_64-linux-gnu and i686-linux-gnu. Ok? > for gcc/ChangeLog > from Alexandre Oliva > * var-tracking.c (vt_add_function_parameter): Use a preserved > VALUE for the MEM address of an incoming parameter. This caused the bug described in PR debug/53820. PA64 uses a pseudo for the internal arg pointer. This pseudo isn't recorded as a preserved VALUE, and it doesn't really make sense to record a use of this pseudo at the entry point, before it is even set. There's also code that prevents us from using pseudos in var-tracking. This patch arranges for the internal arg pointer to be substituted for the actual arg pointer. John David Angling verified that the patch fixes the problem on the affected platform. I regstrapped it on x86_64- and i686-linux-gnu. I'm checking it in momentarily, as obvious.