http://sourceware.org/ml/gdb-patches/2011-01/msg00559.html http://sourceware.org/ml/gdb-cvs/2011-01/msg00192.html ### src/gdb/ChangeLog 2011/01/28 16:32:26 1.12516 ### src/gdb/ChangeLog 2011/01/29 10:30:19 1.12517 ## -1,3 +1,9 @@ +2011-01-29 Jan Kratochvil + + Fix crash. + * valops.c (compare_parameters): Verify TYPE_NFIELDS before + touching TYPE_FIELD_ARTIFICIAL. + 2011-01-28 Richard Earnshaw * MAINTAINERS: Move myself from Responsible Maintainers to Authorized --- src/gdb/valops.c 2011/01/12 16:10:05 1.265 +++ src/gdb/valops.c 2011/01/29 10:30:19 1.266 @@ -3097,7 +3097,7 @@ { int start = 0; - if (TYPE_FIELD_ARTIFICIAL (t1, 0)) + if (TYPE_NFIELDS (t1) > 0 && TYPE_FIELD_ARTIFICIAL (t1, 0)) ++start; /* If skipping artificial fields, find the first real field ### src/gdb/testsuite/ChangeLog 2011/01/28 16:18:55 1.2563 ### src/gdb/testsuite/ChangeLog 2011/01/29 10:30:19 1.2564 ## -1,3 +1,8 @@ +2011-01-29 Jan Kratochvil + + * gdb.cp/noparam.exp: New file. + * gdb.cp/noparam.cc: New file. + 2011-01-28 Pedro Alves * gdb.trace/tfile.exp: Test that with no traceframe selected, --- src/gdb/testsuite/gdb.cp/noparam.cc +++ src/gdb/testsuite/gdb.cp/noparam.cc 2011-01-30 20:52:48.767554000 +0000 @@ -0,0 +1,29 @@ +/* This testcase 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 . */ + +class C +{ +public: + static void m () {} +}; + +int +main () +{ + C::m (); + return 0; +} --- src/gdb/testsuite/gdb.cp/noparam.exp +++ src/gdb/testsuite/gdb.cp/noparam.exp 2011-01-30 20:52:49.056124000 +0000 @@ -0,0 +1,21 @@ +# 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 . + +if { [prepare_for_testing noparam.exp "noparam" "noparam.cc" {debug c++}] } { + return -1 +} + +# Check if GDB does not crash. +gdb_test "p C::m (int)" "no member function matches that type instantiation"