+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"]
 }