+2020-11-04 Tom Tromey <tromey@adacore.com>
+
+ * ada-typeprint.c (ada_print_type): Handle __XVL fields.
+
2020-11-04 Tom Tromey <tromey@adacore.com>
* ada-typeprint.c (ada_print_type): Handle __T types.
break;
case TYPE_CODE_PTR:
case TYPE_CODE_TYPEDEF:
- fprintf_filtered (stream, "access ");
+ /* An __XVL field is not truly a pointer, so don't print
+ "access" in this case. */
+ if (type->code () != TYPE_CODE_PTR
+ || strstr (varstring, "___XVL") == nullptr)
+ fprintf_filtered (stream, "access ");
ada_print_type (TYPE_TARGET_TYPE (type), "", stream, show, level,
flags);
break;
+2020-11-04 Tom Tromey <tromey@adacore.com>
+
+ * gdb.ada/funcall_ref.exp: Update.
+ * gdb.ada/var_rec_arr.exp: Update.
+
2020-11-04 Tom Tromey <tromey@adacore.com>
* gdb.ada/rec_ptype.exp: New file.
# references).
set pass_re [multi_line "type = <ref> record" \
" n: natural;" \
- " s: access array \\(1 \\.\\. n\\) of character;" \
+ " s: array \\(1 \\.\\. n\\) of character;" \
"end record"]
# With DWARF we get debuginfo that could in theory show "1..n" for
# the range:
gdb_test "print a2(3)" \
" = \\(i => 0, s => \"\"\\)"
- # Note that the "access" is only printed when the gnat encodings
- # are used. This is due to how the encodings work -- the type
- # doesn't actually have the "access", and so here the DWARF
- # encoding is more correct.
- if {$scenario == "all"} {
- set ex [multi_line "type = record" \
- " i: pck\\.small_type;" \
- " s: access array \\((<>|1 \\.\\. i)\\) of character;" \
- "end record"]
- } else {
- set ex [multi_line "type = record" \
- " i: pck\\.small_type;" \
- " s: array \\((<>|1 \\.\\. i)\\) of character;" \
- "end record"]
- }
-
- gdb_test "ptype a1(1)" $ex
+ gdb_test "ptype a1(1)" \
+ [multi_line "type = record" \
+ " i: pck\\.small_type;" \
+ " s: array \\((<>|1 \\.\\. i)\\) of character;" \
+ "end record"]
}