* c-lang.c (evaluate_subexp_c): Correctly handle EVAL_SKIP.
gdb/testsuite
	* gdb.base/charset.exp: Add regression test.
This commit is contained in:
Tom Tromey 2009-04-15 21:55:04 +00:00
parent 27e3013dec
commit 334cc82d44
4 changed files with 22 additions and 1 deletions

View File

@ -1,3 +1,7 @@
2009-04-15 Tom Tromey <tromey@redhat.com>
* c-lang.c (evaluate_subexp_c): Correctly handle EVAL_SKIP.
2009-04-15 Eli Zaretskii <eliz@gnu.org>
* utils.c (parse_escape): Initialize target_char to pacify GCC.

View File

@ -941,7 +941,15 @@ evaluate_subexp_c (struct type *expect_type, struct expression *exp,
*pos += 2;
if (noside == EVAL_SKIP)
return NULL;
{
/* Return a dummy value of the appropriate type. */
if ((dest_type & C_CHAR) != 0)
result = allocate_value (type);
else
result = value_typed_string ("", 0, type);
do_cleanups (cleanup);
return result;
}
if ((dest_type & C_CHAR) != 0)
{

View File

@ -1,3 +1,7 @@
2009-04-15 Tom Tromey <tromey@redhat.com>
* gdb.base/charset.exp: Add regression test.
2009-04-14 Joel Brobecker <brobecker@adacore.com>
* gdb.base/exe-lock.exp: New testcase.

View File

@ -604,4 +604,9 @@ if {$ucs2_ok && $ucs4_ok} {
test_combination u UCS-2 U UCS-4
}
# Regression test for a cleanup bug in the charset code.
gdb_test "print 'a' == 'a' || 'b' == 'b'" \
".* = 1" \
"EVAL_SKIP cleanup handling regression test"
gdb_exit