OSDN Git Service

gdb/
authorjkratoch <jkratoch>
Tue, 12 Jan 2010 02:58:15 +0000 (02:58 +0000)
committerjkratoch <jkratoch>
Tue, 12 Jan 2010 02:58:15 +0000 (02:58 +0000)
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.

gdb/ChangeLog
gdb/c-exp.y
gdb/testsuite/ChangeLog
gdb/testsuite/gdb.base/printcmds.exp

index 8a12029..34dcb5d 100644 (file)
@@ -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
index ba5fddc..2ea5c6f 100644 (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':
index 93cf035..fe1c4be 100644 (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.
index 76265bb..74ea6ed 100644 (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 {} {