+Mon Feb 8 13:17:10 2010 Chris Moller <moller@mollerware.com>
+
+ PR gdb/10728
+ * valarith.c (value_ptrdiff): Added a test for a zero type length,
+ warn if found, and assume length = 1.
+
2010-02-08 Chris Moller <cmoller@redhat.com>
PR gdb/9067
+Mon Feb 8 13:18:22 2010 Chris Moller <moller@mollerware.com>
+
+ PR gdb/10728
+ * gdb.cp/pr10728-x.h: New file.
+ * gdb.cp/pr10728-x.cc: New file.
+ * gdb.cp/pr10728-y.cc: New file.
+ * gdb.cp/pr10728.exp: New file.
+ * gdb.cp/Makefile.in (EXECUTABLES): Add pr10728
+
Mon Feb 8 12:54:54 2010 Chris Moller <moller@mollerware.com>
PR gdb/9067
EXECUTABLES = ambiguous annota2 anon-union cplusfuncs cttiadd \
derivation inherit local member-ptr method misc \
overload ovldbreak ref-typ ref-typ2 templates userdef virtfunc namespace \
- ref-types ref-params method2 pr9594 gdb2495 virtfunc2 pr9067
+ ref-types ref-params method2 pr9594 gdb2495 virtfunc2 pr9067 \
+ pr1072
all info install-info dvi install uninstall installcheck check:
@echo "Nothing to be done for $@..."
--- /dev/null
+# Copyright 2010 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
+
+set nl "\[\r\n\]+"
+
+if { [skip_cplus_tests] } { continue }
+
+load_lib "cp-support.exp"
+
+set testfile "pr10728"
+set srcfile ${testfile}-x.cc
+set tfx ${testfile}-x
+set tfy ${testfile}-y
+set binfile ${objdir}/${subdir}/${testfile}
+
+if { [gdb_compile "${srcdir}/${subdir}/${tfy}.cc" "${tfy}.o" object {c++}] != "" } {
+ untested pr10728.exp
+ return -1
+}
+
+if { [gdb_compile "${srcdir}/${subdir}/${tfx}.cc" "${tfx}.o" object {debug c++}] != "" } {
+ untested pr10728.exp
+ return -1
+}
+
+if { [gdb_compile "${tfx}.o ${tfy}.o" ${binfile} executable {debug c++}] != "" } {
+ untested pr10728.exp
+ return -1
+}
+
+
+gdb_exit
+gdb_start
+gdb_reinitialize_dir $srcdir/$subdir
+gdb_load ${binfile}
+
+if ![runto_main] then {
+ perror "couldn't run to breakpoint"
+ continue
+}
+
+# set a breakpoint at the return stmt
+
+gdb_breakpoint [gdb_get_line_number "marker 1"]
+gdb_continue_to_breakpoint "marker 1"
+
+gdb_test "print x->y2 - x->y1" "warning: Type size unknown, assuming 1\. Try casting to a known type, or void \*\.\[^=\]*= 1"
+
+gdb_exit
+return 0
+
+
an integer nor a pointer of the same type."));
sz = TYPE_LENGTH (check_typedef (TYPE_TARGET_TYPE (type1)));
+ if (sz == 0)
+ {
+ warning (_("Type size unknown, assuming 1. "
+ "Try casting to a known type, or void *."));
+ sz = 1;
+ }
+
return (value_as_long (arg1) - value_as_long (arg2)) / sz;
}