diff options
author | Tom Tromey <tromey@adacore.com> | 2019-06-07 11:29:36 -0600 |
---|---|---|
committer | Tom Tromey <tromey@adacore.com> | 2019-06-14 08:02:20 -0600 |
commit | 4268ec187d401b9b132afa1a13c73e0026a53c5d (patch) | |
tree | c897ebf2928eea030e6f1bdddf012e3eb6d95908 /gdb | |
parent | abdb711e0855f0597a96db0486b598144b788212 (diff) | |
download | binutils-4268ec187d401b9b132afa1a13c73e0026a53c5d.zip binutils-4268ec187d401b9b132afa1a13c73e0026a53c5d.tar.gz binutils-4268ec187d401b9b132afa1a13c73e0026a53c5d.tar.bz2 |
Recognize _ in attribute names
Ada attribute names can contain "_", but the lexer currently does not
allow this -- even though the "attributes" array lists some attributes
spelled this way.
This patch fixes the bug and adds test cases for the existing
attributes.
This was reviewed off-list by Joel. I'm checking it in.
gdb/ChangeLog
2019-06-14 Tom Tromey <tromey@adacore.com>
* ada-lex.l: Allow "_" in attribute names.
gdb/testsuite/ChangeLog
2019-06-14 Tom Tromey <tromey@adacore.com>
* gdb.ada/formatted_ref.exp (test_p_x_addr): Check
'unchecked_access and 'unrestricted_access as well.
Diffstat (limited to 'gdb')
-rw-r--r-- | gdb/ChangeLog | 4 | ||||
-rw-r--r-- | gdb/ada-lex.l | 2 | ||||
-rw-r--r-- | gdb/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/testsuite/gdb.ada/formatted_ref.exp | 18 |
4 files changed, 20 insertions, 9 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index cc0e9fd..9fbfcfa 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,9 @@ 2019-06-14 Tom Tromey <tromey@adacore.com> + * ada-lex.l: Allow "_" in attribute names. + +2019-06-14 Tom Tromey <tromey@adacore.com> + PR gdb/24653: * regcache.c (registers_changed): Don't call alloca. * top.c (execute_command): Don't call alloca. diff --git a/gdb/ada-lex.l b/gdb/ada-lex.l index 8ce7c3a..35db478 100644 --- a/gdb/ada-lex.l +++ b/gdb/ada-lex.l @@ -216,7 +216,7 @@ false { return FALSEKEYWORD; } /* ATTRIBUTES */ -{TICK}[a-zA-Z][a-zA-Z]+ { BEGIN INITIAL; return processAttribute (yytext+1); } +{TICK}[a-zA-Z][a-zA-Z_]+ { BEGIN INITIAL; return processAttribute (yytext+1); } /* PUNCTUATION */ diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index bd48c92..9bfd570 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,5 +1,10 @@ 2019-06-14 Tom Tromey <tromey@adacore.com> + * gdb.ada/formatted_ref.exp (test_p_x_addr): Check + 'unchecked_access and 'unrestricted_access as well. + +2019-06-14 Tom Tromey <tromey@adacore.com> + PR ada/24539: * gdb.ada/vla.exp: Update tests. * gdb.ada/vla/vla.adb (Record_Type): Use No_Component_Reordering diff --git a/gdb/testsuite/gdb.ada/formatted_ref.exp b/gdb/testsuite/gdb.ada/formatted_ref.exp index a000910..9641af8 100644 --- a/gdb/testsuite/gdb.ada/formatted_ref.exp +++ b/gdb/testsuite/gdb.ada/formatted_ref.exp @@ -67,14 +67,16 @@ proc test_p_x { var val addr } { proc test_p_x_addr { var addr } { global gdb_prompt - set test "print/x $var'access" - gdb_test_multiple $test $test { - -re "\\$\[0-9\]+ = $addr.*$gdb_prompt $" { - pass $test - } - -re "\\$\[0-9\]+ = 0x\[a-f0-9+\]+.*$gdb_prompt $" { - fail "$test (prints unexpected address)" - } + foreach attr {access unchecked_access unrestricted_access} { + set test "print/x $var'$attr" + gdb_test_multiple $test $test { + -re "\\$\[0-9\]+ = $addr.*$gdb_prompt $" { + pass $test + } + -re "\\$\[0-9\]+ = 0x\[a-f0-9+\]+.*$gdb_prompt $" { + fail "$test (prints unexpected address)" + } + } } return 0 } |