re PR debug/50299 (entryval: bigendian 32bit->64bit extension breaks address match)
authorJakub Jelinek <jakub@redhat.com>
Mon, 12 Sep 2011 15:49:38 +0000 (17:49 +0200)
committerJakub Jelinek <jakub@gcc.gnu.org>
Mon, 12 Sep 2011 15:49:38 +0000 (17:49 +0200)
commit7d8102762c1b37bd1b0b59795a67ffc0da6631a5
tree34a400a54600fe6c44115b7bb2447a9fc4285f81
parent886a64f901a20efd755f9fc3e71419902b0cfd41
re PR debug/50299 (entryval: bigendian 32bit->64bit extension breaks address match)

PR debug/50299
* calls.c (load_register_parameters): Use use_reg_mode instead
of use_reg when adding a single register CALL_INSN_FUNCTION_USAGE
entry.
(expand_call): Set EXPR_LIST mode to TYPE_MODE of the argument
for stack CALL_INSN_FUNCTION_USAGE uses.
* expr.h (use_reg_mode): New prototype.
(use_reg): Changed into inline around use_reg_mode.
* expr.c (use_reg): Renamed to...
(use_reg_mode): ... this.  Added MODE argument, set EXPR_LIST
mode to that mode instead of VOIDmode.
* var-tracking.c (prepare_call_arguments): Don't track parameters
whose EXPR_LIST mode is VOIDmode, BLKmode or X mode isn't convertible
to it using lowpart_subreg.  Convert VALUE and REG/MEM to the
EXPR_LIST mode.

From-SVN: r178784
gcc/ChangeLog
gcc/calls.c
gcc/expr.c
gcc/expr.h
gcc/var-tracking.c