- Fix C++ operators resolving through typedefs (STL from gcc-4.5, BZ 678454).
This commit is contained in:
parent
33f3958adb
commit
5bf2ffefc9
@ -672,3 +672,142 @@ http://sourceware.org/ml/gdb-cvs/2011-02/msg00064.html
|
|||||||
+if [gdb_breakpoint "myclass::func"] {
|
+if [gdb_breakpoint "myclass::func"] {
|
||||||
+ pass "setting breakpoint at myclass::func"
|
+ pass "setting breakpoint at myclass::func"
|
||||||
+}
|
+}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
https://bugzilla.redhat.com/show_bug.cgi?id=678454
|
||||||
|
http://sourceware.org/ml/gdb-cvs/2011-02/msg00133.html
|
||||||
|
|
||||||
|
### src/gdb/ChangeLog 2011/02/18 16:43:50 1.12607
|
||||||
|
### src/gdb/ChangeLog 2011/02/18 19:10:44 1.12608
|
||||||
|
## -1,3 +1,10 @@
|
||||||
|
+2011-02-18 Jan Kratochvil <jan.kratochvil@redhat.com>
|
||||||
|
+ Tom Tromey <tromey@redhat.com>
|
||||||
|
+
|
||||||
|
+ * cp-support.c (make_symbol_overload_list_namespace): Do not call
|
||||||
|
+ make_symbol_overload_list_block with NULL BLOCK.
|
||||||
|
+ * valarith.c (unop_user_defined_p): Resolve also TYPE_CODE_TYPEDEF.
|
||||||
|
+
|
||||||
|
2011-02-18 Pedro Alves <pedro@codesourcery.com>
|
||||||
|
|
||||||
|
* breakpoint.c (get_number_trailer): No longer accept a NULL PP.
|
||||||
|
--- src/gdb/cp-support.c 2011/01/05 22:22:47 1.47
|
||||||
|
+++ src/gdb/cp-support.c 2011/02/18 19:10:46 1.48
|
||||||
|
@@ -778,11 +778,13 @@
|
||||||
|
|
||||||
|
/* Look in the static block. */
|
||||||
|
block = block_static_block (get_selected_block (0));
|
||||||
|
- make_symbol_overload_list_block (name, block);
|
||||||
|
+ if (block)
|
||||||
|
+ make_symbol_overload_list_block (name, block);
|
||||||
|
|
||||||
|
/* Look in the global block. */
|
||||||
|
block = block_global_block (block);
|
||||||
|
- make_symbol_overload_list_block (name, block);
|
||||||
|
+ if (block)
|
||||||
|
+ make_symbol_overload_list_block (name, block);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
--- src/gdb/valarith.c 2011/02/14 11:30:37 1.98
|
||||||
|
+++ src/gdb/valarith.c 2011/02/18 19:10:46 1.99
|
||||||
|
@@ -315,15 +315,9 @@
|
||||||
|
if (op == UNOP_ADDR)
|
||||||
|
return 0;
|
||||||
|
type1 = check_typedef (value_type (arg1));
|
||||||
|
- for (;;)
|
||||||
|
- {
|
||||||
|
- if (TYPE_CODE (type1) == TYPE_CODE_STRUCT)
|
||||||
|
- return 1;
|
||||||
|
- else if (TYPE_CODE (type1) == TYPE_CODE_REF)
|
||||||
|
- type1 = TYPE_TARGET_TYPE (type1);
|
||||||
|
- else
|
||||||
|
- return 0;
|
||||||
|
- }
|
||||||
|
+ if (TYPE_CODE (type1) == TYPE_CODE_REF)
|
||||||
|
+ type1 = check_typedef (TYPE_TARGET_TYPE (type1));
|
||||||
|
+ return TYPE_CODE (type1) == TYPE_CODE_STRUCT;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Try to find an operator named OPERATOR which takes NARGS arguments
|
||||||
|
### src/gdb/testsuite/ChangeLog 2011/02/17 22:08:12 1.2594
|
||||||
|
### src/gdb/testsuite/ChangeLog 2011/02/18 19:10:46 1.2595
|
||||||
|
## -1,3 +1,8 @@
|
||||||
|
+2011-02-18 Jan Kratochvil <jan.kratochvil@redhat.com>
|
||||||
|
+
|
||||||
|
+ * gdb.cp/typedef-operator.exp: New file.
|
||||||
|
+ * gdb.cp/typedef-operator.cc: New file.
|
||||||
|
+
|
||||||
|
2011-02-17 Michael Snyder <msnyder@vmware.com>
|
||||||
|
|
||||||
|
* gdb.threads/thread-find.exp: Fix regular expressions.
|
||||||
|
--- src/gdb/testsuite/gdb.cp/typedef-operator.cc
|
||||||
|
+++ src/gdb/testsuite/gdb.cp/typedef-operator.cc 2011-02-21 17:18:30.419734000 +0000
|
||||||
|
@@ -0,0 +1,31 @@
|
||||||
|
+/* This test case is part of GDB, the GNU debugger.
|
||||||
|
+
|
||||||
|
+ Copyright 2011 Free Software Foundation, Inc.
|
||||||
|
+
|
||||||
|
+ This program is free software; you can redistribute it and/or modify
|
||||||
|
+ it under the terms of the GNU General Public License as published by
|
||||||
|
+ the Free Software Foundation; either version 3 of the License, or
|
||||||
|
+ (at your option) any later version.
|
||||||
|
+
|
||||||
|
+ This program is distributed in the hope that it will be useful,
|
||||||
|
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
+ GNU General Public License for more details.
|
||||||
|
+
|
||||||
|
+ You should have received a copy of the GNU General Public License
|
||||||
|
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||||
|
+
|
||||||
|
+class C
|
||||||
|
+{
|
||||||
|
+public:
|
||||||
|
+ int operator* () { return 42; }
|
||||||
|
+};
|
||||||
|
+typedef C D;
|
||||||
|
+
|
||||||
|
+D u;
|
||||||
|
+D &v = u;
|
||||||
|
+
|
||||||
|
+int main ()
|
||||||
|
+{
|
||||||
|
+ return *v;
|
||||||
|
+}
|
||||||
|
--- src/gdb/testsuite/gdb.cp/typedef-operator.exp
|
||||||
|
+++ src/gdb/testsuite/gdb.cp/typedef-operator.exp 2011-02-21 17:18:30.916753000 +0000
|
||||||
|
@@ -0,0 +1,33 @@
|
||||||
|
+# Copyright 2011 Free Software Foundation, Inc.
|
||||||
|
+#
|
||||||
|
+# This program is free software; you can redistribute it and/or modify
|
||||||
|
+# it under the terms of the GNU General Public License as published by
|
||||||
|
+# the Free Software Foundation; either version 3 of the License, or
|
||||||
|
+# (at your option) any later version.
|
||||||
|
+#
|
||||||
|
+# This program is distributed in the hope that it will be useful,
|
||||||
|
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
+# GNU General Public License for more details.
|
||||||
|
+#
|
||||||
|
+# You should have received a copy of the GNU General Public License
|
||||||
|
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
+
|
||||||
|
+# This file is part of the gdb testsuite.
|
||||||
|
+
|
||||||
|
+if {[skip_cplus_tests]} { continue }
|
||||||
|
+
|
||||||
|
+set testfile "typedef-operator"
|
||||||
|
+if [prepare_for_testing $testfile $testfile $testfile.cc {c++ debug}] {
|
||||||
|
+ return -1
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+gdb_test_no_output "set language c++"
|
||||||
|
+
|
||||||
|
+gdb_test "p *u" {You can't do that without a process to debug.} "test crash"
|
||||||
|
+
|
||||||
|
+if ![runto_main] {
|
||||||
|
+ return -1
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+gdb_test "p *v" " = 42" "test typedef"
|
||||||
|
5
gdb.spec
5
gdb.spec
@ -27,7 +27,7 @@ Version: 7.2
|
|||||||
|
|
||||||
# The release always contains a leading reserved number, start it at 1.
|
# The release always contains a leading reserved number, start it at 1.
|
||||||
# `upstream' is not a part of `name' to stay fully rpm dependencies compatible for the testing.
|
# `upstream' is not a part of `name' to stay fully rpm dependencies compatible for the testing.
|
||||||
Release: 43%{?_with_upstream:.upstream}%{dist}
|
Release: 44%{?_with_upstream:.upstream}%{dist}
|
||||||
|
|
||||||
License: GPLv3+ and GPLv3+ with exceptions and GPLv2+ and GPLv2+ with exceptions and GPL+ and LGPLv2+ and GFDL and BSD and Public Domain
|
License: GPLv3+ and GPLv3+ with exceptions and GPLv2+ and GPLv2+ with exceptions and GPL+ and LGPLv2+ and GFDL and BSD and Public Domain
|
||||||
Group: Development/Debuggers
|
Group: Development/Debuggers
|
||||||
@ -1447,6 +1447,9 @@ fi
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Mon Feb 21 2011 Jan Kratochvil <jan.kratochvil@redhat.com> - 7.2-44.fc14
|
||||||
|
- Fix C++ operators resolving through typedefs (STL from gcc-4.5, BZ 678454).
|
||||||
|
|
||||||
* Fri Feb 18 2011 Jan Kratochvil <jan.kratochvil@redhat.com> - 7.2-43.fc14
|
* Fri Feb 18 2011 Jan Kratochvil <jan.kratochvil@redhat.com> - 7.2-43.fc14
|
||||||
- [vla] Fox Fortran vector slices for allocated arrays (for BZ 609782).
|
- [vla] Fox Fortran vector slices for allocated arrays (for BZ 609782).
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user