diff --git a/tests/auto/cplusplus/typeprettyprinter/tst_typeprettyprinter.cpp b/tests/auto/cplusplus/typeprettyprinter/tst_typeprettyprinter.cpp
index acb11eddaf01d8486909c9bd23ac4be96ee5fba8..50ba94ddbe9d7a03ddfa96a2b5d6062e266d1ed1 100644
--- a/tests/auto/cplusplus/typeprettyprinter/tst_typeprettyprinter.cpp
+++ b/tests/auto/cplusplus/typeprettyprinter/tst_typeprettyprinter.cpp
@@ -76,6 +76,9 @@ Argument *arg(const QString &name, const FullySpecifiedType &ty)
 FullySpecifiedType voidTy()
 { return FullySpecifiedType(new VoidType); }
 
+FullySpecifiedType intTy()
+{ return FullySpecifiedType(new IntegerType(IntegerType::Int)); }
+
 FullySpecifiedType fnTy(const QString &name, const FullySpecifiedType &ret)
 {
     Function *fn = new Function(unit, 0, nameId(name));
@@ -181,6 +184,17 @@ void tst_TypePrettyPrinter::basic_data()
     addRow(ref(arr(arr(voidTy()))), "void (&)[][]");
     addRow(ref(arr(ref(voidTy()))), "void &(&)[]");
     addRow(arr(ref(arr(voidTy()))), "void (&[])[]");
+
+    // rvalue references
+    addRow(rref(voidTy()), "void &&");
+    addRow(rref(cnst(voidTy())), "const void &&");
+
+    addRow(rref(arr(voidTy())), "void (&&)[]");
+    addRow(rref(arr(arr(voidTy()))), "void (&&)[][]");
+
+    // simple functions
+    addRow(ptr(fnTy("foo", voidTy(), intTy())), "void (*foo)(int)", "foo");
+    addRow(ptr(fnTy("foo", voidTy(), ptr(voidTy()))), "void (*foo)(void *)", "foo");
 }
 
 void tst_TypePrettyPrinter::basic()