aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/ChangeLog5
-rw-r--r--gdb/c-exp.y10
-rw-r--r--gdb/testsuite/ChangeLog6
-rw-r--r--gdb/testsuite/gdb.base/printcmds.exp15
4 files changed, 35 insertions, 1 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 8a12029..34dcb5d 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,4 +1,9 @@
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>
* solib.c (info_sharedlibrary_command): Replace
diff --git a/gdb/c-exp.y b/gdb/c-exp.y
index ba5fddc..2ea5c6f 100644
--- a/gdb/c-exp.y
+++ b/gdb/c-exp.y
@@ -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':
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 93cf035..fe1c4be 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -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.
diff --git a/gdb/testsuite/gdb.base/printcmds.exp b/gdb/testsuite/gdb.base/printcmds.exp
index 76265bb..74ea6ed 100644
--- a/gdb/testsuite/gdb.base/printcmds.exp
+++ b/gdb/testsuite/gdb.base/printcmds.exp
@@ -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 {} {