Implement binary numbers parsing.
	* c-exp.y (parse_number): New case 'b' and 'B'.

gdb/testsuite/
	Implement binary numbers parsing.
	* gdb.base/printcmds.exp (test_integer_literals_accepted)
	(test_integer_literals_rejected): New binary tests.
This commit is contained in:
Jan Kratochvil 2010-01-11 17:58:16 +00:00
parent e0ae424066
commit b5cfddf53b
4 changed files with 35 additions and 1 deletions

View File

@ -1,3 +1,8 @@
2010-01-11 Jan Kratochvil <jan.kratochvil@redhat.com>
Implement binary numbers parsing.
* c-exp.y (parse_number): New case 'b' and 'B'.
2010-01-11 Jan Kratochvil <jan.kratochvil@redhat.com>
Tristan Gingold <gingold@adacore.com>

View File

@ -1411,6 +1411,16 @@ parse_number (char *p, int len, int parsed_float, YYSTYPE *putithere)
}
break;
case 'b':
case 'B':
if (len >= 3)
{
p += 2;
base = 2;
len -= 2;
}
break;
case 't':
case 'T':
case 'd':

View File

@ -1,3 +1,9 @@
2010-01-11 Jan Kratochvil <jan.kratochvil@redhat.com>
Implement binary numbers parsing.
* gdb.base/printcmds.exp (test_integer_literals_accepted)
(test_integer_literals_rejected): New binary tests.
2010-01-09 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
* gdb.cell/configure: Regenerate.

View File

@ -78,6 +78,13 @@ proc test_integer_literals_accepted {} {
gdb_test "p 0xabcdef" " = 11259375"
gdb_test "p 0xAbCdEf" " = 11259375"
gdb_test "p/x 0x123" " = 0x123"
# Test various binary values.
gdb_test "p 0b0" " = 0"
gdb_test "p 0b1111" " = 15"
gdb_test "p 0B1111" " = 15"
gdb_test "p -0b1111" " = -15"
}
proc test_character_literals_accepted {} {
@ -99,7 +106,8 @@ proc test_character_literals_accepted {} {
proc test_integer_literals_rejected {} {
global gdb_prompt
test_print_reject "p 0x"
test_print_reject "p 0x"
test_print_reject "p 0b"
gdb_test "p ''" "(Empty character constant\\.|A character constant must contain at least one character\\.)"
gdb_test "p '''" "(Empty character constant\\.|A character constant must contain at least one character\\.)"
test_print_reject "p '\\'"
@ -131,6 +139,11 @@ proc test_integer_literals_rejected {} {
test_print_reject "p 0xG"
test_print_reject "p 0xAG"
# Test various binary values.
test_print_reject "p 0b2"
test_print_reject "p 0b12"
}
proc test_print_all_chars {} {