+#define VARRAY_ELT_LIST(VA, N) VARRAY_CHECK (VA, N, te)
+#define VARRAY_EDGE(VA, N) VARRAY_CHECK (VA, N, e)
+#define VARRAY_TREE_PTR(VA, N) VARRAY_CHECK (VA, N, tp)
+
+/* Push a new element on the end of VA, extending it if necessary. */
+#define VARRAY_PUSH_CHAR(VA, X) VARRAY_PUSH (VA, c, X)
+#define VARRAY_PUSH_UCHAR(VA, X) VARRAY_PUSH (VA, uc, X)
+#define VARRAY_PUSH_SHORT(VA, X) VARRAY_PUSH (VA, s, X)
+#define VARRAY_PUSH_USHORT(VA, X) VARRAY_PUSH (VA, us, X)
+#define VARRAY_PUSH_INT(VA, X) VARRAY_PUSH (VA, i, X)
+#define VARRAY_PUSH_UINT(VA, X) VARRAY_PUSH (VA, u, X)
+#define VARRAY_PUSH_LONG(VA, X) VARRAY_PUSH (VA, l, X)
+#define VARRAY_PUSH_ULONG(VA, X) VARRAY_PUSH (VA, ul, X)
+#define VARRAY_PUSH_WIDE_INT(VA, X) VARRAY_PUSH (VA, hint, X)
+#define VARRAY_PUSH_UWIDE_INT(VA, X) VARRAY_PUSH (VA, uhint, X)
+#define VARRAY_PUSH_GENERIC_PTR(VA, X) VARRAY_PUSH (VA, generic, X)
+#define VARRAY_PUSH_GENERIC_PTR_NOGC(VA, X) VARRAY_PUSH (VA, generic_nogc, X)
+#define VARRAY_PUSH_CHAR_PTR(VA, X) VARRAY_PUSH (VA, cptr, X)
+#define VARRAY_PUSH_RTX(VA, X) VARRAY_PUSH (VA, rtx, X)
+#define VARRAY_PUSH_RTVEC(VA, X) VARRAY_PUSH (VA, rtvec, X)
+#define VARRAY_PUSH_TREE(VA, X) VARRAY_PUSH (VA, tree, X)
+#define VARRAY_PUSH_BITMAP(VA, X) VARRAY_PUSH (VA, bitmap, X)
+#define VARRAY_PUSH_REG(VA, X) VARRAY_PUSH (VA, reg, X)
+#define VARRAY_PUSH_CONST_EQUIV(VA, X) VARRAY_PUSH (VA, const_equiv, X)
+#define VARRAY_PUSH_BB(VA, X) VARRAY_PUSH (VA, bb, X)
+#define VARRAY_PUSH_EDGE(VA, X) VARRAY_PUSH (VA, e, X)
+#define VARRAY_PUSH_TREE_PTR(VA, X) VARRAY_PUSH (VA, tp, X)
+
+/* Return the last element of VA. */
+#define VARRAY_TOP(VA, T) VARRAY_CHECK(VA, (VA)->elements_used - 1, T)
+
+#define VARRAY_TOP_CHAR(VA) VARRAY_TOP (VA, c)
+#define VARRAY_TOP_UCHAR(VA) VARRAY_TOP (VA, uc)
+#define VARRAY_TOP_SHORT(VA) VARRAY_TOP (VA, s)
+#define VARRAY_TOP_USHORT(VA) VARRAY_TOP (VA, us)
+#define VARRAY_TOP_INT(VA) VARRAY_TOP (VA, i)
+#define VARRAY_TOP_UINT(VA) VARRAY_TOP (VA, u)
+#define VARRAY_TOP_LONG(VA) VARRAY_TOP (VA, l)
+#define VARRAY_TOP_ULONG(VA) VARRAY_TOP (VA, ul)
+#define VARRAY_TOP_WIDE_INT(VA) VARRAY_TOP (VA, hint)
+#define VARRAY_TOP_UWIDE_INT(VA) VARRAY_TOP (VA, uhint)
+#define VARRAY_TOP_GENERIC_PTR(VA) VARRAY_TOP (VA, generic)
+#define VARRAY_TOP_GENERIC_PTR_NOGC(VA) VARRAY_TOP (VA, generic_nogc)
+#define VARRAY_TOP_CHAR_PTR(VA) VARRAY_TOP (VA, cptr)
+#define VARRAY_TOP_RTX(VA) VARRAY_TOP (VA, rtx)
+#define VARRAY_TOP_RTVEC(VA) VARRAY_TOP (VA, rtvec)
+#define VARRAY_TOP_TREE(VA) VARRAY_TOP (VA, tree)
+#define VARRAY_TOP_BITMAP(VA) VARRAY_TOP (VA, bitmap)
+#define VARRAY_TOP_REG(VA) VARRAY_TOP (VA, reg)
+#define VARRAY_TOP_CONST_EQUIV(VA) VARRAY_TOP (VA, const_equiv)
+#define VARRAY_TOP_BB(VA) VARRAY_TOP (VA, bb)
+#define VARRAY_TOP_EDGE(VA) VARRAY_TOP (VA, e)
+#define VARRAY_TOP_TREE_PTR(VA) VARRAY_TOP (VA, tp)
+
+#endif /* ! GCC_VARRAY_H */