aboutsummaryrefslogtreecommitdiff
path: root/gdb/ser-pipe.c
diff options
context:
space:
mode:
authorTankut Baris Aktemur <tankut.baris.aktemur@intel.com>2019-12-20 17:43:06 +0100
committerTankut Baris Aktemur <tankut.baris.aktemur@intel.com>2019-12-20 17:43:06 +0100
commit099a6354dab7e74c990501929f383394fc8efd02 (patch)
treea9a1bbfc10c14ff65af9b6d9e8cdf6106a07e197 /gdb/ser-pipe.c
parent62bf63d74d54482d42e9d78890ebc0dd4675e23b (diff)
downloadgdb-099a6354dab7e74c990501929f383394fc8efd02.zip
gdb-099a6354dab7e74c990501929f383394fc8efd02.tar.gz
gdb-099a6354dab7e74c990501929f383394fc8efd02.tar.bz2
infcall: handle pass-by-reference arguments appropriately
If an aggregate argument is implicitly pass-by-reference, allocate a temporary object on the stack, initialize it via the copy constructor (if exists) or trivially by memcpy'ing. Pass the reference of the temporary to the callee function. After the callee returns, invoke the destructor of the temporary. gdb/ChangeLog: 2019-12-20 Tankut Baris Aktemur <tankut.baris.aktemur@intel.com> PR gdb/25054 * infcall.c (call_function_by_hand_dummy): Update the argument- passing section for call-by-value parameters. (struct destructor_info): New struct. (call_destructors): New auxiliary function. Change-Id: I18fa5d0df814dfa0defe9e862a88a6dbf1d99d01
Diffstat (limited to 'gdb/ser-pipe.c')
0 files changed, 0 insertions, 0 deletions