gdb
authorTom Tromey <tromey@redhat.com>
Tue, 28 Apr 2009 01:03:24 +0000 (01:03 +0000)
committerTom Tromey <tromey@redhat.com>
Tue, 28 Apr 2009 01:03:24 +0000 (01:03 +0000)
* c-exp.y (yylex): Handle '[' and ']' like '(' and ')'.
gdb/testsuite
* gdb.base/printcmds.exp (test_printf): Test comma operator in [].

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

index 1d932f85a95bc54c7b65222dff7c43dd5dd036f3..5dd33b2143958a831470a3fb6463f48df4688468 100644 (file)
@@ -1,3 +1,7 @@
+2009-04-27  Tom Tromey  <tromey@redhat.com>
+
+       * c-exp.y (yylex): Handle '[' and ']' like '(' and ')'.
+
 2009-04-27  Jerome Guitton  <guitton@adacore.com>
 
        * symtab.c (append_exact_match_to_sals): New function, extracted
index 92d6c215a5e877eb1a5e0b9d3471d9c09b3710e5..688c060ef2e9202a0be3b29b7c7f7111404ca057 100644 (file)
@@ -1885,11 +1885,13 @@ yylex ()
       lexptr++;
       goto retry;
 
+    case '[':
     case '(':
       paren_depth++;
       lexptr++;
       return c;
 
+    case ']':
     case ')':
       if (paren_depth == 0)
        return 0;
@@ -1991,8 +1993,6 @@ yylex ()
     case '@':
     case '<':
     case '>':
-    case '[':
-    case ']':
     case '?':
     case ':':
     case '=':
index fa6cd7d4ff006a9b4595f374ed5e4d86cd0bff94..61aee21934cf2a18837ff6b4f89d72556857578e 100644 (file)
@@ -1,3 +1,7 @@
+2009-04-27  Tom Tromey  <tromey@redhat.com>
+
+       * gdb.base/printcmds.exp (test_printf): Test comma operator in [].
+
 2009-04-27  Doug Evans  <dje@google.com>
 
        * gdb.threads/watchthreads.c (main): Initialize args before starting
index b6f8a1f5d84ebcc2a468104c8204cf3d31692ca6..65ab3a45c152e7f45e4d0bcdc0ac8ae5272f3026 100644 (file)
@@ -666,6 +666,9 @@ proc test_printf {} {
     gdb_test "printf \"x=%d,y=%f,z=%d\\n\", 5, 6.0, 7" "x=5,y=6\.0+,z=7"
     gdb_test "printf \"%x %f, %c %x, %x, %f\\n\", 0xbad, -99.541, 'z',\
 0xfeedface, 0xdeadbeef, 5.0" "bad -99.54\[0-9\]+, z feedface, deadbeef, 5.0+"
+
+    # Regression test for C lexer bug.
+    gdb_test "printf \"%c\\n\", \"x\"\[1,0\]" "x"
 }
 
 #Test printing DFP values with printf