diff options
author | Jan Kratochvil <jan.kratochvil@redhat.com> | 2011-04-17 18:09:02 +0000 |
---|---|---|
committer | Jan Kratochvil <jan.kratochvil@redhat.com> | 2011-04-17 18:09:02 +0000 |
commit | 90359a167375927982fc3f675718044a491da759 (patch) | |
tree | 259ce4fcbdee8ffc4b0c46172c8f16b3e335e665 /gdb/testsuite/gdb.base | |
parent | 626e7282148f31aa82bcdaffe613fcf326914d76 (diff) | |
download | gdb-90359a167375927982fc3f675718044a491da759.zip gdb-90359a167375927982fc3f675718044a491da759.tar.gz gdb-90359a167375927982fc3f675718044a491da759.tar.bz2 |
gdb/
* elfread.c (elf_symtab_read): Do not ignore .L symbols if they are
BSF_SYNTHETIC.
gdb/testsuite/
* gdb.base/callfuncs.c (Lcallfunc, callfunc): New functions.
* gdb.base/callfuncs.exp (print callfunc (Lcallfunc, 5)): New test.
Diffstat (limited to 'gdb/testsuite/gdb.base')
-rw-r--r-- | gdb/testsuite/gdb.base/callfuncs.c | 12 | ||||
-rw-r--r-- | gdb/testsuite/gdb.base/callfuncs.exp | 5 |
2 files changed, 17 insertions, 0 deletions
diff --git a/gdb/testsuite/gdb.base/callfuncs.c b/gdb/testsuite/gdb.base/callfuncs.c index 2d40650..406d22a 100644 --- a/gdb/testsuite/gdb.base/callfuncs.c +++ b/gdb/testsuite/gdb.base/callfuncs.c @@ -510,3 +510,15 @@ int main () t_structs_c(struct_val1); return 0 ; } + +static int +Lcallfunc (int arg) +{ + return arg + 1; +} + +int +callfunc (int (*func) (int value), int value) +{ + return Lcallfunc (0) * 0 + func (value) * 2; +} diff --git a/gdb/testsuite/gdb.base/callfuncs.exp b/gdb/testsuite/gdb.base/callfuncs.exp index 97efacb..27ebd1e 100644 --- a/gdb/testsuite/gdb.base/callfuncs.exp +++ b/gdb/testsuite/gdb.base/callfuncs.exp @@ -458,3 +458,8 @@ if {![target_info exists gdb,nosignals] && ![istarget "*-*-uclinux*"]} { gdb_test {set $sp = $old_sp} } + +# Test function descriptor resolution - the separate debug info .opd section +# handling vs. local labels `.L'... as `Lcallfunc' starts with `L'. + +gdb_test "print callfunc (Lcallfunc, 5)" " = 12" |