mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-05 23:26:51 +08:00
gdb/testsuite/
Test GCC PR debug/49546. * gdb.cp/temargs.exp (set sixth breakpoint for temargs) (test type of F in k3_m, test value of F in k3_m): New. * gdb.cp/temargs.cc (struct S3, struct K3): New. (main): New variable k3. Call k3.k3_m.
This commit is contained in:
@ -1,3 +1,11 @@
|
|||||||
|
2011-07-01 Jan Kratochvil <jan.kratochvil@redhat.com>
|
||||||
|
|
||||||
|
Test GCC PR debug/49546.
|
||||||
|
* gdb.cp/temargs.exp (set sixth breakpoint for temargs)
|
||||||
|
(test type of F in k3_m, test value of F in k3_m): New.
|
||||||
|
* gdb.cp/temargs.cc (struct S3, struct K3): New.
|
||||||
|
(main): New variable k3. Call k3.k3_m.
|
||||||
|
|
||||||
2011-07-01 Jean-Charles Delay <delay@adacore.com>
|
2011-07-01 Jean-Charles Delay <delay@adacore.com>
|
||||||
|
|
||||||
* gdb.ada/packed_array.exp: Fix expected outout.
|
* gdb.ada/packed_array.exp: Fix expected outout.
|
||||||
|
@ -65,6 +65,21 @@ struct K2
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// GCC PR debug/49546
|
||||||
|
struct S3
|
||||||
|
{
|
||||||
|
static void m (int x) {}
|
||||||
|
};
|
||||||
|
template <void (*F) (int)>
|
||||||
|
// or: template <void (F) (int)>
|
||||||
|
struct K3
|
||||||
|
{
|
||||||
|
void k3_m ()
|
||||||
|
{
|
||||||
|
F (0); // Breakpoint 6.
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
int main ()
|
int main ()
|
||||||
{
|
{
|
||||||
Base<double, 23, &a_global, &S::f> base;
|
Base<double, 23, &a_global, &S::f> base;
|
||||||
@ -72,12 +87,15 @@ int main ()
|
|||||||
// That would be worth testing, once g++ is fixed.
|
// That would be worth testing, once g++ is fixed.
|
||||||
Base<long, 47, &a_global, &S::f>::Inner<float> inner;
|
Base<long, 47, &a_global, &S::f>::Inner<float> inner;
|
||||||
K2<&S::somefunc> k2;
|
K2<&S::somefunc> k2;
|
||||||
|
K3<&S3::m> k3;
|
||||||
|
// or: K3<S3::m> k3;
|
||||||
|
|
||||||
base.base_m ();
|
base.base_m ();
|
||||||
inner.inner_m ();
|
inner.inner_m ();
|
||||||
func<unsigned char, 91, &a_global, &S::f> ();
|
func<unsigned char, 91, &a_global, &S::f> ();
|
||||||
base.templ_m<short> ();
|
base.templ_m<short> ();
|
||||||
k2.k2_m ();
|
k2.k2_m ();
|
||||||
|
k3.k3_m ();
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -75,6 +75,10 @@ set line [gdb_get_line_number "Breakpoint 5" $srcfile]
|
|||||||
gdb_test "break $srcfile:$line" "Breakpoint 6.*" \
|
gdb_test "break $srcfile:$line" "Breakpoint 6.*" \
|
||||||
"set fifth breakpoint for temargs"
|
"set fifth breakpoint for temargs"
|
||||||
|
|
||||||
|
set line [gdb_get_line_number "Breakpoint 6" $srcfile]
|
||||||
|
gdb_test "break $srcfile:$line" "Breakpoint 7.*" \
|
||||||
|
"set sixth breakpoint for temargs"
|
||||||
|
|
||||||
#
|
#
|
||||||
# Tests in Base::base_m.
|
# Tests in Base::base_m.
|
||||||
#
|
#
|
||||||
@ -166,3 +170,19 @@ gdb_test "ptype F" "type = void \\\(S::\\\*\\\)\\\(S \\\* const\\\)" \
|
|||||||
|
|
||||||
setup_kfail gcc/49366 "*-*-*"
|
setup_kfail gcc/49366 "*-*-*"
|
||||||
gdb_test "print F" "&S::somefunc" "test value of F in k2_m"
|
gdb_test "print F" "&S::somefunc" "test value of F in k2_m"
|
||||||
|
|
||||||
|
#
|
||||||
|
# Tests in K3::k3_m, GCC PR debug/49546.
|
||||||
|
# The problem reproduces with DW_AT_MIPS_linkage_name. It does not happen with
|
||||||
|
# GDB physname - GDB's own computation of the linkage name based on
|
||||||
|
# (incorrectly output by GCC) DW_AT_name.
|
||||||
|
#
|
||||||
|
|
||||||
|
gdb_continue_to_breakpoint "continue to sixth breakpoint for temargs"
|
||||||
|
|
||||||
|
if $have_older_template_gcc { setup_xfail "*-*-*" }
|
||||||
|
gdb_test "ptype F" {type = void \(\*\)\(int\)} "test type of F in k3_m"
|
||||||
|
|
||||||
|
if $have_older_template_gcc { setup_xfail "*-*-*" }
|
||||||
|
gdb_test "print F" { = \(void \(\*\)\(int\)\) 0x[0-9a-f]+ <S3::m\(int\)>} \
|
||||||
|
"test value of F in k3_m"
|
||||||
|
Reference in New Issue
Block a user