PR middle-end/51323
authorjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 5 Dec 2011 08:15:23 +0000 (08:15 +0000)
committerjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 5 Dec 2011 08:15:23 +0000 (08:15 +0000)
commit74c02416f16dcb94526b28b91d675505c15dfab5
tree94692863619a18f281ead69f54e9055cdfeffd93
parentc7cca86d8700854dba14d94d10c2cf002fb4081f
PR middle-end/51323
PR middle-end/50074
* calls.c (internal_arg_pointer_exp_state): New variable.
(internal_arg_pointer_based_exp_1,
internal_arg_pointer_exp_scan): New functions.
(internal_arg_pointer_based_exp): New function.
(mem_overlaps_already_clobbered_arg_p): Use it.
(expand_call): Free internal_arg_pointer_exp_state.cache vector
and clear internal_arg_pointer_exp_state.scan_start.

* gcc.c-torture/execute/pr51323.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@182000 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/calls.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.c-torture/execute/pr51323.c [new file with mode: 0644]