Re: [PATCH] Update gdb.ada/unchecked_union.exp for gnat-llvm
Andrew Burgess <[email protected]>
| Newsgroups | gmane.comp.gdb.patches |
|---|---|
| Message-ID | <[email protected]> |
Tom Tromey <[email protected]> writes: > gnat-llvm emits a slightly different encoding for Ada unchecked > unions. In particular this will let gdb show the discrminant for some > branches of a union which currently cannot be seen in GCC's output. I found this text really hard to understand initially. I initially thought the "this" in the second sentence was talking about "this patch", the encoding change. I also assumed the talk about "GCC's output" was a typo for "GDB's output", but you really mean "GDB's output when compiling with GCC's GNAT". Could I suggest a rewording: gnat-llvm emits a slightly different encoding for Ada unchecked unions. This encoding lets GDB resolve the discriminant for some branches that appear as "?" when compiled with GCC's GNAT. I do wish the quotemeta system didn't do hungry white space matching by default, especially as it's use expands through the testsuite. But that's out of scope for this patch, which looks good. Approved-By: Andrew Burgess <[email protected]> Thanks, Andrew > > This patch updates gdb.ada/unchecked_union.exp to allow this. > --- > gdb/testsuite/gdb.ada/unchecked_union.exp | 14 ++++++++++---- > 1 file changed, 10 insertions(+), 4 deletions(-) > > diff --git a/gdb/testsuite/gdb.ada/unchecked_union.exp b/gdb/testsuite/gdb.ada/unchecked_union.exp > index 6a54e606712..ef9da787e65 100644 > --- a/gdb/testsuite/gdb.ada/unchecked_union.exp > +++ b/gdb/testsuite/gdb.ada/unchecked_union.exp > @@ -24,20 +24,23 @@ standard_ada_testfile unchecked_union > proc multi_line_string {str} { > set result {} > foreach line $str { > - lappend result [string_to_regexp $line] > + lappend result [quotemeta $line] > } > set res [multi_line {*}$result] > verbose -log "RES: '$res'" > return $res > } > > +# Note the quotemeta expression here. gnat-llvm emits slightly a > +# different encoding here, which lets gdb see the discriminant for a > +# branch. > set inner_string \ > [list \ > " case ? is" \ > " when 0 =>" \ > " small: range 0 .. 255;" \ > " second: range 0 .. 255;" \ > - " when ? =>" \ > + " when @/\[1?\]/ =>" \ > " bval: range 0 .. 255;" \ > " when others =>" \ > " large: range 255 .. 510;" \ > @@ -50,12 +53,15 @@ set inner_full \ > $inner_string \ > [list "end record"]] > > +# Note the quotemeta expression here. gnat-llvm emits slightly a > +# different encoding here, which lets gdb see the discriminant for a > +# branch. > set pair_string \ > [list \ > " case ? is" \ > - " when ? =>" \ > + " when @/\[0?\]/ =>" \ > " field_one: range 0 .. 255;" \ > - " when ? =>" \ > + " when @/(\\?|others)/ =>" \ > " field_two: range 255 .. 510;" \ > " end case;"] > > > base-commit: 0f9faaebc91bc1886a563bde6c178601b4be743b > -- > 2.55.0