mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-26 22:07:58 +08:00
gdb.base/{prologue,symbol-alias}.exp C++ify
Make these testcases work when compiled as C++ programs. These testcases use the alias attribute, which requires passing in the target function's mangled name in C++. To avoid having to figure out how the functions are mangled, explicitly specify a linkage name. This is preferred over 'extern "C"' because that doesn't work with static functions. gdb/testsuite/ChangeLog: * gdb.base/prologue.c [__cplusplus] (marker): Explicitly specify linkage name. * gdb.base/prologue.exp: Use print /d. * gdb.base/symbol-alias.exp: Handle C++ output. * gdb.base/symbol-alias2.c: Handle C++ output. [__cplusplus] (func): Explicitly specify linkage name.
This commit is contained in:
@ -1,3 +1,12 @@
|
|||||||
|
2020-09-17 Pedro Alves <pedro@palves.net>
|
||||||
|
|
||||||
|
* gdb.base/prologue.c [__cplusplus] (marker): Explicitly specify
|
||||||
|
linkage name.
|
||||||
|
* gdb.base/prologue.exp: Use print /d.
|
||||||
|
* gdb.base/symbol-alias.exp: Handle C++ output.
|
||||||
|
* gdb.base/symbol-alias2.c: Handle C++ output.
|
||||||
|
[__cplusplus] (func): Explicitly specify linkage name.
|
||||||
|
|
||||||
2020-09-17 Pedro Alves <pedro@palves.net>
|
2020-09-17 Pedro Alves <pedro@palves.net>
|
||||||
|
|
||||||
* gdb.python/py-nested-maps.c (struct key_t): Rename to...
|
* gdb.python/py-nested-maps.c (struct key_t): Rename to...
|
||||||
|
@ -20,6 +20,12 @@ int leaf (void)
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
/* So that the alias attribute below work without having to figure out
|
||||||
|
this function's mangled name. */
|
||||||
|
int marker (int val) asm ("marker");
|
||||||
|
#endif
|
||||||
|
|
||||||
int marker (int val)
|
int marker (int val)
|
||||||
{
|
{
|
||||||
leaf ();
|
leaf ();
|
||||||
|
@ -59,4 +59,4 @@ set pc1 [find_breakpoint_pc "marker"]
|
|||||||
|
|
||||||
set pc2 [find_breakpoint_pc "other"]
|
set pc2 [find_breakpoint_pc "other"]
|
||||||
|
|
||||||
gdb_test "print $pc1 == $pc2" "\\\$$decimal = 1" "same pc from minimal symbol"
|
gdb_test "print /d $pc1 == $pc2" "\\\$$decimal = 1" "same pc from minimal symbol"
|
||||||
|
@ -27,7 +27,7 @@ if ![runto_main] then {
|
|||||||
|
|
||||||
# Functions.
|
# Functions.
|
||||||
foreach f {"func" "func_alias"} {
|
foreach f {"func" "func_alias"} {
|
||||||
gdb_test "p $f" " = {struct S \\*\\(void\\)} $hex <func>"
|
gdb_test "p $f" " = {(struct )?S \\*\\(void\\)} $hex <func(\\(\\))?>"
|
||||||
gdb_test "p *${f}()" "= {field1 = 1, field2 = 2}"
|
gdb_test "p *${f}()" "= {field1 = 1, field2 = 2}"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -23,6 +23,12 @@ struct S
|
|||||||
|
|
||||||
struct S g_var_s = { 1, 2 };
|
struct S g_var_s = { 1, 2 };
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
/* So that the alias attribute below work without having to figure out
|
||||||
|
this function's mangled name. */
|
||||||
|
static struct S *func (void) asm ("func");
|
||||||
|
#endif
|
||||||
|
|
||||||
static struct S *
|
static struct S *
|
||||||
func (void)
|
func (void)
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user