aboutsummaryrefslogtreecommitdiff
path: root/gdb/ChangeLog
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/ChangeLog
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/ChangeLog')
-rw-r--r--gdb/ChangeLog8
1 files changed, 8 insertions, 0 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 43b86f2..c2157e4 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,13 @@
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.
+
+2019-12-20 Tankut Baris Aktemur <tankut.baris.aktemur@intel.com>
+
* gnu-v3-abi.c (enum definition_style): New enum type.
(get_def_style): New function.
(is_user_provided_def): New function.