[clang-tools-extra] aef5d8f - [clang] NFC: Rename rvalue to prvalue

Matheus Izvekov via cfe-commits cfe-commits at lists.llvm.org
Wed Jun 9 03:27:23 PDT 2021


Author: Matheus Izvekov
Date: 2021-06-09T12:27:10+02:00
New Revision: aef5d8fdc7d0d348125d5ecf4a13be5888eb1654

URL: https://github.com/llvm/llvm-project/commit/aef5d8fdc7d0d348125d5ecf4a13be5888eb1654
DIFF: https://github.com/llvm/llvm-project/commit/aef5d8fdc7d0d348125d5ecf4a13be5888eb1654.diff

LOG: [clang] NFC: Rename rvalue to prvalue

This renames the expression value categories from rvalue to prvalue,
keeping nomenclature consistent with C++11 onwards.

C++ has the most complicated taxonomy here, and every other language
only uses a subset of it, so it's less confusing to use the C++ names
consistently, and mentally remap to the C names when working on that
context (prvalue -> rvalue, no xvalues, etc).

Renames:
* VK_RValue -> VK_PRValue
* Expr::isRValue -> Expr::isPRValue
* SK_QualificationConversionRValue -> SK_QualificationConversionPRValue
* JSON AST Dumper Expression nodes value category: "rvalue" -> "prvalue"

Signed-off-by: Matheus Izvekov <mizvekov at gmail.com>

Reviewed By: rsmith

Differential Revision: https://reviews.llvm.org/D103720

Added: 
    

Modified: 
    clang-tools-extra/clang-tidy/misc/UniqueptrResetReleaseCheck.cpp
    clang-tools-extra/clang-tidy/modernize/LoopConvertCheck.cpp
    clang/include/clang/AST/Expr.h
    clang/include/clang/AST/ExprCXX.h
    clang/include/clang/AST/ExprObjC.h
    clang/include/clang/Basic/Specifiers.h
    clang/include/clang/Sema/Initialization.h
    clang/include/clang/Sema/Sema.h
    clang/lib/AST/DeclCXX.cpp
    clang/lib/AST/Expr.cpp
    clang/lib/AST/ExprCXX.cpp
    clang/lib/AST/ExprClassification.cpp
    clang/lib/AST/ExprConcepts.cpp
    clang/lib/AST/ExprConstant.cpp
    clang/lib/AST/ExprObjC.cpp
    clang/lib/AST/JSONNodeDumper.cpp
    clang/lib/AST/TextNodeDumper.cpp
    clang/lib/Analysis/BodyFarm.cpp
    clang/lib/Analysis/ThreadSafety.cpp
    clang/lib/CodeGen/CGBlocks.cpp
    clang/lib/CodeGen/CGExpr.cpp
    clang/lib/CodeGen/CGExprScalar.cpp
    clang/lib/CodeGen/CGObjC.cpp
    clang/lib/CodeGen/CGOpenMPRuntime.cpp
    clang/lib/CodeGen/CGStmtOpenMP.cpp
    clang/lib/Frontend/Rewrite/RewriteModernObjC.cpp
    clang/lib/Frontend/Rewrite/RewriteObjC.cpp
    clang/lib/Sema/Sema.cpp
    clang/lib/Sema/SemaCast.cpp
    clang/lib/Sema/SemaChecking.cpp
    clang/lib/Sema/SemaCoroutine.cpp
    clang/lib/Sema/SemaDecl.cpp
    clang/lib/Sema/SemaDeclAttr.cpp
    clang/lib/Sema/SemaDeclCXX.cpp
    clang/lib/Sema/SemaExpr.cpp
    clang/lib/Sema/SemaExprCXX.cpp
    clang/lib/Sema/SemaExprMember.cpp
    clang/lib/Sema/SemaExprObjC.cpp
    clang/lib/Sema/SemaFixItUtils.cpp
    clang/lib/Sema/SemaInit.cpp
    clang/lib/Sema/SemaLambda.cpp
    clang/lib/Sema/SemaLookup.cpp
    clang/lib/Sema/SemaObjCProperty.cpp
    clang/lib/Sema/SemaOpenMP.cpp
    clang/lib/Sema/SemaOverload.cpp
    clang/lib/Sema/SemaPseudoObject.cpp
    clang/lib/Sema/SemaStmt.cpp
    clang/lib/Sema/SemaStmtAsm.cpp
    clang/lib/Sema/SemaTemplate.cpp
    clang/lib/Sema/SemaTemplateInstantiate.cpp
    clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
    clang/lib/Sema/SemaType.cpp
    clang/lib/Sema/TreeTransform.h
    clang/lib/StaticAnalyzer/Checkers/MoveChecker.cpp
    clang/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp
    clang/lib/StaticAnalyzer/Core/CallEvent.cpp
    clang/test/AST/ast-dump-decl-json.c
    clang/test/AST/ast-dump-decl-json.m
    clang/test/AST/ast-dump-expr-json.c
    clang/test/AST/ast-dump-expr-json.cpp
    clang/test/AST/ast-dump-expr-json.m
    clang/test/AST/ast-dump-funcs-json.cpp
    clang/test/AST/ast-dump-if-json.cpp
    clang/test/AST/ast-dump-objc-arc-json.m
    clang/test/AST/ast-dump-record-definition-data-json.cpp
    clang/test/AST/ast-dump-records-json.cpp
    clang/test/AST/ast-dump-stmt-json.c
    clang/test/AST/ast-dump-stmt-json.cpp
    clang/test/AST/ast-dump-stmt-json.m
    clang/test/AST/ast-dump-template-decls-json.cpp
    clang/test/AST/ast-dump-temporaries-json.cpp
    clang/test/AST/ast-dump-types-errors-json.cpp
    clang/test/AST/multistep-explicit-cast-json.c
    clang/test/AST/multistep-explicit-cast-json.cpp

Removed: 
    


################################################################################
diff  --git a/clang-tools-extra/clang-tidy/misc/UniqueptrResetReleaseCheck.cpp b/clang-tools-extra/clang-tidy/misc/UniqueptrResetReleaseCheck.cpp
index 3d5c86493ed1e..a063fd9c99066 100644
--- a/clang-tools-extra/clang-tidy/misc/UniqueptrResetReleaseCheck.cpp
+++ b/clang-tools-extra/clang-tidy/misc/UniqueptrResetReleaseCheck.cpp
@@ -124,7 +124,7 @@ void UniqueptrResetReleaseCheck::check(const MatchFinder::MatchResult &Result) {
     AssignmentText = " = std::move(*";
     TrailingText = ")";
     NeedsUtilityInclude = true;
-  } else if (!Right->isRValue()) {
+  } else if (!Right->isPRValue()) {
     AssignmentText = " = std::move(";
     TrailingText = ")";
     NeedsUtilityInclude = true;

diff  --git a/clang-tools-extra/clang-tidy/modernize/LoopConvertCheck.cpp b/clang-tools-extra/clang-tidy/modernize/LoopConvertCheck.cpp
index 9f6ef08ef8397..e78f96d1f0c29 100644
--- a/clang-tools-extra/clang-tidy/modernize/LoopConvertCheck.cpp
+++ b/clang-tools-extra/clang-tidy/modernize/LoopConvertCheck.cpp
@@ -429,7 +429,7 @@ static bool usagesAreConst(ASTContext *Context, const UsageResult &Usages) {
 /// by reference.
 static bool usagesReturnRValues(const UsageResult &Usages) {
   for (const auto &U : Usages) {
-    if (U.Expression && !U.Expression->isRValue())
+    if (U.Expression && !U.Expression->isPRValue())
       return false;
   }
   return true;

diff  --git a/clang/include/clang/AST/Expr.h b/clang/include/clang/AST/Expr.h
index 55ee96feae98c..ddef2564a43cd 100644
--- a/clang/include/clang/AST/Expr.h
+++ b/clang/include/clang/AST/Expr.h
@@ -266,13 +266,11 @@ class Expr : public ValueStmt {
   /// C++11 divides the concept of "r-value" into pure r-values
   /// ("pr-values") and so-called expiring values ("x-values"), which
   /// identify specific objects that can be safely cannibalized for
-  /// their resources.  This is an unfortunate abuse of terminology on
-  /// the part of the C++ committee.  In Clang, when we say "r-value",
-  /// we generally mean a pr-value.
+  /// their resources.
   bool isLValue() const { return getValueKind() == VK_LValue; }
-  bool isRValue() const { return getValueKind() == VK_RValue; }
+  bool isPRValue() const { return getValueKind() == VK_PRValue; }
   bool isXValue() const { return getValueKind() == VK_XValue; }
-  bool isGLValue() const { return getValueKind() != VK_RValue; }
+  bool isGLValue() const { return getValueKind() != VK_PRValue; }
 
   enum LValueClassification {
     LV_Valid,
@@ -425,7 +423,7 @@ class Expr : public ValueStmt {
                 ? VK_LValue
                 : (RT->getPointeeType()->isFunctionType()
                      ? VK_LValue : VK_XValue));
-    return VK_RValue;
+    return VK_PRValue;
   }
 
   /// getValueKind - The value kind that this expression produces.
@@ -1588,8 +1586,8 @@ class CharacterLiteral : public Expr {
   // type should be IntTy
   CharacterLiteral(unsigned value, CharacterKind kind, QualType type,
                    SourceLocation l)
-      : Expr(CharacterLiteralClass, type, VK_RValue, OK_Ordinary), Value(value),
-        Loc(l) {
+      : Expr(CharacterLiteralClass, type, VK_PRValue, OK_Ordinary),
+        Value(value), Loc(l) {
     CharacterLiteralBits.Kind = kind;
     setDependence(ExprDependence::None);
   }
@@ -1709,7 +1707,7 @@ class ImaginaryLiteral : public Expr {
   Stmt *Val;
 public:
   ImaginaryLiteral(Expr *val, QualType Ty)
-      : Expr(ImaginaryLiteralClass, Ty, VK_RValue, OK_Ordinary), Val(val) {
+      : Expr(ImaginaryLiteralClass, Ty, VK_PRValue, OK_Ordinary), Val(val) {
     setDependence(ExprDependence::None);
   }
 
@@ -2547,7 +2545,8 @@ class UnaryExprOrTypeTraitExpr : public Expr {
   UnaryExprOrTypeTraitExpr(UnaryExprOrTypeTrait ExprKind, TypeSourceInfo *TInfo,
                            QualType resultType, SourceLocation op,
                            SourceLocation rp)
-      : Expr(UnaryExprOrTypeTraitExprClass, resultType, VK_RValue, OK_Ordinary),
+      : Expr(UnaryExprOrTypeTraitExprClass, resultType, VK_PRValue,
+             OK_Ordinary),
         OpLoc(op), RParenLoc(rp) {
     assert(ExprKind <= UETT_Last && "invalid enum value!");
     UnaryExprOrTypeTraitExprBits.Kind = ExprKind;
@@ -4287,7 +4286,7 @@ class AddrLabelExpr : public Expr {
 public:
   AddrLabelExpr(SourceLocation AALoc, SourceLocation LLoc, LabelDecl *L,
                 QualType t)
-      : Expr(AddrLabelExprClass, t, VK_RValue, OK_Ordinary), AmpAmpLoc(AALoc),
+      : Expr(AddrLabelExprClass, t, VK_PRValue, OK_Ordinary), AmpAmpLoc(AALoc),
         LabelLoc(LLoc), Label(L) {
     setDependence(ExprDependence::None);
   }
@@ -4332,7 +4331,7 @@ class StmtExpr : public Expr {
 public:
   StmtExpr(CompoundStmt *SubStmt, QualType T, SourceLocation LParenLoc,
            SourceLocation RParenLoc, unsigned TemplateDepth)
-      : Expr(StmtExprClass, T, VK_RValue, OK_Ordinary), SubStmt(SubStmt),
+      : Expr(StmtExprClass, T, VK_PRValue, OK_Ordinary), SubStmt(SubStmt),
         LParenLoc(LParenLoc), RParenLoc(RParenLoc) {
     setDependence(computeDependence(this, TemplateDepth));
     // FIXME: A templated statement expression should have an associated
@@ -4582,7 +4581,7 @@ class GNUNullExpr : public Expr {
 
 public:
   GNUNullExpr(QualType Ty, SourceLocation Loc)
-      : Expr(GNUNullExprClass, Ty, VK_RValue, OK_Ordinary), TokenLoc(Loc) {
+      : Expr(GNUNullExprClass, Ty, VK_PRValue, OK_Ordinary), TokenLoc(Loc) {
     setDependence(ExprDependence::None);
   }
 
@@ -4617,7 +4616,7 @@ class VAArgExpr : public Expr {
 public:
   VAArgExpr(SourceLocation BLoc, Expr *e, TypeSourceInfo *TInfo,
             SourceLocation RPLoc, QualType t, bool IsMS)
-      : Expr(VAArgExprClass, t, VK_RValue, OK_Ordinary), Val(e),
+      : Expr(VAArgExprClass, t, VK_PRValue, OK_Ordinary), Val(e),
         TInfo(TInfo, IsMS), BuiltinLoc(BLoc), RParenLoc(RPLoc) {
     setDependence(computeDependence(this));
   }
@@ -5309,7 +5308,7 @@ class DesignatedInitExpr final
 class NoInitExpr : public Expr {
 public:
   explicit NoInitExpr(QualType ty)
-      : Expr(NoInitExprClass, ty, VK_RValue, OK_Ordinary) {
+      : Expr(NoInitExprClass, ty, VK_PRValue, OK_Ordinary) {
     setDependence(computeDependence(this));
   }
 
@@ -5405,7 +5404,7 @@ class ArrayInitLoopExpr : public Expr {
 
 public:
   explicit ArrayInitLoopExpr(QualType T, Expr *CommonInit, Expr *ElementInit)
-      : Expr(ArrayInitLoopExprClass, T, VK_RValue, OK_Ordinary),
+      : Expr(ArrayInitLoopExprClass, T, VK_PRValue, OK_Ordinary),
         SubExprs{CommonInit, ElementInit} {
     setDependence(computeDependence(this));
   }
@@ -5456,7 +5455,7 @@ class ArrayInitIndexExpr : public Expr {
 
 public:
   explicit ArrayInitIndexExpr(QualType T)
-      : Expr(ArrayInitIndexExprClass, T, VK_RValue, OK_Ordinary) {
+      : Expr(ArrayInitIndexExprClass, T, VK_PRValue, OK_Ordinary) {
     setDependence(ExprDependence::None);
   }
 
@@ -5489,7 +5488,7 @@ class ArrayInitIndexExpr : public Expr {
 class ImplicitValueInitExpr : public Expr {
 public:
   explicit ImplicitValueInitExpr(QualType ty)
-      : Expr(ImplicitValueInitExprClass, ty, VK_RValue, OK_Ordinary) {
+      : Expr(ImplicitValueInitExprClass, ty, VK_PRValue, OK_Ordinary) {
     setDependence(computeDependence(this));
   }
 
@@ -5894,7 +5893,7 @@ class ExtVectorElementExpr : public Expr {
   ExtVectorElementExpr(QualType ty, ExprValueKind VK, Expr *base,
                        IdentifierInfo &accessor, SourceLocation loc)
       : Expr(ExtVectorElementExprClass, ty, VK,
-             (VK == VK_RValue ? OK_Ordinary : OK_VectorComponent)),
+             (VK == VK_PRValue ? OK_Ordinary : OK_VectorComponent)),
         Base(base), Accessor(&accessor), AccessorLoc(loc) {
     setDependence(computeDependence(this));
   }
@@ -5951,7 +5950,7 @@ class BlockExpr : public Expr {
   BlockDecl *TheBlock;
 public:
   BlockExpr(BlockDecl *BD, QualType ty)
-      : Expr(BlockExprClass, ty, VK_RValue, OK_Ordinary), TheBlock(BD) {
+      : Expr(BlockExprClass, ty, VK_PRValue, OK_Ordinary), TheBlock(BD) {
     setDependence(computeDependence(this));
   }
 

diff  --git a/clang/include/clang/AST/ExprCXX.h b/clang/include/clang/AST/ExprCXX.h
index fbeeb4004f7d0..c46f9bd7f4db0 100644
--- a/clang/include/clang/AST/ExprCXX.h
+++ b/clang/include/clang/AST/ExprCXX.h
@@ -721,7 +721,7 @@ class UserDefinedLiteral final : public CallExpr {
 class CXXBoolLiteralExpr : public Expr {
 public:
   CXXBoolLiteralExpr(bool Val, QualType Ty, SourceLocation Loc)
-      : Expr(CXXBoolLiteralExprClass, Ty, VK_RValue, OK_Ordinary) {
+      : Expr(CXXBoolLiteralExprClass, Ty, VK_PRValue, OK_Ordinary) {
     CXXBoolLiteralExprBits.Value = Val;
     CXXBoolLiteralExprBits.Loc = Loc;
     setDependence(ExprDependence::None);
@@ -759,7 +759,7 @@ class CXXBoolLiteralExpr : public Expr {
 class CXXNullPtrLiteralExpr : public Expr {
 public:
   CXXNullPtrLiteralExpr(QualType Ty, SourceLocation Loc)
-      : Expr(CXXNullPtrLiteralExprClass, Ty, VK_RValue, OK_Ordinary) {
+      : Expr(CXXNullPtrLiteralExprClass, Ty, VK_PRValue, OK_Ordinary) {
     CXXNullPtrLiteralExprBits.Loc = Loc;
     setDependence(ExprDependence::None);
   }
@@ -799,7 +799,7 @@ class CXXStdInitializerListExpr : public Expr {
   friend class ASTStmtReader;
 
   CXXStdInitializerListExpr(QualType Ty, Expr *SubExpr)
-      : Expr(CXXStdInitializerListExprClass, Ty, VK_RValue, OK_Ordinary),
+      : Expr(CXXStdInitializerListExprClass, Ty, VK_PRValue, OK_Ordinary),
         SubExpr(SubExpr) {
     setDependence(computeDependence(this));
   }
@@ -1142,7 +1142,7 @@ class CXXUuidofExpr : public Expr {
 class CXXThisExpr : public Expr {
 public:
   CXXThisExpr(SourceLocation L, QualType Ty, bool IsImplicit)
-      : Expr(CXXThisExprClass, Ty, VK_RValue, OK_Ordinary) {
+      : Expr(CXXThisExprClass, Ty, VK_PRValue, OK_Ordinary) {
     CXXThisExprBits.IsImplicit = IsImplicit;
     CXXThisExprBits.Loc = L;
     setDependence(computeDependence(this));
@@ -1191,7 +1191,7 @@ class CXXThrowExpr : public Expr {
   // null if not present.
   CXXThrowExpr(Expr *Operand, QualType Ty, SourceLocation Loc,
                bool IsThrownVariableInScope)
-      : Expr(CXXThrowExprClass, Ty, VK_RValue, OK_Ordinary), Operand(Operand) {
+      : Expr(CXXThrowExprClass, Ty, VK_PRValue, OK_Ordinary), Operand(Operand) {
     CXXThrowExprBits.ThrowLoc = Loc;
     CXXThrowExprBits.IsThrownVariableInScope = IsThrownVariableInScope;
     setDependence(computeDependence(this));
@@ -1414,7 +1414,7 @@ class CXXBindTemporaryExpr : public Expr {
   Stmt *SubExpr = nullptr;
 
   CXXBindTemporaryExpr(CXXTemporary *temp, Expr *SubExpr)
-      : Expr(CXXBindTemporaryExprClass, SubExpr->getType(), VK_RValue,
+      : Expr(CXXBindTemporaryExprClass, SubExpr->getType(), VK_PRValue,
              OK_Ordinary),
         Temp(temp), SubExpr(SubExpr) {
     setDependence(computeDependence(this));
@@ -1669,7 +1669,7 @@ class CXXInheritedCtorInitExpr : public Expr {
   CXXInheritedCtorInitExpr(SourceLocation Loc, QualType T,
                            CXXConstructorDecl *Ctor, bool ConstructsVirtualBase,
                            bool InheritedFromVirtualBase)
-      : Expr(CXXInheritedCtorInitExprClass, T, VK_RValue, OK_Ordinary),
+      : Expr(CXXInheritedCtorInitExprClass, T, VK_PRValue, OK_Ordinary),
         Constructor(Ctor), Loc(Loc),
         ConstructsVirtualBase(ConstructsVirtualBase),
         InheritedFromVirtualBase(InheritedFromVirtualBase) {
@@ -2100,7 +2100,7 @@ class CXXScalarValueInitExpr : public Expr {
   /// expression.
   CXXScalarValueInitExpr(QualType Type, TypeSourceInfo *TypeInfo,
                          SourceLocation RParenLoc)
-      : Expr(CXXScalarValueInitExprClass, Type, VK_RValue, OK_Ordinary),
+      : Expr(CXXScalarValueInitExprClass, Type, VK_PRValue, OK_Ordinary),
         TypeInfo(TypeInfo) {
     CXXScalarValueInitExprBits.RParenLoc = RParenLoc;
     setDependence(computeDependence(this));
@@ -2408,7 +2408,7 @@ class CXXDeleteExpr : public Expr {
   CXXDeleteExpr(QualType Ty, bool GlobalDelete, bool ArrayForm,
                 bool ArrayFormAsWritten, bool UsualArrayDeleteWantsSize,
                 FunctionDecl *OperatorDelete, Expr *Arg, SourceLocation Loc)
-      : Expr(CXXDeleteExprClass, Ty, VK_RValue, OK_Ordinary),
+      : Expr(CXXDeleteExprClass, Ty, VK_PRValue, OK_Ordinary),
         OperatorDelete(OperatorDelete), Argument(Arg) {
     CXXDeleteExprBits.GlobalDelete = GlobalDelete;
     CXXDeleteExprBits.ArrayForm = ArrayForm;
@@ -2775,7 +2775,7 @@ class ArrayTypeTraitExpr : public Expr {
   ArrayTypeTraitExpr(SourceLocation loc, ArrayTypeTrait att,
                      TypeSourceInfo *queried, uint64_t value, Expr *dimension,
                      SourceLocation rparen, QualType ty)
-      : Expr(ArrayTypeTraitExprClass, ty, VK_RValue, OK_Ordinary), ATT(att),
+      : Expr(ArrayTypeTraitExprClass, ty, VK_PRValue, OK_Ordinary), ATT(att),
         Value(value), Dimension(dimension), Loc(loc), RParen(rparen),
         QueriedType(queried) {
     assert(att <= ATT_Last && "invalid enum value!");
@@ -2841,7 +2841,7 @@ class ExpressionTraitExpr : public Expr {
 
   ExpressionTraitExpr(SourceLocation loc, ExpressionTrait et, Expr *queried,
                       bool value, SourceLocation rparen, QualType resultType)
-      : Expr(ExpressionTraitExprClass, resultType, VK_RValue, OK_Ordinary),
+      : Expr(ExpressionTraitExprClass, resultType, VK_PRValue, OK_Ordinary),
         ET(et), Value(value), Loc(loc), RParen(rparen),
         QueriedExpression(queried) {
     assert(et <= ET_Last && "invalid enum value!");
@@ -4003,7 +4003,7 @@ class CXXNoexceptExpr : public Expr {
 public:
   CXXNoexceptExpr(QualType Ty, Expr *Operand, CanThrowResult Val,
                   SourceLocation Keyword, SourceLocation RParen)
-      : Expr(CXXNoexceptExprClass, Ty, VK_RValue, OK_Ordinary),
+      : Expr(CXXNoexceptExprClass, Ty, VK_PRValue, OK_Ordinary),
         Operand(Operand), Range(Keyword, RParen) {
     CXXNoexceptExprBits.Value = Val == CT_Cannot;
     setDependence(computeDependence(this, Val));
@@ -4161,7 +4161,7 @@ class SizeOfPackExpr final
                  SourceLocation PackLoc, SourceLocation RParenLoc,
                  Optional<unsigned> Length,
                  ArrayRef<TemplateArgument> PartialArgs)
-      : Expr(SizeOfPackExprClass, SizeType, VK_RValue, OK_Ordinary),
+      : Expr(SizeOfPackExprClass, SizeType, VK_PRValue, OK_Ordinary),
         OperatorLoc(OperatorLoc), PackLoc(PackLoc), RParenLoc(RParenLoc),
         Length(Length ? *Length : PartialArgs.size()), Pack(Pack) {
     assert((!Length || PartialArgs.empty()) &&
@@ -4593,8 +4593,8 @@ class CXXFoldExpr : public Expr {
               SourceLocation LParenLoc, Expr *LHS, BinaryOperatorKind Opcode,
               SourceLocation EllipsisLoc, Expr *RHS, SourceLocation RParenLoc,
               Optional<unsigned> NumExpansions)
-      : Expr(CXXFoldExprClass, T, VK_RValue, OK_Ordinary), LParenLoc(LParenLoc),
-        EllipsisLoc(EllipsisLoc), RParenLoc(RParenLoc),
+      : Expr(CXXFoldExprClass, T, VK_PRValue, OK_Ordinary),
+        LParenLoc(LParenLoc), EllipsisLoc(EllipsisLoc), RParenLoc(RParenLoc),
         NumExpansions(NumExpansions ? *NumExpansions + 1 : 0), Opcode(Opcode) {
     SubExprs[SubExpr::Callee] = Callee;
     SubExprs[SubExpr::LHS] = LHS;
@@ -4704,7 +4704,7 @@ class CoroutineSuspendExpr : public Expr {
 
   CoroutineSuspendExpr(StmtClass SC, SourceLocation KeywordLoc, QualType Ty,
                        Expr *Common)
-      : Expr(SC, Ty, VK_RValue, OK_Ordinary), KeywordLoc(KeywordLoc) {
+      : Expr(SC, Ty, VK_PRValue, OK_Ordinary), KeywordLoc(KeywordLoc) {
     assert(Common->isTypeDependent() && Ty->isDependentType() &&
            "wrong constructor for non-dependent co_await/co_yield expression");
     SubExprs[SubExpr::Common] = Common;
@@ -4808,7 +4808,7 @@ class DependentCoawaitExpr : public Expr {
 public:
   DependentCoawaitExpr(SourceLocation KeywordLoc, QualType Ty, Expr *Op,
                        UnresolvedLookupExpr *OpCoawait)
-      : Expr(DependentCoawaitExprClass, Ty, VK_RValue, OK_Ordinary),
+      : Expr(DependentCoawaitExprClass, Ty, VK_PRValue, OK_Ordinary),
         KeywordLoc(KeywordLoc) {
     // NOTE: A co_await expression is dependent on the coroutines promise
     // type and may be dependent even when the `Op` expression is not.

diff  --git a/clang/include/clang/AST/ExprObjC.h b/clang/include/clang/AST/ExprObjC.h
index 17eec51726978..b0f057dbaa02f 100644
--- a/clang/include/clang/AST/ExprObjC.h
+++ b/clang/include/clang/AST/ExprObjC.h
@@ -55,7 +55,7 @@ class ObjCStringLiteral : public Expr {
 
 public:
   ObjCStringLiteral(StringLiteral *SL, QualType T, SourceLocation L)
-      : Expr(ObjCStringLiteralClass, T, VK_RValue, OK_Ordinary), String(SL),
+      : Expr(ObjCStringLiteralClass, T, VK_PRValue, OK_Ordinary), String(SL),
         AtLoc(L) {
     setDependence(ExprDependence::None);
   }
@@ -91,7 +91,7 @@ class ObjCBoolLiteralExpr : public Expr {
 
 public:
   ObjCBoolLiteralExpr(bool val, QualType Ty, SourceLocation l)
-      : Expr(ObjCBoolLiteralExprClass, Ty, VK_RValue, OK_Ordinary), Value(val),
+      : Expr(ObjCBoolLiteralExprClass, Ty, VK_PRValue, OK_Ordinary), Value(val),
         Loc(l) {
     setDependence(ExprDependence::None);
   }
@@ -134,7 +134,7 @@ class ObjCBoxedExpr : public Expr {
   friend class ASTStmtReader;
 
   ObjCBoxedExpr(Expr *E, QualType T, ObjCMethodDecl *method, SourceRange R)
-      : Expr(ObjCBoxedExprClass, T, VK_RValue, OK_Ordinary), SubExpr(E),
+      : Expr(ObjCBoxedExprClass, T, VK_PRValue, OK_Ordinary), SubExpr(E),
         BoxingMethod(method), Range(R) {
     setDependence(computeDependence(this));
   }
@@ -458,7 +458,7 @@ class ObjCSelectorExpr : public Expr {
 public:
   ObjCSelectorExpr(QualType T, Selector selInfo, SourceLocation at,
                    SourceLocation rp)
-      : Expr(ObjCSelectorExprClass, T, VK_RValue, OK_Ordinary),
+      : Expr(ObjCSelectorExprClass, T, VK_PRValue, OK_Ordinary),
         SelName(selInfo), AtLoc(at), RParenLoc(rp) {
     setDependence(ExprDependence::None);
   }
@@ -511,7 +511,7 @@ class ObjCProtocolExpr : public Expr {
 
   ObjCProtocolExpr(QualType T, ObjCProtocolDecl *protocol, SourceLocation at,
                    SourceLocation protoLoc, SourceLocation rp)
-      : Expr(ObjCProtocolExprClass, T, VK_RValue, OK_Ordinary),
+      : Expr(ObjCProtocolExprClass, T, VK_PRValue, OK_Ordinary),
         TheProtocol(protocol), AtLoc(at), ProtoLoc(protoLoc), RParenLoc(rp) {
     setDependence(ExprDependence::None);
   }
@@ -1638,8 +1638,8 @@ class ObjCBridgedCastExpr final
   ObjCBridgedCastExpr(SourceLocation LParenLoc, ObjCBridgeCastKind Kind,
                       CastKind CK, SourceLocation BridgeKeywordLoc,
                       TypeSourceInfo *TSInfo, Expr *Operand)
-      : ExplicitCastExpr(ObjCBridgedCastExprClass, TSInfo->getType(), VK_RValue,
-                         CK, Operand, 0, false, TSInfo),
+      : ExplicitCastExpr(ObjCBridgedCastExprClass, TSInfo->getType(),
+                         VK_PRValue, CK, Operand, 0, false, TSInfo),
         LParenLoc(LParenLoc), BridgeKeywordLoc(BridgeKeywordLoc), Kind(Kind) {}
 
   /// Construct an empty Objective-C bridged cast.
@@ -1692,7 +1692,7 @@ class ObjCAvailabilityCheckExpr : public Expr {
 public:
   ObjCAvailabilityCheckExpr(VersionTuple VersionToCheck, SourceLocation AtLoc,
                             SourceLocation RParen, QualType Ty)
-      : Expr(ObjCAvailabilityCheckExprClass, Ty, VK_RValue, OK_Ordinary),
+      : Expr(ObjCAvailabilityCheckExprClass, Ty, VK_PRValue, OK_Ordinary),
         VersionToCheck(VersionToCheck), AtLoc(AtLoc), RParen(RParen) {
     setDependence(ExprDependence::None);
   }

diff  --git a/clang/include/clang/Basic/Specifiers.h b/clang/include/clang/Basic/Specifiers.h
index 148421ea11244..bd5a4d6fb8d9e 100644
--- a/clang/include/clang/Basic/Specifiers.h
+++ b/clang/include/clang/Basic/Specifiers.h
@@ -105,9 +105,9 @@ namespace clang {
   /// The categorization of expression values, currently following the
   /// C++11 scheme.
   enum ExprValueKind {
-    /// An r-value expression (a pr-value in the C++11 taxonomy)
+    /// A pr-value expression (in the C++11 taxonomy)
     /// produces a temporary value.
-    VK_RValue,
+    VK_PRValue,
 
     /// An l-value expression is a reference to an object with
     /// independent storage.

diff  --git a/clang/include/clang/Sema/Initialization.h b/clang/include/clang/Sema/Initialization.h
index a764a36d33127..9889d5bcced50 100644
--- a/clang/include/clang/Sema/Initialization.h
+++ b/clang/include/clang/Sema/Initialization.h
@@ -831,8 +831,8 @@ class InitializationSequence {
     /// function or via a constructor.
     SK_UserConversion,
 
-    /// Perform a qualification conversion, producing an rvalue.
-    SK_QualificationConversionRValue,
+    /// Perform a qualification conversion, producing a prvalue.
+    SK_QualificationConversionPRValue,
 
     /// Perform a qualification conversion, producing an xvalue.
     SK_QualificationConversionXValue,

diff  --git a/clang/include/clang/Sema/Sema.h b/clang/include/clang/Sema/Sema.h
index 940630c6508dc..d1ad6a1cc4af4 100644
--- a/clang/include/clang/Sema/Sema.h
+++ b/clang/include/clang/Sema/Sema.h
@@ -11287,11 +11287,11 @@ class Sema final {
   /// ImpCastExprToType - If Expr is not of type 'Type', insert an implicit
   /// cast.  If there is already an implicit cast, merge into the existing one.
   /// If isLvalue, the result of the cast is an lvalue.
-  ExprResult ImpCastExprToType(Expr *E, QualType Type, CastKind CK,
-                               ExprValueKind VK = VK_RValue,
-                               const CXXCastPath *BasePath = nullptr,
-                               CheckedConversionKind CCK
-                                  = CCK_ImplicitConversion);
+  ExprResult
+  ImpCastExprToType(Expr *E, QualType Type, CastKind CK,
+                    ExprValueKind VK = VK_PRValue,
+                    const CXXCastPath *BasePath = nullptr,
+                    CheckedConversionKind CCK = CCK_ImplicitConversion);
 
   /// ScalarTypeToBooleanCastKind - Returns the cast kind corresponding
   /// to the conversion from scalar type ScalarTy to the Boolean type.
@@ -11576,7 +11576,7 @@ class Sema final {
                                        CheckedConversionKind CCK);
 
   ExprResult PerformQualificationConversion(
-      Expr *E, QualType Ty, ExprValueKind VK = VK_RValue,
+      Expr *E, QualType Ty, ExprValueKind VK = VK_PRValue,
       CheckedConversionKind CCK = CCK_ImplicitConversion);
 
   /// the following "Check" methods will return a valid/converted QualType

diff  --git a/clang/lib/AST/DeclCXX.cpp b/clang/lib/AST/DeclCXX.cpp
index 628dff786c6e6..bcff72ccadeab 100644
--- a/clang/lib/AST/DeclCXX.cpp
+++ b/clang/lib/AST/DeclCXX.cpp
@@ -2234,7 +2234,7 @@ CXXMethodDecl *CXXMethodDecl::getDevirtualizedMethod(const Expr *Base,
   // If the base expression (after skipping derived-to-base conversions) is a
   // class prvalue, then we can devirtualize.
   Base = Base->getBestDynamicClassTypeExpr();
-  if (Base->isRValue() && Base->getType()->isRecordType())
+  if (Base->isPRValue() && Base->getType()->isRecordType())
     return this;
 
   // If we don't even know what we would call, we can't devirtualize.

diff  --git a/clang/lib/AST/Expr.cpp b/clang/lib/AST/Expr.cpp
index 49e1305beea97..613abb7383dad 100644
--- a/clang/lib/AST/Expr.cpp
+++ b/clang/lib/AST/Expr.cpp
@@ -112,7 +112,7 @@ const Expr *Expr::skipRValueSubobjectAdjustments(
       }
     } else if (const BinaryOperator *BO = dyn_cast<BinaryOperator>(E)) {
       if (BO->getOpcode() == BO_PtrMemD) {
-        assert(BO->getRHS()->isRValue());
+        assert(BO->getRHS()->isPRValue());
         E = BO->getLHS();
         const MemberPointerType *MPT =
           BO->getRHS()->getType()->getAs<MemberPointerType>();
@@ -509,7 +509,7 @@ SYCLUniqueStableNameExpr::SYCLUniqueStableNameExpr(SourceLocation OpLoc,
                                                    SourceLocation RParen,
                                                    QualType ResultTy,
                                                    TypeSourceInfo *TSI)
-    : Expr(SYCLUniqueStableNameExprClass, ResultTy, VK_RValue, OK_Ordinary),
+    : Expr(SYCLUniqueStableNameExprClass, ResultTy, VK_PRValue, OK_Ordinary),
       OpLoc(OpLoc), LParen(LParen), RParen(RParen) {
   setTypeSourceInfo(TSI);
   setDependence(computeDependence(this));
@@ -517,7 +517,7 @@ SYCLUniqueStableNameExpr::SYCLUniqueStableNameExpr(SourceLocation OpLoc,
 
 SYCLUniqueStableNameExpr::SYCLUniqueStableNameExpr(EmptyShell Empty,
                                                    QualType ResultTy)
-    : Expr(SYCLUniqueStableNameExprClass, ResultTy, VK_RValue, OK_Ordinary) {}
+    : Expr(SYCLUniqueStableNameExprClass, ResultTy, VK_PRValue, OK_Ordinary) {}
 
 SYCLUniqueStableNameExpr *
 SYCLUniqueStableNameExpr::Create(const ASTContext &Ctx, SourceLocation OpLoc,
@@ -878,7 +878,7 @@ void APNumericStorage::setIntValue(const ASTContext &C,
 
 IntegerLiteral::IntegerLiteral(const ASTContext &C, const llvm::APInt &V,
                                QualType type, SourceLocation l)
-    : Expr(IntegerLiteralClass, type, VK_RValue, OK_Ordinary), Loc(l) {
+    : Expr(IntegerLiteralClass, type, VK_PRValue, OK_Ordinary), Loc(l) {
   assert(type->isIntegerType() && "Illegal type in IntegerLiteral");
   assert(V.getBitWidth() == C.getIntWidth(type) &&
          "Integer type is not the correct size for constant.");
@@ -900,7 +900,7 @@ IntegerLiteral::Create(const ASTContext &C, EmptyShell Empty) {
 FixedPointLiteral::FixedPointLiteral(const ASTContext &C, const llvm::APInt &V,
                                      QualType type, SourceLocation l,
                                      unsigned Scale)
-    : Expr(FixedPointLiteralClass, type, VK_RValue, OK_Ordinary), Loc(l),
+    : Expr(FixedPointLiteralClass, type, VK_PRValue, OK_Ordinary), Loc(l),
       Scale(Scale) {
   assert(type->isFixedPointType() && "Illegal type in FixedPointLiteral");
   assert(V.getBitWidth() == C.getTypeInfo(type).Width &&
@@ -1004,7 +1004,7 @@ void CharacterLiteral::print(unsigned Val, CharacterKind Kind,
 
 FloatingLiteral::FloatingLiteral(const ASTContext &C, const llvm::APFloat &V,
                                  bool isexact, QualType Type, SourceLocation L)
-    : Expr(FloatingLiteralClass, Type, VK_RValue, OK_Ordinary), Loc(L) {
+    : Expr(FloatingLiteralClass, Type, VK_PRValue, OK_Ordinary), Loc(L) {
   setSemantics(V.getSemantics());
   FloatingLiteralBits.IsExact = isexact;
   setValue(C, V);
@@ -1599,7 +1599,7 @@ OffsetOfExpr::OffsetOfExpr(const ASTContext &C, QualType type,
                            SourceLocation OperatorLoc, TypeSourceInfo *tsi,
                            ArrayRef<OffsetOfNode> comps, ArrayRef<Expr *> exprs,
                            SourceLocation RParenLoc)
-    : Expr(OffsetOfExprClass, type, VK_RValue, OK_Ordinary),
+    : Expr(OffsetOfExprClass, type, VK_PRValue, OK_Ordinary),
       OperatorLoc(OperatorLoc), RParenLoc(RParenLoc), TSInfo(tsi),
       NumComps(comps.size()), NumExprs(exprs.size()) {
   for (unsigned i = 0; i != comps.size(); ++i)
@@ -1621,7 +1621,7 @@ IdentifierInfo *OffsetOfNode::getFieldName() const {
 UnaryExprOrTypeTraitExpr::UnaryExprOrTypeTraitExpr(
     UnaryExprOrTypeTrait ExprKind, Expr *E, QualType resultType,
     SourceLocation op, SourceLocation rp)
-    : Expr(UnaryExprOrTypeTraitExprClass, resultType, VK_RValue, OK_Ordinary),
+    : Expr(UnaryExprOrTypeTraitExprClass, resultType, VK_PRValue, OK_Ordinary),
       OpLoc(op), RParenLoc(rp) {
   assert(ExprKind <= UETT_Last && "invalid enum value!");
   UnaryExprOrTypeTraitExprBits.Kind = ExprKind;
@@ -1807,7 +1807,7 @@ bool CastExpr::CastConsistency() const {
     auto Ty = getType();
     auto SETy = getSubExpr()->getType();
     assert(getValueKindForType(Ty) == Expr::getValueKindForType(SETy));
-    if (isRValue() && !Ty->isDependentType() && !SETy->isDependentType()) {
+    if (isPRValue() && !Ty->isDependentType() && !SETy->isDependentType()) {
       Ty = Ty->getPointeeType();
       SETy = SETy->getPointeeType();
     }
@@ -2182,7 +2182,7 @@ SourceLocExpr::SourceLocExpr(const ASTContext &Ctx, IdentKind Kind,
                              SourceLocation BLoc, SourceLocation RParenLoc,
                              DeclContext *ParentContext)
     : Expr(SourceLocExprClass, getDecayedSourceLocExprType(Ctx, Kind),
-           VK_RValue, OK_Ordinary),
+           VK_PRValue, OK_Ordinary),
       BuiltinLoc(BLoc), RParenLoc(RParenLoc), ParentContext(ParentContext) {
   SourceLocExprBits.Kind = Kind;
   setDependence(ExprDependence::None);
@@ -2250,7 +2250,7 @@ APValue SourceLocExpr::EvaluateInContext(const ASTContext &Ctx,
 
 InitListExpr::InitListExpr(const ASTContext &C, SourceLocation lbraceloc,
                            ArrayRef<Expr *> initExprs, SourceLocation rbraceloc)
-    : Expr(InitListExprClass, QualType(), VK_RValue, OK_Ordinary),
+    : Expr(InitListExprClass, QualType(), VK_PRValue, OK_Ordinary),
       InitExprs(C, initExprs.size()), LBraceLoc(lbraceloc),
       RBraceLoc(rbraceloc), AltForm(nullptr, true) {
   sawArrayRangeDesignator(false);
@@ -2320,7 +2320,7 @@ bool InitListExpr::isTransparent() const {
 
   // Don't confuse aggregate initialization of a struct X { X &x; }; with a
   // transparent struct copy.
-  if (!getInit(0)->isRValue() && getType()->isRecordType())
+  if (!getInit(0)->isPRValue() && getType()->isRecordType())
     return false;
 
   return getType().getCanonicalType() ==
@@ -3909,7 +3909,7 @@ FieldDecl *Expr::getSourceBitField() {
 
   while (ImplicitCastExpr *ICE = dyn_cast<ImplicitCastExpr>(E)) {
     if (ICE->getCastKind() == CK_LValueToRValue ||
-        (ICE->getValueKind() != VK_RValue && ICE->getCastKind() == CK_NoOp))
+        (ICE->getValueKind() != VK_PRValue && ICE->getCastKind() == CK_NoOp))
       E = ICE->getSubExpr()->IgnoreParens();
     else
       break;
@@ -3956,8 +3956,7 @@ bool Expr::refersToVectorElement() const {
   const Expr *E = this->IgnoreParens();
 
   while (const ImplicitCastExpr *ICE = dyn_cast<ImplicitCastExpr>(E)) {
-    if (ICE->getValueKind() != VK_RValue &&
-        ICE->getCastKind() == CK_NoOp)
+    if (ICE->getValueKind() != VK_PRValue && ICE->getCastKind() == CK_NoOp)
       E = ICE->getSubExpr()->IgnoreParens();
     else
       break;
@@ -4006,7 +4005,7 @@ bool Expr::isSameComparisonOperand(const Expr* E1, const Expr* E2) {
       // template parameters.
       const auto *DRE1 = cast<DeclRefExpr>(E1);
       const auto *DRE2 = cast<DeclRefExpr>(E2);
-      return DRE1->isRValue() && DRE2->isRValue() &&
+      return DRE1->isPRValue() && DRE2->isPRValue() &&
              DRE1->getDecl() == DRE2->getDecl();
     }
     case ImplicitCastExprClass: {
@@ -4164,7 +4163,7 @@ void ExtVectorElementExpr::getEncodedElementAccess(
 ShuffleVectorExpr::ShuffleVectorExpr(const ASTContext &C, ArrayRef<Expr *> args,
                                      QualType Type, SourceLocation BLoc,
                                      SourceLocation RP)
-    : Expr(ShuffleVectorExprClass, Type, VK_RValue, OK_Ordinary),
+    : Expr(ShuffleVectorExprClass, Type, VK_PRValue, OK_Ordinary),
       BuiltinLoc(BLoc), RParenLoc(RP), NumExprs(args.size()) {
   SubExprs = new (C) Stmt*[args.size()];
   for (unsigned i = 0; i != args.size(); i++)
@@ -4211,7 +4210,7 @@ GenericSelectionExpr::GenericSelectionExpr(
     ArrayRef<TypeSourceInfo *> AssocTypes, ArrayRef<Expr *> AssocExprs,
     SourceLocation DefaultLoc, SourceLocation RParenLoc,
     bool ContainsUnexpandedParameterPack)
-    : Expr(GenericSelectionExprClass, Context.DependentTy, VK_RValue,
+    : Expr(GenericSelectionExprClass, Context.DependentTy, VK_PRValue,
            OK_Ordinary),
       NumAssocs(AssocExprs.size()), ResultIndex(ResultDependentIndex),
       DefaultLoc(DefaultLoc), RParenLoc(RParenLoc) {
@@ -4415,7 +4414,7 @@ DesignatedInitUpdateExpr::DesignatedInitUpdateExpr(const ASTContext &C,
                                                    SourceLocation lBraceLoc,
                                                    Expr *baseExpr,
                                                    SourceLocation rBraceLoc)
-    : Expr(DesignatedInitUpdateExprClass, baseExpr->getType(), VK_RValue,
+    : Expr(DesignatedInitUpdateExprClass, baseExpr->getType(), VK_PRValue,
            OK_Ordinary) {
   BaseAndUpdaterExprs[0] = baseExpr;
 
@@ -4437,7 +4436,7 @@ SourceLocation DesignatedInitUpdateExpr::getEndLoc() const {
 
 ParenListExpr::ParenListExpr(SourceLocation LParenLoc, ArrayRef<Expr *> Exprs,
                              SourceLocation RParenLoc)
-    : Expr(ParenListExprClass, QualType(), VK_RValue, OK_Ordinary),
+    : Expr(ParenListExprClass, QualType(), VK_PRValue, OK_Ordinary),
       LParenLoc(LParenLoc), RParenLoc(RParenLoc) {
   ParenListExprBits.NumExprs = Exprs.size();
 
@@ -4613,7 +4612,7 @@ PseudoObjectExpr *PseudoObjectExpr::Create(const ASTContext &C, Expr *syntax,
   ExprValueKind VK;
   if (resultIndex == NoResult) {
     type = C.VoidTy;
-    VK = VK_RValue;
+    VK = VK_PRValue;
   } else {
     assert(resultIndex < semantics.size());
     type = semantics[resultIndex]->getType();
@@ -4673,7 +4672,7 @@ Stmt::const_child_range UnaryExprOrTypeTraitExpr::children() const {
 
 AtomicExpr::AtomicExpr(SourceLocation BLoc, ArrayRef<Expr *> args, QualType t,
                        AtomicOp op, SourceLocation RP)
-    : Expr(AtomicExprClass, t, VK_RValue, OK_Ordinary),
+    : Expr(AtomicExprClass, t, VK_PRValue, OK_Ordinary),
       NumSubExprs(args.size()), BuiltinLoc(BLoc), RParenLoc(RP), Op(op) {
   assert(args.size() == getNumSubExprs(op) && "wrong number of subexpressions");
   for (unsigned i = 0; i != args.size(); i++)

diff  --git a/clang/lib/AST/ExprCXX.cpp b/clang/lib/AST/ExprCXX.cpp
index 8dc9d4296e149..b5ccfe34cce1b 100644
--- a/clang/lib/AST/ExprCXX.cpp
+++ b/clang/lib/AST/ExprCXX.cpp
@@ -187,7 +187,7 @@ CXXNewExpr::CXXNewExpr(bool IsGlobalNew, FunctionDecl *OperatorNew,
                        Expr *Initializer, QualType Ty,
                        TypeSourceInfo *AllocatedTypeInfo, SourceRange Range,
                        SourceRange DirectInitRange)
-    : Expr(CXXNewExprClass, Ty, VK_RValue, OK_Ordinary),
+    : Expr(CXXNewExprClass, Ty, VK_PRValue, OK_Ordinary),
       OperatorNew(OperatorNew), OperatorDelete(OperatorDelete),
       AllocatedTypeInfo(AllocatedTypeInfo), Range(Range),
       DirectInitRange(DirectInitRange) {
@@ -321,7 +321,7 @@ CXXPseudoDestructorExpr::CXXPseudoDestructorExpr(
     SourceLocation OperatorLoc, NestedNameSpecifierLoc QualifierLoc,
     TypeSourceInfo *ScopeType, SourceLocation ColonColonLoc,
     SourceLocation TildeLoc, PseudoDestructorTypeStorage DestroyedType)
-    : Expr(CXXPseudoDestructorExprClass, Context.BoundMemberTy, VK_RValue,
+    : Expr(CXXPseudoDestructorExprClass, Context.BoundMemberTy, VK_PRValue,
            OK_Ordinary),
       Base(static_cast<Stmt *>(Base)), IsArrow(isArrow),
       OperatorLoc(OperatorLoc), QualifierLoc(QualifierLoc),
@@ -951,9 +951,9 @@ CXXDefaultInitExpr::CXXDefaultInitExpr(const ASTContext &Ctx,
                                        SourceLocation Loc, FieldDecl *Field,
                                        QualType Ty, DeclContext *UsedContext)
     : Expr(CXXDefaultInitExprClass, Ty.getNonLValueExprType(Ctx),
-           Ty->isLValueReferenceType()
-               ? VK_LValue
-               : Ty->isRValueReferenceType() ? VK_XValue : VK_RValue,
+           Ty->isLValueReferenceType()   ? VK_LValue
+           : Ty->isRValueReferenceType() ? VK_XValue
+                                         : VK_PRValue,
            /*FIXME*/ OK_Ordinary),
       Field(Field), UsedContext(UsedContext) {
   CXXDefaultInitExprBits.Loc = Loc;
@@ -1057,7 +1057,7 @@ CXXConstructExpr::CXXConstructExpr(
     bool ListInitialization, bool StdInitListInitialization,
     bool ZeroInitialization, ConstructionKind ConstructKind,
     SourceRange ParenOrBraceRange)
-    : Expr(SC, Ty, VK_RValue, OK_Ordinary), Constructor(Ctor),
+    : Expr(SC, Ty, VK_PRValue, OK_Ordinary), Constructor(Ctor),
       ParenOrBraceRange(ParenOrBraceRange), NumArgs(Args.size()) {
   CXXConstructExprBits.Elidable = Elidable;
   CXXConstructExprBits.HadMultipleCandidates = HadMultipleCandidates;
@@ -1125,7 +1125,7 @@ LambdaExpr::LambdaExpr(QualType T, SourceRange IntroducerRange,
                        bool ExplicitResultType, ArrayRef<Expr *> CaptureInits,
                        SourceLocation ClosingBrace,
                        bool ContainsUnexpandedParameterPack)
-    : Expr(LambdaExprClass, T, VK_RValue, OK_Ordinary),
+    : Expr(LambdaExprClass, T, VK_PRValue, OK_Ordinary),
       IntroducerRange(IntroducerRange), CaptureDefaultLoc(CaptureDefaultLoc),
       ClosingBrace(ClosingBrace) {
   LambdaExprBits.NumCaptures = CaptureInits.size();
@@ -1326,10 +1326,9 @@ CXXUnresolvedConstructExpr::CXXUnresolvedConstructExpr(QualType T,
                                                        ArrayRef<Expr *> Args,
                                                        SourceLocation RParenLoc)
     : Expr(CXXUnresolvedConstructExprClass, T,
-           (TSI->getType()->isLValueReferenceType()
-                ? VK_LValue
-                : TSI->getType()->isRValueReferenceType() ? VK_XValue
-                                                          : VK_RValue),
+           (TSI->getType()->isLValueReferenceType()   ? VK_LValue
+            : TSI->getType()->isRValueReferenceType() ? VK_XValue
+                                                      : VK_PRValue),
            OK_Ordinary),
       TSI(TSI), LParenLoc(LParenLoc), RParenLoc(RParenLoc) {
   CXXUnresolvedConstructExprBits.NumArgs = Args.size();
@@ -1668,7 +1667,7 @@ bool MaterializeTemporaryExpr::isUsableInConstantExpressions(
 TypeTraitExpr::TypeTraitExpr(QualType T, SourceLocation Loc, TypeTrait Kind,
                              ArrayRef<TypeSourceInfo *> Args,
                              SourceLocation RParenLoc, bool Value)
-    : Expr(TypeTraitExprClass, T, VK_RValue, OK_Ordinary), Loc(Loc),
+    : Expr(TypeTraitExprClass, T, VK_PRValue, OK_Ordinary), Loc(Loc),
       RParenLoc(RParenLoc) {
   assert(Kind <= TT_Last && "invalid enum value!");
   TypeTraitExprBits.Kind = Kind;

diff  --git a/clang/lib/AST/ExprClassification.cpp b/clang/lib/AST/ExprClassification.cpp
index dd7c4a4cbe00b..07fb44ceef2a4 100644
--- a/clang/lib/AST/ExprClassification.cpp
+++ b/clang/lib/AST/ExprClassification.cpp
@@ -64,7 +64,9 @@ Cl Expr::ClassifyImpl(ASTContext &Ctx, SourceLocation *Loc) const {
   case Cl::CL_ClassTemporary:
   case Cl::CL_ArrayTemporary:
   case Cl::CL_ObjCMessageRValue:
-  case Cl::CL_PRValue: assert(getValueKind() == VK_RValue); break;
+  case Cl::CL_PRValue:
+    assert(getValueKind() == VK_PRValue);
+    break;
   }
 
   Cl::ModifiableType modifiable = Cl::CM_Untested;
@@ -89,7 +91,7 @@ static Cl::Kinds ClassifyExprValueKind(const LangOptions &Lang,
                                        const Expr *E,
                                        ExprValueKind Kind) {
   switch (Kind) {
-  case VK_RValue:
+  case VK_PRValue:
     return Lang.CPlusPlus ? ClassifyTemporary(E->getType()) : Cl::CL_PRValue;
   case VK_LValue:
     return Cl::CL_LValue;
@@ -424,7 +426,7 @@ static Cl::Kinds ClassifyInternal(ASTContext &Ctx, const Expr *E) {
     // contains only one element. In that case, we look at that element
     // for an exact classification. Init list creation takes care of the
     // value kind for us, so we only need to fine-tune.
-    if (E->isRValue())
+    if (E->isPRValue())
       return ClassifyExprValueKind(Lang, E, E->getValueKind());
     assert(cast<InitListExpr>(E)->getNumInits() == 1 &&
            "Only 1-element init lists can be glvalues.");

diff  --git a/clang/lib/AST/ExprConcepts.cpp b/clang/lib/AST/ExprConcepts.cpp
index d00d8329095c0..8cb8625e2a1a8 100644
--- a/clang/lib/AST/ExprConcepts.cpp
+++ b/clang/lib/AST/ExprConcepts.cpp
@@ -37,7 +37,7 @@ ConceptSpecializationExpr::ConceptSpecializationExpr(
     const ASTTemplateArgumentListInfo *ArgsAsWritten,
     ArrayRef<TemplateArgument> ConvertedArgs,
     const ConstraintSatisfaction *Satisfaction)
-    : Expr(ConceptSpecializationExprClass, C.BoolTy, VK_RValue, OK_Ordinary),
+    : Expr(ConceptSpecializationExprClass, C.BoolTy, VK_PRValue, OK_Ordinary),
       ConceptReference(NNS, TemplateKWLoc, ConceptNameInfo, FoundDecl,
                        NamedConcept, ArgsAsWritten),
       NumTemplateArgs(ConvertedArgs.size()),
@@ -91,7 +91,7 @@ ConceptSpecializationExpr::ConceptSpecializationExpr(
     ArrayRef<TemplateArgument> ConvertedArgs,
     const ConstraintSatisfaction *Satisfaction, bool Dependent,
     bool ContainsUnexpandedParameterPack)
-    : Expr(ConceptSpecializationExprClass, C.BoolTy, VK_RValue, OK_Ordinary),
+    : Expr(ConceptSpecializationExprClass, C.BoolTy, VK_PRValue, OK_Ordinary),
       ConceptReference(NestedNameSpecifierLoc(), SourceLocation(),
                        DeclarationNameInfo(), NamedConcept, NamedConcept,
                        nullptr),
@@ -146,7 +146,7 @@ RequiresExpr::RequiresExpr(ASTContext &C, SourceLocation RequiresKWLoc,
                            ArrayRef<ParmVarDecl *> LocalParameters,
                            ArrayRef<concepts::Requirement *> Requirements,
                            SourceLocation RBraceLoc)
-    : Expr(RequiresExprClass, C.BoolTy, VK_RValue, OK_Ordinary),
+    : Expr(RequiresExprClass, C.BoolTy, VK_PRValue, OK_Ordinary),
       NumLocalParameters(LocalParameters.size()),
       NumRequirements(Requirements.size()), Body(Body), RBraceLoc(RBraceLoc) {
   RequiresExprBits.IsSatisfied = false;

diff  --git a/clang/lib/AST/ExprConstant.cpp b/clang/lib/AST/ExprConstant.cpp
index 17598cdcb8b58..119b6f98dcf8d 100644
--- a/clang/lib/AST/ExprConstant.cpp
+++ b/clang/lib/AST/ExprConstant.cpp
@@ -101,7 +101,7 @@ namespace {
   /// Given an expression, determine the type used to store the result of
   /// evaluating that expression.
   static QualType getStorageType(const ASTContext &Ctx, const Expr *E) {
-    if (E->isRValue())
+    if (E->isPRValue())
       return E->getType();
     return Ctx.getLValueReferenceType(E->getType());
   }
@@ -2300,7 +2300,7 @@ static bool CheckMemberPointerConstantExpression(EvalInfo &Info,
 /// produce an appropriate diagnostic.
 static bool CheckLiteralType(EvalInfo &Info, const Expr *E,
                              const LValue *This = nullptr) {
-  if (!E->isRValue() || E->getType()->isLiteralType(Info.Ctx))
+  if (!E->isPRValue() || E->getType()->isLiteralType(Info.Ctx))
     return true;
 
   // C++1y: A constant initializer for an object o [...] may also invoke
@@ -2505,7 +2505,7 @@ static bool HandleConversionToBool(const APValue &Val, bool &Result) {
 static bool EvaluateAsBooleanCondition(const Expr *E, bool &Result,
                                        EvalInfo &Info) {
   assert(!E->isValueDependent());
-  assert(E->isRValue() && "missing lvalue-to-rvalue conv in bool condition");
+  assert(E->isPRValue() && "missing lvalue-to-rvalue conv in bool condition");
   APValue Val;
   if (!Evaluate(Val, Info, E))
     return false;
@@ -4568,7 +4568,7 @@ static bool handleIncDec(EvalInfo &Info, const Expr *E, const LValue &LVal,
 /// Build an lvalue for the object argument of a member function call.
 static bool EvaluateObjectArgument(EvalInfo &Info, const Expr *Object,
                                    LValue &This) {
-  if (Object->getType()->isPointerType() && Object->isRValue())
+  if (Object->getType()->isPointerType() && Object->isPRValue())
     return EvaluatePointer(Object, This, Info);
 
   if (Object->isGLValue())
@@ -6368,7 +6368,7 @@ static bool HandleDestructionImpl(EvalInfo &Info, SourceLocation CallLoc,
 
   // Invent an expression for location purposes.
   // FIXME: We shouldn't need to do this.
-  OpaqueValueExpr LocE(CallLoc, Info.Ctx.IntTy, VK_RValue);
+  OpaqueValueExpr LocE(CallLoc, Info.Ctx.IntTy, VK_PRValue);
 
   // For arrays, destroy elements right-to-left.
   if (const ConstantArrayType *CAT = Info.Ctx.getAsConstantArrayType(T)) {
@@ -7948,7 +7948,7 @@ class LValueExprEvaluatorBase
     if (E->isArrow()) {
       EvalOK = evaluatePointer(E->getBase(), Result);
       BaseTy = E->getBase()->getType()->castAs<PointerType>()->getPointeeType();
-    } else if (E->getBase()->isRValue()) {
+    } else if (E->getBase()->isPRValue()) {
       assert(E->getBase()->getType()->isRecordType());
       EvalOK = EvaluateTemporary(E->getBase(), Result, this->Info);
       BaseTy = E->getBase()->getType();
@@ -8696,7 +8696,7 @@ class PointerExprEvaluator
 static bool EvaluatePointer(const Expr* E, LValue& Result, EvalInfo &Info,
                             bool InvalidBaseOK) {
   assert(!E->isValueDependent());
-  assert(E->isRValue() && E->getType()->hasPointerRepresentation());
+  assert(E->isPRValue() && E->getType()->hasPointerRepresentation());
   return PointerExprEvaluator(Info, Result, InvalidBaseOK).Visit(E);
 }
 
@@ -9584,7 +9584,7 @@ class MemberPointerExprEvaluator
 static bool EvaluateMemberPointer(const Expr *E, MemberPtr &Result,
                                   EvalInfo &Info) {
   assert(!E->isValueDependent());
-  assert(E->isRValue() && E->getType()->isMemberPointerType());
+  assert(E->isPRValue() && E->getType()->isMemberPointerType());
   return MemberPointerExprEvaluator(Info, Result).Visit(E);
 }
 
@@ -10074,7 +10074,7 @@ bool RecordExprEvaluator::VisitLambdaExpr(const LambdaExpr *E) {
 static bool EvaluateRecord(const Expr *E, const LValue &This,
                            APValue &Result, EvalInfo &Info) {
   assert(!E->isValueDependent());
-  assert(E->isRValue() && E->getType()->isRecordType() &&
+  assert(E->isPRValue() && E->getType()->isRecordType() &&
          "can't evaluate expression as a record rvalue");
   return RecordExprEvaluator(Info, This, Result).Visit(E);
 }
@@ -10130,7 +10130,7 @@ class TemporaryExprEvaluator
 /// Evaluate an expression of record type as a temporary.
 static bool EvaluateTemporary(const Expr *E, LValue &Result, EvalInfo &Info) {
   assert(!E->isValueDependent());
-  assert(E->isRValue() && E->getType()->isRecordType());
+  assert(E->isPRValue() && E->getType()->isRecordType());
   return TemporaryExprEvaluator(Info, Result).Visit(E);
 }
 
@@ -10172,7 +10172,8 @@ namespace {
 } // end anonymous namespace
 
 static bool EvaluateVector(const Expr* E, APValue& Result, EvalInfo &Info) {
-  assert(E->isRValue() && E->getType()->isVectorType() &&"not a vector rvalue");
+  assert(E->isPRValue() && E->getType()->isVectorType() &&
+         "not a vector prvalue");
   return VectorExprEvaluator(Info, Result).Visit(E);
 }
 
@@ -10418,7 +10419,8 @@ namespace {
 static bool EvaluateArray(const Expr *E, const LValue &This,
                           APValue &Result, EvalInfo &Info) {
   assert(!E->isValueDependent());
-  assert(E->isRValue() && E->getType()->isArrayType() && "not an array rvalue");
+  assert(E->isPRValue() && E->getType()->isArrayType() &&
+         "not an array prvalue");
   return ArrayExprEvaluator(Info, This, Result).Visit(E);
 }
 
@@ -10426,8 +10428,8 @@ static bool EvaluateArrayNewInitList(EvalInfo &Info, LValue &This,
                                      APValue &Result, const InitListExpr *ILE,
                                      QualType AllocType) {
   assert(!ILE->isValueDependent());
-  assert(ILE->isRValue() && ILE->getType()->isArrayType() &&
-         "not an array rvalue");
+  assert(ILE->isPRValue() && ILE->getType()->isArrayType() &&
+         "not an array prvalue");
   return ArrayExprEvaluator(Info, This, Result)
       .VisitInitListExpr(ILE, AllocType);
 }
@@ -10437,8 +10439,8 @@ static bool EvaluateArrayNewConstructExpr(EvalInfo &Info, LValue &This,
                                           const CXXConstructExpr *CCE,
                                           QualType AllocType) {
   assert(!CCE->isValueDependent());
-  assert(CCE->isRValue() && CCE->getType()->isArrayType() &&
-         "not an array rvalue");
+  assert(CCE->isPRValue() && CCE->getType()->isArrayType() &&
+         "not an array prvalue");
   return ArrayExprEvaluator(Info, This, Result)
       .VisitCXXConstructExpr(CCE, This, &Result, AllocType);
 }
@@ -10815,7 +10817,7 @@ class FixedPointExprEvaluator
 static bool EvaluateIntegerOrLValue(const Expr *E, APValue &Result,
                                     EvalInfo &Info) {
   assert(!E->isValueDependent());
-  assert(E->isRValue() && E->getType()->isIntegralOrEnumerationType());
+  assert(E->isPRValue() && E->getType()->isIntegralOrEnumerationType());
   return IntExprEvaluator(Info, Result).Visit(E);
 }
 
@@ -11184,7 +11186,7 @@ static QualType getObjectType(APValue::LValueBase B) {
 ///
 /// Always returns an RValue with a pointer representation.
 static const Expr *ignorePointerCastsAndParens(const Expr *E) {
-  assert(E->isRValue() && E->getType()->hasPointerRepresentation());
+  assert(E->isPRValue() && E->getType()->hasPointerRepresentation());
 
   auto *NoParens = E->IgnoreParens();
   auto *Cast = dyn_cast<CastExpr>(NoParens);
@@ -11199,7 +11201,7 @@ static const Expr *ignorePointerCastsAndParens(const Expr *E) {
     return NoParens;
 
   auto *SubExpr = Cast->getSubExpr();
-  if (!SubExpr->getType()->hasPointerRepresentation() || !SubExpr->isRValue())
+  if (!SubExpr->getType()->hasPointerRepresentation() || !SubExpr->isPRValue())
     return NoParens;
   return ignorePointerCastsAndParens(SubExpr);
 }
@@ -12234,7 +12236,7 @@ class DataRecursiveIntBinOpEvaluator {
   /// with integral or enumeration type.
   static bool shouldEnqueue(const BinaryOperator *E) {
     return E->getOpcode() == BO_Comma || E->isLogicalOp() ||
-           (E->isRValue() && E->getType()->isIntegralOrEnumerationType() &&
+           (E->isPRValue() && E->getType()->isIntegralOrEnumerationType() &&
             E->getLHS()->getType()->isIntegralOrEnumerationType() &&
             E->getRHS()->getType()->isIntegralOrEnumerationType());
   }
@@ -13593,7 +13595,7 @@ class FloatExprEvaluator
 
 static bool EvaluateFloat(const Expr* E, APFloat& Result, EvalInfo &Info) {
   assert(!E->isValueDependent());
-  assert(E->isRValue() && E->getType()->isRealFloatingType());
+  assert(E->isPRValue() && E->getType()->isRealFloatingType());
   return FloatExprEvaluator(Info, Result).Visit(E);
 }
 
@@ -13846,7 +13848,7 @@ class ComplexExprEvaluator
 static bool EvaluateComplex(const Expr *E, ComplexValue &Result,
                             EvalInfo &Info) {
   assert(!E->isValueDependent());
-  assert(E->isRValue() && E->getType()->isAnyComplexType());
+  assert(E->isPRValue() && E->getType()->isAnyComplexType());
   return ComplexExprEvaluator(Info, Result).Visit(E);
 }
 
@@ -14374,7 +14376,7 @@ class AtomicExprEvaluator :
 static bool EvaluateAtomic(const Expr *E, const LValue *This, APValue &Result,
                            EvalInfo &Info) {
   assert(!E->isValueDependent());
-  assert(E->isRValue() && E->getType()->isAtomicType());
+  assert(E->isPRValue() && E->getType()->isAtomicType());
   return AtomicExprEvaluator(Info, This, Result).Visit(E);
 }
 
@@ -14499,7 +14501,7 @@ bool VoidExprEvaluator::VisitCXXDeleteExpr(const CXXDeleteExpr *E) {
 
 static bool EvaluateVoid(const Expr *E, EvalInfo &Info) {
   assert(!E->isValueDependent());
-  assert(E->isRValue() && E->getType()->isVoidType());
+  assert(E->isPRValue() && E->getType()->isVoidType());
   return VoidExprEvaluator(Info).Visit(E);
 }
 
@@ -14599,7 +14601,7 @@ static bool EvaluateInPlace(APValue &Result, EvalInfo &Info, const LValue &This,
   if (!AllowNonLiteralTypes && !CheckLiteralType(Info, E, &This))
     return false;
 
-  if (E->isRValue()) {
+  if (E->isPRValue()) {
     // Evaluate arrays and record types in-place, so that later initializers can
     // refer to earlier-initialized members of the object.
     QualType T = E->getType();
@@ -14669,8 +14671,8 @@ static bool FastEvaluateAsRValue(const Expr *Exp, Expr::EvalResult &Result,
 
   // FIXME: Evaluating values of large array and record types can cause
   // performance problems. Only do so in C++11 for now.
-  if (Exp->isRValue() && (Exp->getType()->isArrayType() ||
-                          Exp->getType()->isRecordType()) &&
+  if (Exp->isPRValue() &&
+      (Exp->getType()->isArrayType() || Exp->getType()->isRecordType()) &&
       !Ctx.getLangOpts().CPlusPlus11) {
     IsConst = false;
     return true;
@@ -14893,7 +14895,7 @@ bool Expr::EvaluateAsInitializer(APValue &Value, const ASTContext &Ctx,
 
   // FIXME: Evaluating initializers for large array and record types can cause
   // performance problems. Only do so in C++11 for now.
-  if (isRValue() && (getType()->isArrayType() || getType()->isRecordType()) &&
+  if (isPRValue() && (getType()->isArrayType() || getType()->isRecordType()) &&
       !Ctx.getLangOpts().CPlusPlus11)
     return false;
 
@@ -15183,7 +15185,7 @@ static ICEDiag CheckICE(const Expr* E, const ASTContext &Ctx) {
     // form "T x = { a };" is equivalent to "T x = a;".
     // Unless we're initializing a reference, T is a scalar as it is known to be
     // of integral or enumeration type.
-    if (E->isRValue())
+    if (E->isPRValue())
       if (cast<InitListExpr>(E)->getNumInits() == 1)
         return CheckICE(cast<InitListExpr>(E)->getInit(0), Ctx);
     return ICEDiag(IK_NotICE, E->getBeginLoc());

diff  --git a/clang/lib/AST/ExprObjC.cpp b/clang/lib/AST/ExprObjC.cpp
index 662bc325f12c8..7d932c8b059da 100644
--- a/clang/lib/AST/ExprObjC.cpp
+++ b/clang/lib/AST/ExprObjC.cpp
@@ -27,7 +27,7 @@ using namespace clang;
 
 ObjCArrayLiteral::ObjCArrayLiteral(ArrayRef<Expr *> Elements, QualType T,
                                    ObjCMethodDecl *Method, SourceRange SR)
-    : Expr(ObjCArrayLiteralClass, T, VK_RValue, OK_Ordinary),
+    : Expr(ObjCArrayLiteralClass, T, VK_PRValue, OK_Ordinary),
       NumElements(Elements.size()), Range(SR), ArrayWithObjectsMethod(Method) {
   Expr **SaveElements = getElements();
   for (unsigned I = 0, N = Elements.size(); I != N; ++I)
@@ -54,7 +54,7 @@ ObjCDictionaryLiteral::ObjCDictionaryLiteral(ArrayRef<ObjCDictionaryElement> VK,
                                              bool HasPackExpansions, QualType T,
                                              ObjCMethodDecl *method,
                                              SourceRange SR)
-    : Expr(ObjCDictionaryLiteralClass, T, VK_RValue, OK_Ordinary),
+    : Expr(ObjCDictionaryLiteralClass, T, VK_PRValue, OK_Ordinary),
       NumElements(VK.size()), HasPackExpansions(HasPackExpansions), Range(SR),
       DictWithObjectsMethod(method) {
   KeyValuePair *KeyValues = getTrailingObjects<KeyValuePair>();
@@ -281,7 +281,7 @@ QualType ObjCMessageExpr::getCallReturnType(ASTContext &Ctx) const {
     return Ctx.getLValueReferenceType(QT);
   case VK_XValue:
     return Ctx.getRValueReferenceType(QT);
-  case VK_RValue:
+  case VK_PRValue:
     return QT;
   }
   llvm_unreachable("Unsupported ExprValueKind");

diff  --git a/clang/lib/AST/JSONNodeDumper.cpp b/clang/lib/AST/JSONNodeDumper.cpp
index 038aceea54ffa..e3b1209bf5ccd 100644
--- a/clang/lib/AST/JSONNodeDumper.cpp
+++ b/clang/lib/AST/JSONNodeDumper.cpp
@@ -59,7 +59,9 @@ void JSONNodeDumper::Visit(const Stmt *S) {
     switch (E->getValueKind()) {
     case VK_LValue: Category = "lvalue"; break;
     case VK_XValue: Category = "xvalue"; break;
-    case VK_RValue: Category = "rvalue"; break;
+    case VK_PRValue:
+      Category = "prvalue";
+      break;
     }
     JOS.attribute("valueCategory", Category);
   }

diff  --git a/clang/lib/AST/TextNodeDumper.cpp b/clang/lib/AST/TextNodeDumper.cpp
index d17db0a0c9fe5..d35c249ba2dbe 100644
--- a/clang/lib/AST/TextNodeDumper.cpp
+++ b/clang/lib/AST/TextNodeDumper.cpp
@@ -144,7 +144,7 @@ void TextNodeDumper::Visit(const Stmt *Node) {
     {
       ColorScope Color(OS, ShowColors, ValueKindColor);
       switch (E->getValueKind()) {
-      case VK_RValue:
+      case VK_PRValue:
         break;
       case VK_LValue:
         OS << " lvalue";

diff  --git a/clang/lib/Analysis/BodyFarm.cpp b/clang/lib/Analysis/BodyFarm.cpp
index b2110f6b5450c..e357bfb29b82d 100644
--- a/clang/lib/Analysis/BodyFarm.cpp
+++ b/clang/lib/Analysis/BodyFarm.cpp
@@ -116,7 +116,7 @@ BinaryOperator *ASTMaker::makeAssignment(const Expr *LHS, const Expr *RHS,
                                          QualType Ty) {
   return BinaryOperator::Create(
       C, const_cast<Expr *>(LHS), const_cast<Expr *>(RHS), BO_Assign, Ty,
-      VK_RValue, OK_Ordinary, SourceLocation(), FPOptionsOverride());
+      VK_PRValue, OK_Ordinary, SourceLocation(), FPOptionsOverride());
 }
 
 BinaryOperator *ASTMaker::makeComparison(const Expr *LHS, const Expr *RHS,
@@ -125,7 +125,7 @@ BinaryOperator *ASTMaker::makeComparison(const Expr *LHS, const Expr *RHS,
          BinaryOperator::isComparisonOp(Op));
   return BinaryOperator::Create(
       C, const_cast<Expr *>(LHS), const_cast<Expr *>(RHS), Op,
-      C.getLogicalOperationType(), VK_RValue, OK_Ordinary, SourceLocation(),
+      C.getLogicalOperationType(), VK_PRValue, OK_Ordinary, SourceLocation(),
       FPOptionsOverride());
 }
 
@@ -169,7 +169,7 @@ ImplicitCastExpr *ASTMaker::makeImplicitCast(const Expr *Arg, QualType Ty,
                                   /* CastKind=*/CK,
                                   /* Expr=*/const_cast<Expr *>(Arg),
                                   /* CXXCastPath=*/nullptr,
-                                  /* ExprValueKind=*/VK_RValue,
+                                  /* ExprValueKind=*/VK_PRValue,
                                   /* FPFeatures */ FPOptionsOverride());
 }
 
@@ -264,7 +264,7 @@ static CallExpr *create_call_once_funcptr_call(ASTContext &C, ASTMaker M,
     llvm_unreachable("Unexpected state");
   }
 
-  return CallExpr::Create(C, SubExpr, CallArgs, C.VoidTy, VK_RValue,
+  return CallExpr::Create(C, SubExpr, CallArgs, C.VoidTy, VK_PRValue,
                           SourceLocation(), FPOptionsOverride());
 }
 
@@ -291,7 +291,7 @@ static CallExpr *create_call_once_lambda_call(ASTContext &C, ASTMaker M,
       /*AstContext=*/C, OO_Call, callOperatorDeclRef,
       /*Args=*/CallArgs,
       /*QualType=*/C.VoidTy,
-      /*ExprValueType=*/VK_RValue,
+      /*ExprValueType=*/VK_PRValue,
       /*SourceLocation=*/SourceLocation(),
       /*FPFeatures=*/FPOptionsOverride());
 }
@@ -451,7 +451,7 @@ static Stmt *create_call_once(ASTContext &C, const FunctionDecl *D) {
                          CK_IntegralToBoolean),
       /* opc=*/UO_LNot,
       /* QualType=*/C.IntTy,
-      /* ExprValueKind=*/VK_RValue,
+      /* ExprValueKind=*/VK_PRValue,
       /* ExprObjectKind=*/OK_Ordinary, SourceLocation(),
       /* CanOverflow*/ false, FPOptionsOverride());
 
@@ -513,13 +513,13 @@ static Stmt *create_dispatch_once(ASTContext &C, const FunctionDecl *D) {
       /*StmtClass=*/M.makeLvalueToRvalue(/*Expr=*/Block),
       /*Args=*/None,
       /*QualType=*/C.VoidTy,
-      /*ExprValueType=*/VK_RValue,
+      /*ExprValueType=*/VK_PRValue,
       /*SourceLocation=*/SourceLocation(), FPOptionsOverride());
 
   // (2) Create the assignment to the predicate.
   Expr *DoneValue =
       UnaryOperator::Create(C, M.makeIntegerLiteral(0, C.LongTy), UO_Not,
-                            C.LongTy, VK_RValue, OK_Ordinary, SourceLocation(),
+                            C.LongTy, VK_PRValue, OK_Ordinary, SourceLocation(),
                             /*CanOverflow*/ false, FPOptionsOverride());
 
   BinaryOperator *B =
@@ -580,7 +580,7 @@ static Stmt *create_dispatch_sync(ASTContext &C, const FunctionDecl *D) {
   ASTMaker M(C);
   DeclRefExpr *DR = M.makeDeclRefExpr(PV);
   ImplicitCastExpr *ICE = M.makeLvalueToRvalue(DR, Ty);
-  CallExpr *CE = CallExpr::Create(C, ICE, None, C.VoidTy, VK_RValue,
+  CallExpr *CE = CallExpr::Create(C, ICE, None, C.VoidTy, VK_PRValue,
                                   SourceLocation(), FPOptionsOverride());
   return CE;
 }

diff  --git a/clang/lib/Analysis/ThreadSafety.cpp b/clang/lib/Analysis/ThreadSafety.cpp
index 6727e1315b5f5..3eb1b640e7290 100644
--- a/clang/lib/Analysis/ThreadSafety.cpp
+++ b/clang/lib/Analysis/ThreadSafety.cpp
@@ -2170,7 +2170,7 @@ void BuildLockset::VisitDeclStmt(const DeclStmt *S) {
         if (!CtorD || !CtorD->hasAttrs())
           continue;
         handleCall(E, CtorD, VD);
-      } else if (isa<CallExpr>(E) && E->isRValue()) {
+      } else if (isa<CallExpr>(E) && E->isPRValue()) {
         // If the object is initialized by a function call that returns a
         // scoped lockable by value, use the attributes on the copy or move
         // constructor to figure out what effect that should have on the

diff  --git a/clang/lib/CodeGen/CGBlocks.cpp b/clang/lib/CodeGen/CGBlocks.cpp
index e5286761ee81e..9956d125d514e 100644
--- a/clang/lib/CodeGen/CGBlocks.cpp
+++ b/clang/lib/CodeGen/CGBlocks.cpp
@@ -1023,7 +1023,7 @@ llvm::Value *CodeGenFunction::EmitBlockLiteral(const CGBlockInfo &blockInfo) {
                           type, VK_LValue, SourceLocation());
 
       ImplicitCastExpr l2r(ImplicitCastExpr::OnStack, type, CK_LValueToRValue,
-                           &declRef, VK_RValue, FPOptionsOverride());
+                           &declRef, VK_PRValue, FPOptionsOverride());
       // FIXME: Pass a specific location for the expr init so that the store is
       // attributed to a reasonable location - otherwise it may be attributed to
       // locations of subexpressions in the initialization.

diff  --git a/clang/lib/CodeGen/CGExpr.cpp b/clang/lib/CodeGen/CGExpr.cpp
index e5bdba7ce37cb..bf514aab88515 100644
--- a/clang/lib/CodeGen/CGExpr.cpp
+++ b/clang/lib/CodeGen/CGExpr.cpp
@@ -200,7 +200,7 @@ llvm::Value *CodeGenFunction::EvaluateExprAsBool(const Expr *E) {
 /// EmitIgnoredExpr - Emit code to compute the specified expression,
 /// ignoring the result.
 void CodeGenFunction::EmitIgnoredExpr(const Expr *E) {
-  if (E->isRValue())
+  if (E->isPRValue())
     return (void) EmitAnyExpr(E, AggValueSlot::ignored(), true);
 
   // Just emit it as an l-value and drop the result.
@@ -5398,7 +5398,7 @@ static LValueOrRValue emitPseudoObjectExpr(CodeGenFunction &CGF,
       // directly into the slot.
       typedef CodeGenFunction::OpaqueValueMappingData OVMA;
       OVMA opaqueData;
-      if (ov == resultExpr && ov->isRValue() && !forLValue &&
+      if (ov == resultExpr && ov->isPRValue() && !forLValue &&
           CodeGenFunction::hasAggregateEvaluationKind(ov->getType())) {
         CGF.EmitAggExpr(ov->getSourceExpr(), slot);
         LValue LV = CGF.MakeAddrLValue(slot.getAddress(), ov->getType(),

diff  --git a/clang/lib/CodeGen/CGExprScalar.cpp b/clang/lib/CodeGen/CGExprScalar.cpp
index d67d6abe93c99..d299a1d38e0eb 100644
--- a/clang/lib/CodeGen/CGExprScalar.cpp
+++ b/clang/lib/CodeGen/CGExprScalar.cpp
@@ -1965,7 +1965,7 @@ bool CodeGenFunction::ShouldNullCheckClassCastValue(const CastExpr *CE) {
 
   if (const ImplicitCastExpr *ICE = dyn_cast<ImplicitCastExpr>(CE)) {
     // And that glvalue casts are never null.
-    if (ICE->getValueKind() != VK_RValue)
+    if (ICE->getValueKind() != VK_PRValue)
       return false;
   }
 
@@ -4854,7 +4854,7 @@ LValue CodeGenFunction::EmitObjCIsaExpr(const ObjCIsaExpr *E) {
 
   Expr *BaseExpr = E->getBase();
   Address Addr = Address::invalid();
-  if (BaseExpr->isRValue()) {
+  if (BaseExpr->isPRValue()) {
     Addr = Address(EmitScalarExpr(BaseExpr), getPointerAlign());
   } else {
     Addr = EmitLValue(BaseExpr).getAddress(*this);

diff  --git a/clang/lib/CodeGen/CGObjC.cpp b/clang/lib/CodeGen/CGObjC.cpp
index 66cc507d0d671..6c36dde1f526d 100644
--- a/clang/lib/CodeGen/CGObjC.cpp
+++ b/clang/lib/CodeGen/CGObjC.cpp
@@ -1522,7 +1522,7 @@ CodeGenFunction::generateObjCSetterBody(const ObjCImplementationDecl *classImpl,
   DeclRefExpr self(getContext(), selfDecl, false, selfDecl->getType(),
                    VK_LValue, SourceLocation());
   ImplicitCastExpr selfLoad(ImplicitCastExpr::OnStack, selfDecl->getType(),
-                            CK_LValueToRValue, &self, VK_RValue,
+                            CK_LValueToRValue, &self, VK_PRValue,
                             FPOptionsOverride());
   ObjCIvarRefExpr ivarRef(ivar, ivar->getType().getNonReferenceType(),
                           SourceLocation(), SourceLocation(),
@@ -1534,7 +1534,7 @@ CodeGenFunction::generateObjCSetterBody(const ObjCImplementationDecl *classImpl,
                   SourceLocation());
   ImplicitCastExpr argLoad(ImplicitCastExpr::OnStack,
                            argType.getUnqualifiedType(), CK_LValueToRValue,
-                           &arg, VK_RValue, FPOptionsOverride());
+                           &arg, VK_PRValue, FPOptionsOverride());
 
   // The property type can 
diff er from the ivar type in some situations with
   // Objective-C pointer types, we can always bit cast the RHS in these cases.
@@ -1556,15 +1556,15 @@ CodeGenFunction::generateObjCSetterBody(const ObjCImplementationDecl *classImpl,
     argCK = CK_BitCast;
   }
   ImplicitCastExpr argCast(ImplicitCastExpr::OnStack, ivarRef.getType(), argCK,
-                           &argLoad, VK_RValue, FPOptionsOverride());
+                           &argLoad, VK_PRValue, FPOptionsOverride());
   Expr *finalArg = &argLoad;
   if (!getContext().hasSameUnqualifiedType(ivarRef.getType(),
                                            argLoad.getType()))
     finalArg = &argCast;
 
   BinaryOperator *assign = BinaryOperator::Create(
-      getContext(), &ivarRef, finalArg, BO_Assign, ivarRef.getType(), VK_RValue,
-      OK_Ordinary, SourceLocation(), FPOptionsOverride());
+      getContext(), &ivarRef, finalArg, BO_Assign, ivarRef.getType(),
+      VK_PRValue, OK_Ordinary, SourceLocation(), FPOptionsOverride());
   EmitStmt(assign);
 }
 
@@ -3715,12 +3715,12 @@ CodeGenFunction::GenerateObjCAtomicSetterCopyHelperFunction(
 
   StartFunction(FD, ReturnTy, Fn, FI, args);
 
-  DeclRefExpr DstExpr(C, &DstDecl, false, DestTy, VK_RValue, SourceLocation());
+  DeclRefExpr DstExpr(C, &DstDecl, false, DestTy, VK_PRValue, SourceLocation());
   UnaryOperator *DST = UnaryOperator::Create(
       C, &DstExpr, UO_Deref, DestTy->getPointeeType(), VK_LValue, OK_Ordinary,
       SourceLocation(), false, FPOptionsOverride());
 
-  DeclRefExpr SrcExpr(C, &SrcDecl, false, SrcTy, VK_RValue, SourceLocation());
+  DeclRefExpr SrcExpr(C, &SrcDecl, false, SrcTy, VK_PRValue, SourceLocation());
   UnaryOperator *SRC = UnaryOperator::Create(
       C, &SrcExpr, UO_Deref, SrcTy->getPointeeType(), VK_LValue, OK_Ordinary,
       SourceLocation(), false, FPOptionsOverride());
@@ -3798,7 +3798,7 @@ CodeGenFunction::GenerateObjCAtomicGetterCopyHelperFunction(
 
   StartFunction(FD, ReturnTy, Fn, FI, args);
 
-  DeclRefExpr SrcExpr(getContext(), &SrcDecl, false, SrcTy, VK_RValue,
+  DeclRefExpr SrcExpr(getContext(), &SrcDecl, false, SrcTy, VK_PRValue,
                       SourceLocation());
 
   UnaryOperator *SRC = UnaryOperator::Create(
@@ -3825,7 +3825,7 @@ CodeGenFunction::GenerateObjCAtomicGetterCopyHelperFunction(
                              CXXConstExpr->getConstructionKind(),
                              SourceRange());
 
-  DeclRefExpr DstExpr(getContext(), &DstDecl, false, DestTy, VK_RValue,
+  DeclRefExpr DstExpr(getContext(), &DstDecl, false, DestTy, VK_PRValue,
                       SourceLocation());
 
   RValue DV = EmitAnyExpr(&DstExpr);

diff  --git a/clang/lib/CodeGen/CGOpenMPRuntime.cpp b/clang/lib/CodeGen/CGOpenMPRuntime.cpp
index 0614af98b208e..14c08342fa1ba 100644
--- a/clang/lib/CodeGen/CGOpenMPRuntime.cpp
+++ b/clang/lib/CodeGen/CGOpenMPRuntime.cpp
@@ -664,7 +664,7 @@ static void emitInitWithReductionInitializer(CodeGenFunction &CGF,
       return;
     }
     }
-    OpaqueValueExpr OVE(DRD->getLocation(), Ty, VK_RValue);
+    OpaqueValueExpr OVE(DRD->getLocation(), Ty, VK_PRValue);
     CodeGenFunction::OpaqueValueMapping OpaqueMap(CGF, &OVE, InitRVal);
     CGF.EmitAnyExprToMem(&OVE, Private, Ty.getQualifiers(),
                          /*IsInitializer=*/false);
@@ -4398,7 +4398,7 @@ CGOpenMPRuntime::emitTaskInit(CodeGenFunction &CGF, SourceLocation Loc,
       OpaqueValueExpr OVE(
           Loc,
           C.getIntTypeForBitwidth(C.getTypeSize(C.getSizeType()), /*Signed=*/0),
-          VK_RValue);
+          VK_PRValue);
       CodeGenFunction::OpaqueValueMapping OpaqueMap(CGF, &OVE,
                                                     RValue::get(NumOfElements));
       KmpTaskAffinityInfoArrayTy =
@@ -4892,7 +4892,7 @@ std::pair<llvm::Value *, Address> CGOpenMPRuntime::emitDependClause(
     }
     OpaqueValueExpr OVE(Loc,
                         C.getIntTypeForBitwidth(/*DestWidth=*/64, /*Signed=*/0),
-                        VK_RValue);
+                        VK_PRValue);
     CodeGenFunction::OpaqueValueMapping OpaqueMap(CGF, &OVE,
                                                   RValue::get(NumOfElements));
     KmpDependInfoArrayTy =

diff  --git a/clang/lib/CodeGen/CGStmtOpenMP.cpp b/clang/lib/CodeGen/CGStmtOpenMP.cpp
index a03cbffc8e8f1..9f2e52d4e5233 100644
--- a/clang/lib/CodeGen/CGStmtOpenMP.cpp
+++ b/clang/lib/CodeGen/CGStmtOpenMP.cpp
@@ -3673,11 +3673,11 @@ void CodeGenFunction::EmitSections(const OMPExecutableDirective &S) {
     CodeGenFunction::OpaqueValueMapping OpaqueUB(CGF, &UBRefExpr, UB);
     // Generate condition for loop.
     BinaryOperator *Cond = BinaryOperator::Create(
-        C, &IVRefExpr, &UBRefExpr, BO_LE, C.BoolTy, VK_RValue, OK_Ordinary,
+        C, &IVRefExpr, &UBRefExpr, BO_LE, C.BoolTy, VK_PRValue, OK_Ordinary,
         S.getBeginLoc(), FPOptionsOverride());
     // Increment for loop counter.
     UnaryOperator *Inc = UnaryOperator::Create(
-        C, &IVRefExpr, UO_PreInc, KmpInt32Ty, VK_RValue, OK_Ordinary,
+        C, &IVRefExpr, UO_PreInc, KmpInt32Ty, VK_PRValue, OK_Ordinary,
         S.getBeginLoc(), true, FPOptionsOverride());
     auto &&BodyGen = [CapturedStmt, CS, &S, &IV](CodeGenFunction &CGF) {
       // Iterate through all sections and emit a switch construct:
@@ -4571,7 +4571,7 @@ createImplicitFirstprivateForType(ASTContext &C, OMPTaskDataTy &Data,
   PrivateVD->setInitStyle(VarDecl::CInit);
   PrivateVD->setInit(ImplicitCastExpr::Create(C, ElemType, CK_LValueToRValue,
                                               InitRef, /*BasePath=*/nullptr,
-                                              VK_RValue, FPOptionsOverride()));
+                                              VK_PRValue, FPOptionsOverride()));
   Data.FirstprivateVars.emplace_back(OrigRef);
   Data.FirstprivateCopies.emplace_back(PrivateRef);
   Data.FirstprivateInits.emplace_back(InitRef);

diff  --git a/clang/lib/Frontend/Rewrite/RewriteModernObjC.cpp b/clang/lib/Frontend/Rewrite/RewriteModernObjC.cpp
index 9d5366bb161e5..34658caca6b32 100644
--- a/clang/lib/Frontend/Rewrite/RewriteModernObjC.cpp
+++ b/clang/lib/Frontend/Rewrite/RewriteModernObjC.cpp
@@ -585,7 +585,7 @@ namespace {
     CStyleCastExpr* NoTypeInfoCStyleCastExpr(ASTContext *Ctx, QualType Ty,
                                              CastKind Kind, Expr *E) {
       TypeSourceInfo *TInfo = Ctx->getTrivialTypeSourceInfo(Ty, SourceLocation());
-      return CStyleCastExpr::Create(*Ctx, Ty, VK_RValue, Kind, E, nullptr,
+      return CStyleCastExpr::Create(*Ctx, Ty, VK_PRValue, Kind, E, nullptr,
                                     FPOptionsOverride(), TInfo,
                                     SourceLocation(), SourceLocation());
     }
@@ -2107,12 +2107,12 @@ RewriteModernObjC::SynthesizeCallToFunctionDecl(FunctionDecl *FD,
   QualType pToFunc = Context->getPointerType(msgSendType);
   ImplicitCastExpr *ICE =
       ImplicitCastExpr::Create(*Context, pToFunc, CK_FunctionToPointerDecay,
-                               DRE, nullptr, VK_RValue, FPOptionsOverride());
+                               DRE, nullptr, VK_PRValue, FPOptionsOverride());
 
   const auto *FT = msgSendType->castAs<FunctionType>();
   CallExpr *Exp =
       CallExpr::Create(*Context, ICE, Args, FT->getCallResultType(*Context),
-                       VK_RValue, EndLoc, FPOptionsOverride());
+                       VK_PRValue, EndLoc, FPOptionsOverride());
   return Exp;
 }
 
@@ -2591,7 +2591,7 @@ Stmt *RewriteModernObjC::RewriteObjCStringLiteral(ObjCStringLiteral *Exp) {
       DeclRefExpr(*Context, NewVD, false, strType, VK_LValue, SourceLocation());
   Expr *Unop = UnaryOperator::Create(
       const_cast<ASTContext &>(*Context), DRE, UO_AddrOf,
-      Context->getPointerType(DRE->getType()), VK_RValue, OK_Ordinary,
+      Context->getPointerType(DRE->getType()), VK_PRValue, OK_Ordinary,
       SourceLocation(), false, FPOptionsOverride());
   // cast to NSConstantString *
   CastExpr *cast = NoTypeInfoCStyleCastExpr(Context, Exp->getType(),
@@ -2694,7 +2694,7 @@ Stmt *RewriteModernObjC::RewriteObjCBoxedExpr(ObjCBoxedExpr *Exp) {
 
   auto *FT = msgSendType->castAs<FunctionType>();
   CallExpr *CE = CallExpr::Create(*Context, PE, MsgExprs, FT->getReturnType(),
-                                  VK_RValue, EndLoc, FPOptionsOverride());
+                                  VK_PRValue, EndLoc, FPOptionsOverride());
   ReplaceStmt(Exp, CE);
   return CE;
 }
@@ -2720,7 +2720,7 @@ Stmt *RewriteModernObjC::RewriteObjCArrayLiteralExpr(ObjCArrayLiteral *Exp) {
   std::string NSArrayFName("__NSContainer_literal");
   FunctionDecl *NSArrayFD = SynthBlockInitFunctionDecl(NSArrayFName);
   DeclRefExpr *NSArrayDRE = new (Context) DeclRefExpr(
-      *Context, NSArrayFD, false, NSArrayFType, VK_RValue, SourceLocation());
+      *Context, NSArrayFD, false, NSArrayFType, VK_PRValue, SourceLocation());
 
   SmallVector<Expr*, 16> InitExprs;
   unsigned NumElements = Exp->getNumElements();
@@ -2815,7 +2815,7 @@ Stmt *RewriteModernObjC::RewriteObjCArrayLiteralExpr(ObjCArrayLiteral *Exp) {
 
   const FunctionType *FT = msgSendType->castAs<FunctionType>();
   CallExpr *CE = CallExpr::Create(*Context, PE, MsgExprs, FT->getReturnType(),
-                                  VK_RValue, EndLoc, FPOptionsOverride());
+                                  VK_PRValue, EndLoc, FPOptionsOverride());
   ReplaceStmt(Exp, CE);
   return CE;
 }
@@ -2841,7 +2841,7 @@ Stmt *RewriteModernObjC::RewriteObjCDictionaryLiteralExpr(ObjCDictionaryLiteral
   std::string NSDictFName("__NSContainer_literal");
   FunctionDecl *NSDictFD = SynthBlockInitFunctionDecl(NSDictFName);
   DeclRefExpr *NSDictDRE = new (Context) DeclRefExpr(
-      *Context, NSDictFD, false, NSDictFType, VK_RValue, SourceLocation());
+      *Context, NSDictFD, false, NSDictFType, VK_PRValue, SourceLocation());
 
   SmallVector<Expr*, 16> KeyExprs;
   SmallVector<Expr*, 16> ValueExprs;
@@ -2967,7 +2967,7 @@ Stmt *RewriteModernObjC::RewriteObjCDictionaryLiteralExpr(ObjCDictionaryLiteral
 
   const FunctionType *FT = msgSendType->castAs<FunctionType>();
   CallExpr *CE = CallExpr::Create(*Context, PE, MsgExprs, FT->getReturnType(),
-                                  VK_RValue, EndLoc, FPOptionsOverride());
+                                  VK_PRValue, EndLoc, FPOptionsOverride());
   ReplaceStmt(Exp, CE);
   return CE;
 }
@@ -3177,7 +3177,7 @@ Expr *RewriteModernObjC::SynthMsgSendStretCallExpr(FunctionDecl *MsgSendStretFla
       FunctionDecl::Create(*Context, TUDecl, SourceLocation(), SourceLocation(),
                            ID, FuncType, nullptr, SC_Extern, false, false);
   DeclRefExpr *DRE = new (Context)
-      DeclRefExpr(*Context, FD, false, castType, VK_RValue, SourceLocation());
+      DeclRefExpr(*Context, FD, false, castType, VK_PRValue, SourceLocation());
   CallExpr *STCE =
       CallExpr::Create(*Context, DRE, MsgExprs, castType, VK_LValue,
                        SourceLocation(), FPOptionsOverride());
@@ -3242,16 +3242,11 @@ Stmt *RewriteModernObjC::SynthMessageExpr(ObjCMessageExpr *Exp,
     SmallVector<Expr*, 4> InitExprs;
 
     // set the receiver to self, the first argument to all methods.
-    InitExprs.push_back(
-      NoTypeInfoCStyleCastExpr(Context, Context->getObjCIdType(),
-                               CK_BitCast,
-                   new (Context) DeclRefExpr(*Context,
-                                             CurMethodDef->getSelfDecl(),
-                                             false,
-                                             Context->getObjCIdType(),
-                                             VK_RValue,
-                                             SourceLocation()))
-                        ); // set the 'receiver'.
+    InitExprs.push_back(NoTypeInfoCStyleCastExpr(
+        Context, Context->getObjCIdType(), CK_BitCast,
+        new (Context) DeclRefExpr(*Context, CurMethodDef->getSelfDecl(), false,
+                                  Context->getObjCIdType(), VK_PRValue,
+                                  SourceLocation()))); // set the 'receiver'.
 
     // (id)class_getSuperclass((Class)objc_getClass("CurrentClass"))
     SmallVector<Expr*, 8> ClsExprs;
@@ -3291,7 +3286,7 @@ Stmt *RewriteModernObjC::SynthMessageExpr(ObjCMessageExpr *Exp,
       //
       SuperRep = UnaryOperator::Create(
           const_cast<ASTContext &>(*Context), SuperRep, UO_AddrOf,
-          Context->getPointerType(SuperRep->getType()), VK_RValue, OK_Ordinary,
+          Context->getPointerType(SuperRep->getType()), VK_PRValue, OK_Ordinary,
           SourceLocation(), false, FPOptionsOverride());
       SuperRep = NoTypeInfoCStyleCastExpr(Context,
                                           Context->getPointerType(superType),
@@ -3309,7 +3304,7 @@ Stmt *RewriteModernObjC::SynthMessageExpr(ObjCMessageExpr *Exp,
       // struct __rw_objc_super *
       SuperRep = UnaryOperator::Create(
           const_cast<ASTContext &>(*Context), SuperRep, UO_AddrOf,
-          Context->getPointerType(SuperRep->getType()), VK_RValue, OK_Ordinary,
+          Context->getPointerType(SuperRep->getType()), VK_PRValue, OK_Ordinary,
           SourceLocation(), false, FPOptionsOverride());
     }
     MsgExprs.push_back(SuperRep);
@@ -3339,15 +3334,11 @@ Stmt *RewriteModernObjC::SynthMessageExpr(ObjCMessageExpr *Exp,
     ObjCInterfaceDecl *ClassDecl = CurMethodDef->getClassInterface();
     SmallVector<Expr*, 4> InitExprs;
 
-    InitExprs.push_back(
-      NoTypeInfoCStyleCastExpr(Context, Context->getObjCIdType(),
-                               CK_BitCast,
-                   new (Context) DeclRefExpr(*Context,
-                                             CurMethodDef->getSelfDecl(),
-                                             false,
-                                             Context->getObjCIdType(),
-                                             VK_RValue, SourceLocation()))
-                        ); // set the 'receiver'.
+    InitExprs.push_back(NoTypeInfoCStyleCastExpr(
+        Context, Context->getObjCIdType(), CK_BitCast,
+        new (Context) DeclRefExpr(*Context, CurMethodDef->getSelfDecl(), false,
+                                  Context->getObjCIdType(), VK_PRValue,
+                                  SourceLocation()))); // set the 'receiver'.
 
     // (id)class_getSuperclass((Class)objc_getClass("CurrentClass"))
     SmallVector<Expr*, 8> ClsExprs;
@@ -3387,7 +3378,7 @@ Stmt *RewriteModernObjC::SynthMessageExpr(ObjCMessageExpr *Exp,
       //
       SuperRep = UnaryOperator::Create(
           const_cast<ASTContext &>(*Context), SuperRep, UO_AddrOf,
-          Context->getPointerType(SuperRep->getType()), VK_RValue, OK_Ordinary,
+          Context->getPointerType(SuperRep->getType()), VK_PRValue, OK_Ordinary,
           SourceLocation(), false, FPOptionsOverride());
       SuperRep = NoTypeInfoCStyleCastExpr(Context,
                                Context->getPointerType(superType),
@@ -3399,9 +3390,8 @@ Stmt *RewriteModernObjC::SynthMessageExpr(ObjCMessageExpr *Exp,
                                    SourceLocation());
       TypeSourceInfo *superTInfo
         = Context->getTrivialTypeSourceInfo(superType);
-      SuperRep = new (Context) CompoundLiteralExpr(SourceLocation(), superTInfo,
-                                                   superType, VK_RValue, ILE,
-                                                   false);
+      SuperRep = new (Context) CompoundLiteralExpr(
+          SourceLocation(), superTInfo, superType, VK_PRValue, ILE, false);
     }
     MsgExprs.push_back(SuperRep);
     break;
@@ -3543,7 +3533,7 @@ Stmt *RewriteModernObjC::SynthMessageExpr(ObjCMessageExpr *Exp,
 
   const FunctionType *FT = msgSendType->castAs<FunctionType>();
   CallExpr *CE = CallExpr::Create(*Context, PE, MsgExprs, FT->getReturnType(),
-                                  VK_RValue, EndLoc, FPOptionsOverride());
+                                  VK_PRValue, EndLoc, FPOptionsOverride());
   Stmt *ReplacingStmt = CE;
   if (MsgSendStretFlavor) {
     // We have the method which returns a struct/union. Must also generate
@@ -4580,11 +4570,9 @@ Stmt *RewriteModernObjC::SynthesizeBlockCall(CallExpr *Exp, const Expr *BlockExp
     Expr *RHSExp = CEXPR->getRHS();
     Stmt *RHSStmt = SynthesizeBlockCall(Exp, RHSExp);
     Expr *CONDExp = CEXPR->getCond();
-    ConditionalOperator *CondExpr =
-      new (Context) ConditionalOperator(CONDExp,
-                                      SourceLocation(), cast<Expr>(LHSStmt),
-                                      SourceLocation(), cast<Expr>(RHSStmt),
-                                      Exp->getType(), VK_RValue, OK_Ordinary);
+    ConditionalOperator *CondExpr = new (Context) ConditionalOperator(
+        CONDExp, SourceLocation(), cast<Expr>(LHSStmt), SourceLocation(),
+        cast<Expr>(RHSStmt), Exp->getType(), VK_PRValue, OK_Ordinary);
     return CondExpr;
   } else if (const ObjCIvarRefExpr *IRE = dyn_cast<ObjCIvarRefExpr>(BlockExp)) {
     CPT = IRE->getType()->getAs<BlockPointerType>();
@@ -4654,7 +4642,7 @@ Stmt *RewriteModernObjC::SynthesizeBlockCall(CallExpr *Exp, const Expr *BlockExp
     BlkExprs.push_back(*I);
   }
   CallExpr *CE =
-      CallExpr::Create(*Context, PE, BlkExprs, Exp->getType(), VK_RValue,
+      CallExpr::Create(*Context, PE, BlkExprs, Exp->getType(), VK_PRValue,
                        SourceLocation(), FPOptionsOverride());
   return CE;
 }
@@ -5283,7 +5271,7 @@ Stmt *RewriteModernObjC::SynthBlockInitExpr(BlockExpr *Exp,
 
   FD = SynthBlockInitFunctionDecl(Tag);
   DeclRefExpr *DRE = new (Context)
-      DeclRefExpr(*Context, FD, false, FType, VK_RValue, SourceLocation());
+      DeclRefExpr(*Context, FD, false, FType, VK_PRValue, SourceLocation());
 
   SmallVector<Expr*, 4> InitExprs;
 
@@ -5305,7 +5293,7 @@ Stmt *RewriteModernObjC::SynthBlockInitExpr(BlockExpr *Exp,
       const_cast<ASTContext &>(*Context),
       new (Context) DeclRefExpr(*Context, NewVD, false, Context->VoidPtrTy,
                                 VK_LValue, SourceLocation()),
-      UO_AddrOf, Context->getPointerType(Context->VoidPtrTy), VK_RValue,
+      UO_AddrOf, Context->getPointerType(Context->VoidPtrTy), VK_PRValue,
       OK_Ordinary, SourceLocation(), false, FPOptionsOverride());
   InitExprs.push_back(DescRefExpr);
 
@@ -5323,9 +5311,10 @@ Stmt *RewriteModernObjC::SynthBlockInitExpr(BlockExpr *Exp,
         if (HasLocalVariableExternalStorage(*I)) {
           QualType QT = (*I)->getType();
           QT = Context->getPointerType(QT);
-          Exp = UnaryOperator::Create(
-              const_cast<ASTContext &>(*Context), Exp, UO_AddrOf, QT, VK_RValue,
-              OK_Ordinary, SourceLocation(), false, FPOptionsOverride());
+          Exp = UnaryOperator::Create(const_cast<ASTContext &>(*Context), Exp,
+                                      UO_AddrOf, QT, VK_PRValue, OK_Ordinary,
+                                      SourceLocation(), false,
+                                      FPOptionsOverride());
         }
       } else if (isTopLevelBlockPointerType((*I)->getType())) {
         FD = SynthBlockInitFunctionDecl((*I)->getName());
@@ -5340,9 +5329,10 @@ Stmt *RewriteModernObjC::SynthBlockInitExpr(BlockExpr *Exp,
         if (HasLocalVariableExternalStorage(*I)) {
           QualType QT = (*I)->getType();
           QT = Context->getPointerType(QT);
-          Exp = UnaryOperator::Create(
-              const_cast<ASTContext &>(*Context), Exp, UO_AddrOf, QT, VK_RValue,
-              OK_Ordinary, SourceLocation(), false, FPOptionsOverride());
+          Exp = UnaryOperator::Create(const_cast<ASTContext &>(*Context), Exp,
+                                      UO_AddrOf, QT, VK_PRValue, OK_Ordinary,
+                                      SourceLocation(), false,
+                                      FPOptionsOverride());
         }
 
       }
@@ -5382,7 +5372,7 @@ Stmt *RewriteModernObjC::SynthBlockInitExpr(BlockExpr *Exp,
       if (!isNestedCapturedVar)
         Exp = UnaryOperator::Create(
             const_cast<ASTContext &>(*Context), Exp, UO_AddrOf,
-            Context->getPointerType(Exp->getType()), VK_RValue, OK_Ordinary,
+            Context->getPointerType(Exp->getType()), VK_PRValue, OK_Ordinary,
             SourceLocation(), false, FPOptionsOverride());
       Exp = NoTypeInfoCStyleCastExpr(Context, castT, CK_BitCast, Exp);
       InitExprs.push_back(Exp);
@@ -5409,7 +5399,7 @@ Stmt *RewriteModernObjC::SynthBlockInitExpr(BlockExpr *Exp,
 
   NewRep = UnaryOperator::Create(
       const_cast<ASTContext &>(*Context), NewRep, UO_AddrOf,
-      Context->getPointerType(NewRep->getType()), VK_RValue, OK_Ordinary,
+      Context->getPointerType(NewRep->getType()), VK_PRValue, OK_Ordinary,
       SourceLocation(), false, FPOptionsOverride());
   NewRep = NoTypeInfoCStyleCastExpr(Context, FType, CK_BitCast,
                                     NewRep);
@@ -7497,7 +7487,7 @@ Stmt *RewriteModernObjC::RewriteObjCIvarRefExpr(ObjCIvarRefExpr *IV) {
                       VK_LValue, SourceLocation());
       BinaryOperator *addExpr = BinaryOperator::Create(
           *Context, castExpr, DRE, BO_Add,
-          Context->getPointerType(Context->CharTy), VK_RValue, OK_Ordinary,
+          Context->getPointerType(Context->CharTy), VK_PRValue, OK_Ordinary,
           SourceLocation(), FPOptionsOverride());
       // Don't forget the parens to enforce the proper binding.
       ParenExpr *PE = new (Context) ParenExpr(SourceLocation(),

diff  --git a/clang/lib/Frontend/Rewrite/RewriteObjC.cpp b/clang/lib/Frontend/Rewrite/RewriteObjC.cpp
index 543b3b09a9ccf..0750d36b02ac2 100644
--- a/clang/lib/Frontend/Rewrite/RewriteObjC.cpp
+++ b/clang/lib/Frontend/Rewrite/RewriteObjC.cpp
@@ -491,7 +491,7 @@ namespace {
     CStyleCastExpr* NoTypeInfoCStyleCastExpr(ASTContext *Ctx, QualType Ty,
                                              CastKind Kind, Expr *E) {
       TypeSourceInfo *TInfo = Ctx->getTrivialTypeSourceInfo(Ty, SourceLocation());
-      return CStyleCastExpr::Create(*Ctx, Ty, VK_RValue, Kind, E, nullptr,
+      return CStyleCastExpr::Create(*Ctx, Ty, VK_PRValue, Kind, E, nullptr,
                                     FPOptionsOverride(), TInfo,
                                     SourceLocation(), SourceLocation());
     }
@@ -2024,13 +2024,13 @@ RewriteObjC::SynthesizeCallToFunctionDecl(FunctionDecl *FD,
   QualType pToFunc = Context->getPointerType(msgSendType);
   ImplicitCastExpr *ICE =
       ImplicitCastExpr::Create(*Context, pToFunc, CK_FunctionToPointerDecay,
-                               DRE, nullptr, VK_RValue, FPOptionsOverride());
+                               DRE, nullptr, VK_PRValue, FPOptionsOverride());
 
   const auto *FT = msgSendType->castAs<FunctionType>();
 
   CallExpr *Exp =
       CallExpr::Create(*Context, ICE, Args, FT->getCallResultType(*Context),
-                       VK_RValue, EndLoc, FPOptionsOverride());
+                       VK_PRValue, EndLoc, FPOptionsOverride());
   return Exp;
 }
 
@@ -2518,7 +2518,7 @@ Stmt *RewriteObjC::RewriteObjCStringLiteral(ObjCStringLiteral *Exp) {
       DeclRefExpr(*Context, NewVD, false, strType, VK_LValue, SourceLocation());
   Expr *Unop = UnaryOperator::Create(
       const_cast<ASTContext &>(*Context), DRE, UO_AddrOf,
-      Context->getPointerType(DRE->getType()), VK_RValue, OK_Ordinary,
+      Context->getPointerType(DRE->getType()), VK_PRValue, OK_Ordinary,
       SourceLocation(), false, FPOptionsOverride());
   // cast to NSConstantString *
   CastExpr *cast = NoTypeInfoCStyleCastExpr(Context, Exp->getType(),
@@ -2617,7 +2617,7 @@ CallExpr *RewriteObjC::SynthMsgSendStretCallExpr(FunctionDecl *MsgSendStretFlavo
 
   const auto *FT = msgSendType->castAs<FunctionType>();
   CallExpr *STCE =
-      CallExpr::Create(*Context, PE, MsgExprs, FT->getReturnType(), VK_RValue,
+      CallExpr::Create(*Context, PE, MsgExprs, FT->getReturnType(), VK_PRValue,
                        SourceLocation(), FPOptionsOverride());
   return STCE;
 }
@@ -2670,16 +2670,11 @@ Stmt *RewriteObjC::SynthMessageExpr(ObjCMessageExpr *Exp,
     SmallVector<Expr*, 4> InitExprs;
 
     // set the receiver to self, the first argument to all methods.
-    InitExprs.push_back(
-      NoTypeInfoCStyleCastExpr(Context, Context->getObjCIdType(),
-                               CK_BitCast,
-                   new (Context) DeclRefExpr(*Context,
-                                             CurMethodDef->getSelfDecl(),
-                                             false,
-                                             Context->getObjCIdType(),
-                                             VK_RValue,
-                                             SourceLocation()))
-                        ); // set the 'receiver'.
+    InitExprs.push_back(NoTypeInfoCStyleCastExpr(
+        Context, Context->getObjCIdType(), CK_BitCast,
+        new (Context) DeclRefExpr(*Context, CurMethodDef->getSelfDecl(), false,
+                                  Context->getObjCIdType(), VK_PRValue,
+                                  SourceLocation()))); // set the 'receiver'.
 
     // (id)class_getSuperclass((Class)objc_getClass("CurrentClass"))
     SmallVector<Expr*, 8> ClsExprs;
@@ -2721,7 +2716,7 @@ Stmt *RewriteObjC::SynthMessageExpr(ObjCMessageExpr *Exp,
       //
       SuperRep = UnaryOperator::Create(
           const_cast<ASTContext &>(*Context), SuperRep, UO_AddrOf,
-          Context->getPointerType(SuperRep->getType()), VK_RValue, OK_Ordinary,
+          Context->getPointerType(SuperRep->getType()), VK_PRValue, OK_Ordinary,
           SourceLocation(), false, FPOptionsOverride());
       SuperRep = NoTypeInfoCStyleCastExpr(Context,
                                           Context->getPointerType(superType),
@@ -2739,7 +2734,7 @@ Stmt *RewriteObjC::SynthMessageExpr(ObjCMessageExpr *Exp,
       // struct objc_super *
       SuperRep = UnaryOperator::Create(
           const_cast<ASTContext &>(*Context), SuperRep, UO_AddrOf,
-          Context->getPointerType(SuperRep->getType()), VK_RValue, OK_Ordinary,
+          Context->getPointerType(SuperRep->getType()), VK_PRValue, OK_Ordinary,
           SourceLocation(), false, FPOptionsOverride());
     }
     MsgExprs.push_back(SuperRep);
@@ -2766,15 +2761,11 @@ Stmt *RewriteObjC::SynthMessageExpr(ObjCMessageExpr *Exp,
     ObjCInterfaceDecl *ClassDecl = CurMethodDef->getClassInterface();
     SmallVector<Expr*, 4> InitExprs;
 
-    InitExprs.push_back(
-      NoTypeInfoCStyleCastExpr(Context, Context->getObjCIdType(),
-                               CK_BitCast,
-                   new (Context) DeclRefExpr(*Context,
-                                             CurMethodDef->getSelfDecl(),
-                                             false,
-                                             Context->getObjCIdType(),
-                                             VK_RValue, SourceLocation()))
-                        ); // set the 'receiver'.
+    InitExprs.push_back(NoTypeInfoCStyleCastExpr(
+        Context, Context->getObjCIdType(), CK_BitCast,
+        new (Context) DeclRefExpr(*Context, CurMethodDef->getSelfDecl(), false,
+                                  Context->getObjCIdType(), VK_PRValue,
+                                  SourceLocation()))); // set the 'receiver'.
 
     // (id)class_getSuperclass((Class)objc_getClass("CurrentClass"))
     SmallVector<Expr*, 8> ClsExprs;
@@ -2817,7 +2808,7 @@ Stmt *RewriteObjC::SynthMessageExpr(ObjCMessageExpr *Exp,
       //
       SuperRep = UnaryOperator::Create(
           const_cast<ASTContext &>(*Context), SuperRep, UO_AddrOf,
-          Context->getPointerType(SuperRep->getType()), VK_RValue, OK_Ordinary,
+          Context->getPointerType(SuperRep->getType()), VK_PRValue, OK_Ordinary,
           SourceLocation(), false, FPOptionsOverride());
       SuperRep = NoTypeInfoCStyleCastExpr(Context,
                                Context->getPointerType(superType),
@@ -2829,9 +2820,8 @@ Stmt *RewriteObjC::SynthMessageExpr(ObjCMessageExpr *Exp,
                                    SourceLocation());
       TypeSourceInfo *superTInfo
         = Context->getTrivialTypeSourceInfo(superType);
-      SuperRep = new (Context) CompoundLiteralExpr(SourceLocation(), superTInfo,
-                                                   superType, VK_RValue, ILE,
-                                                   false);
+      SuperRep = new (Context) CompoundLiteralExpr(
+          SourceLocation(), superTInfo, superType, VK_PRValue, ILE, false);
     }
     MsgExprs.push_back(SuperRep);
     break;
@@ -2973,7 +2963,7 @@ Stmt *RewriteObjC::SynthMessageExpr(ObjCMessageExpr *Exp,
 
   const auto *FT = msgSendType->castAs<FunctionType>();
   CallExpr *CE = CallExpr::Create(*Context, PE, MsgExprs, FT->getReturnType(),
-                                  VK_RValue, EndLoc, FPOptionsOverride());
+                                  VK_PRValue, EndLoc, FPOptionsOverride());
   Stmt *ReplacingStmt = CE;
   if (MsgSendStretFlavor) {
     // We have the method which returns a struct/union. Must also generate
@@ -3003,14 +2993,12 @@ Stmt *RewriteObjC::SynthMessageExpr(ObjCMessageExpr *Exp,
                                                    Context->IntTy,
                                                    SourceLocation());
     BinaryOperator *lessThanExpr = BinaryOperator::Create(
-        *Context, sizeofExpr, limit, BO_LE, Context->IntTy, VK_RValue,
+        *Context, sizeofExpr, limit, BO_LE, Context->IntTy, VK_PRValue,
         OK_Ordinary, SourceLocation(), FPOptionsOverride());
     // (sizeof(returnType) <= 8 ? objc_msgSend(...) : objc_msgSend_stret(...))
-    ConditionalOperator *CondExpr =
-      new (Context) ConditionalOperator(lessThanExpr,
-                                        SourceLocation(), CE,
-                                        SourceLocation(), STCE,
-                                        returnType, VK_RValue, OK_Ordinary);
+    ConditionalOperator *CondExpr = new (Context) ConditionalOperator(
+        lessThanExpr, SourceLocation(), CE, SourceLocation(), STCE, returnType,
+        VK_PRValue, OK_Ordinary);
     ReplacingStmt = new (Context) ParenExpr(SourceLocation(), SourceLocation(),
                                             CondExpr);
   }
@@ -3056,7 +3044,7 @@ Stmt *RewriteObjC::RewriteObjCProtocolExpr(ObjCProtocolExpr *Exp) {
       *Context, VD, false, getProtocolType(), VK_LValue, SourceLocation());
   Expr *DerefExpr = UnaryOperator::Create(
       const_cast<ASTContext &>(*Context), DRE, UO_AddrOf,
-      Context->getPointerType(DRE->getType()), VK_RValue, OK_Ordinary,
+      Context->getPointerType(DRE->getType()), VK_PRValue, OK_Ordinary,
       SourceLocation(), false, FPOptionsOverride());
   CastExpr *castExpr = NoTypeInfoCStyleCastExpr(Context, DerefExpr->getType(),
                                                 CK_BitCast,
@@ -3749,11 +3737,9 @@ Stmt *RewriteObjC::SynthesizeBlockCall(CallExpr *Exp, const Expr *BlockExp) {
     Expr *RHSExp = CEXPR->getRHS();
     Stmt *RHSStmt = SynthesizeBlockCall(Exp, RHSExp);
     Expr *CONDExp = CEXPR->getCond();
-    ConditionalOperator *CondExpr =
-      new (Context) ConditionalOperator(CONDExp,
-                                      SourceLocation(), cast<Expr>(LHSStmt),
-                                      SourceLocation(), cast<Expr>(RHSStmt),
-                                      Exp->getType(), VK_RValue, OK_Ordinary);
+    ConditionalOperator *CondExpr = new (Context) ConditionalOperator(
+        CONDExp, SourceLocation(), cast<Expr>(LHSStmt), SourceLocation(),
+        cast<Expr>(RHSStmt), Exp->getType(), VK_PRValue, OK_Ordinary);
     return CondExpr;
   } else if (const ObjCIvarRefExpr *IRE = dyn_cast<ObjCIvarRefExpr>(BlockExp)) {
     CPT = IRE->getType()->getAs<BlockPointerType>();
@@ -3823,7 +3809,7 @@ Stmt *RewriteObjC::SynthesizeBlockCall(CallExpr *Exp, const Expr *BlockExp) {
     BlkExprs.push_back(*I);
   }
   CallExpr *CE =
-      CallExpr::Create(*Context, PE, BlkExprs, Exp->getType(), VK_RValue,
+      CallExpr::Create(*Context, PE, BlkExprs, Exp->getType(), VK_PRValue,
                        SourceLocation(), FPOptionsOverride());
   return CE;
 }
@@ -4422,7 +4408,7 @@ Stmt *RewriteObjC::SynthBlockInitExpr(BlockExpr *Exp,
   // Simulate a constructor call...
   FD = SynthBlockInitFunctionDecl(Tag);
   DeclRefExpr *DRE = new (Context)
-      DeclRefExpr(*Context, FD, false, FType, VK_RValue, SourceLocation());
+      DeclRefExpr(*Context, FD, false, FType, VK_PRValue, SourceLocation());
 
   SmallVector<Expr*, 4> InitExprs;
 
@@ -4444,7 +4430,7 @@ Stmt *RewriteObjC::SynthBlockInitExpr(BlockExpr *Exp,
       const_cast<ASTContext &>(*Context),
       new (Context) DeclRefExpr(*Context, NewVD, false, Context->VoidPtrTy,
                                 VK_LValue, SourceLocation()),
-      UO_AddrOf, Context->getPointerType(Context->VoidPtrTy), VK_RValue,
+      UO_AddrOf, Context->getPointerType(Context->VoidPtrTy), VK_PRValue,
       OK_Ordinary, SourceLocation(), false, FPOptionsOverride());
   InitExprs.push_back(DescRefExpr);
 
@@ -4462,9 +4448,10 @@ Stmt *RewriteObjC::SynthBlockInitExpr(BlockExpr *Exp,
         if (HasLocalVariableExternalStorage(*I)) {
           QualType QT = (*I)->getType();
           QT = Context->getPointerType(QT);
-          Exp = UnaryOperator::Create(
-              const_cast<ASTContext &>(*Context), Exp, UO_AddrOf, QT, VK_RValue,
-              OK_Ordinary, SourceLocation(), false, FPOptionsOverride());
+          Exp = UnaryOperator::Create(const_cast<ASTContext &>(*Context), Exp,
+                                      UO_AddrOf, QT, VK_PRValue, OK_Ordinary,
+                                      SourceLocation(), false,
+                                      FPOptionsOverride());
         }
       } else if (isTopLevelBlockPointerType((*I)->getType())) {
         FD = SynthBlockInitFunctionDecl((*I)->getName());
@@ -4479,9 +4466,10 @@ Stmt *RewriteObjC::SynthBlockInitExpr(BlockExpr *Exp,
         if (HasLocalVariableExternalStorage(*I)) {
           QualType QT = (*I)->getType();
           QT = Context->getPointerType(QT);
-          Exp = UnaryOperator::Create(
-              const_cast<ASTContext &>(*Context), Exp, UO_AddrOf, QT, VK_RValue,
-              OK_Ordinary, SourceLocation(), false, FPOptionsOverride());
+          Exp = UnaryOperator::Create(const_cast<ASTContext &>(*Context), Exp,
+                                      UO_AddrOf, QT, VK_PRValue, OK_Ordinary,
+                                      SourceLocation(), false,
+                                      FPOptionsOverride());
         }
       }
       InitExprs.push_back(Exp);
@@ -4520,7 +4508,7 @@ Stmt *RewriteObjC::SynthBlockInitExpr(BlockExpr *Exp,
       if (!isNestedCapturedVar)
         Exp = UnaryOperator::Create(
             const_cast<ASTContext &>(*Context), Exp, UO_AddrOf,
-            Context->getPointerType(Exp->getType()), VK_RValue, OK_Ordinary,
+            Context->getPointerType(Exp->getType()), VK_PRValue, OK_Ordinary,
             SourceLocation(), false, FPOptionsOverride());
       Exp = NoTypeInfoCStyleCastExpr(Context, castT, CK_BitCast, Exp);
       InitExprs.push_back(Exp);
@@ -4539,7 +4527,7 @@ Stmt *RewriteObjC::SynthBlockInitExpr(BlockExpr *Exp,
                             SourceLocation(), FPOptionsOverride());
   NewRep = UnaryOperator::Create(
       const_cast<ASTContext &>(*Context), NewRep, UO_AddrOf,
-      Context->getPointerType(NewRep->getType()), VK_RValue, OK_Ordinary,
+      Context->getPointerType(NewRep->getType()), VK_PRValue, OK_Ordinary,
       SourceLocation(), false, FPOptionsOverride());
   NewRep = NoTypeInfoCStyleCastExpr(Context, FType, CK_BitCast,
                                     NewRep);

diff  --git a/clang/lib/Sema/Sema.cpp b/clang/lib/Sema/Sema.cpp
index d84315f08d1e7..8fd4c680d3bff 100644
--- a/clang/lib/Sema/Sema.cpp
+++ b/clang/lib/Sema/Sema.cpp
@@ -576,13 +576,14 @@ ExprResult Sema::ImpCastExprToType(Expr *E, QualType Ty,
                                    const CXXCastPath *BasePath,
                                    CheckedConversionKind CCK) {
 #ifndef NDEBUG
-  if (VK == VK_RValue && !E->isRValue()) {
+  if (VK == VK_PRValue && !E->isPRValue()) {
     switch (Kind) {
     default:
-      llvm_unreachable(("can't implicitly cast lvalue to rvalue with this cast "
-                        "kind: " +
-                        std::string(CastExpr::getCastKindName(Kind)))
-                           .c_str());
+      llvm_unreachable(
+          ("can't implicitly cast glvalue to prvalue with this cast "
+           "kind: " +
+           std::string(CastExpr::getCastKindName(Kind)))
+              .c_str());
     case CK_Dependent:
     case CK_LValueToRValue:
     case CK_ArrayToPointerDecay:
@@ -592,8 +593,8 @@ ExprResult Sema::ImpCastExprToType(Expr *E, QualType Ty,
       break;
     }
   }
-  assert((VK == VK_RValue || Kind == CK_Dependent || !E->isRValue()) &&
-         "can't cast rvalue to lvalue");
+  assert((VK == VK_PRValue || Kind == CK_Dependent || !E->isPRValue()) &&
+         "can't cast prvalue to glvalue");
 #endif
 
   diagnoseNullableToNonnullConversion(Ty, E->getType(), E->getBeginLoc());
@@ -608,7 +609,7 @@ ExprResult Sema::ImpCastExprToType(Expr *E, QualType Ty,
   // C++1z [conv.array]: The temporary materialization conversion is applied.
   // We also use this to fuel C++ DR1213, which applies to C++11 onwards.
   if (Kind == CK_ArrayToPointerDecay && getLangOpts().CPlusPlus &&
-      E->getValueKind() == VK_RValue) {
+      E->getValueKind() == VK_PRValue) {
     // The temporary is an lvalue in C++98 and an xvalue otherwise.
     ExprResult Materialized = CreateMaterializeTemporaryExpr(
         E->getType(), E, !getLangOpts().CPlusPlus11);

diff  --git a/clang/lib/Sema/SemaCast.cpp b/clang/lib/Sema/SemaCast.cpp
index 943880c22376b..480b61f1afe50 100644
--- a/clang/lib/Sema/SemaCast.cpp
+++ b/clang/lib/Sema/SemaCast.cpp
@@ -747,7 +747,7 @@ static TryCastResult getCastAwayConstnessCastKind(CastAwayConstnessKind CACK,
 void CastOperation::CheckDynamicCast() {
   CheckNoDerefRAII NoderefCheck(*this);
 
-  if (ValueKind == VK_RValue)
+  if (ValueKind == VK_PRValue)
     SrcExpr = Self.DefaultFunctionArrayLvalueConversion(SrcExpr.get());
   else if (isPlaceholder())
     SrcExpr = Self.CheckPlaceholderExpr(SrcExpr.get());
@@ -815,7 +815,7 @@ void CastOperation::CheckDynamicCast() {
   } else {
     // If we're dynamic_casting from a prvalue to an rvalue reference, we need
     // to materialize the prvalue before we bind the reference to it.
-    if (SrcExpr.get()->isRValue())
+    if (SrcExpr.get()->isPRValue())
       SrcExpr = Self.CreateMaterializeTemporaryExpr(
           SrcType, SrcExpr.get(), /*IsLValueReference*/ false);
     SrcPointee = SrcType;
@@ -914,7 +914,7 @@ void CastOperation::CheckDynamicCast() {
 void CastOperation::CheckConstCast() {
   CheckNoDerefRAII NoderefCheck(*this);
 
-  if (ValueKind == VK_RValue)
+  if (ValueKind == VK_PRValue)
     SrcExpr = Self.DefaultFunctionArrayLvalueConversion(SrcExpr.get());
   else if (isPlaceholder())
     SrcExpr = Self.CheckPlaceholderExpr(SrcExpr.get());
@@ -1126,7 +1126,7 @@ static bool checkCastFunctionType(Sema &Self, const ExprResult &SrcExpr,
 /// like this:
 /// char *bytes = reinterpret_cast\<char*\>(int_ptr);
 void CastOperation::CheckReinterpretCast() {
-  if (ValueKind == VK_RValue && !isPlaceholder(BuiltinType::Overload))
+  if (ValueKind == VK_PRValue && !isPlaceholder(BuiltinType::Overload))
     SrcExpr = Self.DefaultFunctionArrayLvalueConversion(SrcExpr.get());
   else
     checkNonOverloadPlaceholders();
@@ -1198,7 +1198,7 @@ void CastOperation::CheckStaticCast() {
     return;
   }
 
-  if (ValueKind == VK_RValue && !DestType->isRecordType() &&
+  if (ValueKind == VK_PRValue && !DestType->isRecordType() &&
       !isPlaceholder(BuiltinType::Overload)) {
     SrcExpr = Self.DefaultFunctionArrayLvalueConversion(SrcExpr.get());
     if (SrcExpr.isInvalid()) // if conversion failed, don't report another error
@@ -1897,7 +1897,7 @@ static TryCastResult TryConstCast(Sema &Self, ExprResult &SrcExpr,
       return TC_NotApplicable;
     }
 
-    if (isa<RValueReferenceType>(DestTypeTmp) && SrcExpr.get()->isRValue()) {
+    if (isa<RValueReferenceType>(DestTypeTmp) && SrcExpr.get()->isPRValue()) {
       if (!SrcType->isRecordType()) {
         // Cannot const_cast non-class prvalue to rvalue reference type. But if
         // this is C-style, static_cast can do this.
@@ -2169,7 +2169,8 @@ static bool fixOverloadedReinterpretCastExpr(Sema &Self, QualType DestType,
   // like it?
   if (Self.ResolveAndFixSingleFunctionTemplateSpecialization(
           Result,
-          Expr::getValueKindForType(DestType) == VK_RValue // Convert Fun to Ptr
+          Expr::getValueKindForType(DestType) ==
+              VK_PRValue // Convert Fun to Ptr
           ) &&
       Result.isUsable())
     return true;
@@ -2659,7 +2660,7 @@ void CastOperation::CheckCXXCStyleCast(bool FunctionalStyle,
     return;
   }
 
-  if (ValueKind == VK_RValue && !DestType->isRecordType() &&
+  if (ValueKind == VK_PRValue && !DestType->isRecordType() &&
       !isPlaceholder(BuiltinType::Overload)) {
     SrcExpr = Self.DefaultFunctionArrayLvalueConversion(SrcExpr.get());
     if (SrcExpr.isInvalid())
@@ -3103,7 +3104,7 @@ void CastOperation::CheckBuiltinBitCast() {
     return;
   }
 
-  if (SrcExpr.get()->isRValue())
+  if (SrcExpr.get()->isPRValue())
     SrcExpr = Self.CreateMaterializeTemporaryExpr(SrcType, SrcExpr.get(),
                                                   /*IsLValueReference=*/false);
 

diff  --git a/clang/lib/Sema/SemaChecking.cpp b/clang/lib/Sema/SemaChecking.cpp
index 5daa88dcdbe1a..99110c6b5d8dd 100644
--- a/clang/lib/Sema/SemaChecking.cpp
+++ b/clang/lib/Sema/SemaChecking.cpp
@@ -6363,7 +6363,7 @@ ExprResult Sema::SemaBuiltinShuffleVector(CallExpr *TheCall) {
 ExprResult Sema::SemaConvertVectorExpr(Expr *E, TypeSourceInfo *TInfo,
                                        SourceLocation BuiltinLoc,
                                        SourceLocation RParenLoc) {
-  ExprValueKind VK = VK_RValue;
+  ExprValueKind VK = VK_PRValue;
   ExprObjectKind OK = OK_Ordinary;
   QualType DstTy = TInfo->getType();
   QualType SrcTy = E->getType();

diff  --git a/clang/lib/Sema/SemaCoroutine.cpp b/clang/lib/Sema/SemaCoroutine.cpp
index cd3b0db6b824b..67c64782a0e82 100644
--- a/clang/lib/Sema/SemaCoroutine.cpp
+++ b/clang/lib/Sema/SemaCoroutine.cpp
@@ -897,7 +897,7 @@ ExprResult Sema::BuildResolvedCoawaitExpr(SourceLocation Loc, Expr *E,
 
   // If the expression is a temporary, materialize it as an lvalue so that we
   // can use it multiple times.
-  if (E->getValueKind() == VK_RValue)
+  if (E->getValueKind() == VK_PRValue)
     E = CreateMaterializeTemporaryExpr(E->getType(), E, true);
 
   // The location of the `co_await` token cannot be used when constructing
@@ -957,7 +957,7 @@ ExprResult Sema::BuildCoyieldExpr(SourceLocation Loc, Expr *E) {
 
   // If the expression is a temporary, materialize it as an lvalue so that we
   // can use it multiple times.
-  if (E->getValueKind() == VK_RValue)
+  if (E->getValueKind() == VK_PRValue)
     E = CreateMaterializeTemporaryExpr(E->getType(), E, true);
 
   // Build the await_ready, await_suspend, await_resume calls.

diff  --git a/clang/lib/Sema/SemaDecl.cpp b/clang/lib/Sema/SemaDecl.cpp
index 21a35002159ed..389c8505486ff 100644
--- a/clang/lib/Sema/SemaDecl.cpp
+++ b/clang/lib/Sema/SemaDecl.cpp
@@ -18407,7 +18407,7 @@ void Sema::ActOnEnumBody(SourceLocation EnumLoc, SourceRange BraceRange,
         !Context.hasSameType(NewTy, ECD->getInitExpr()->getType()))
       ECD->setInitExpr(ImplicitCastExpr::Create(
           Context, NewTy, CK_IntegralCast, ECD->getInitExpr(),
-          /*base paths*/ nullptr, VK_RValue, FPOptionsOverride()));
+          /*base paths*/ nullptr, VK_PRValue, FPOptionsOverride()));
     if (getLangOpts().CPlusPlus)
       // C++ [dcl.enum]p4: Following the closing brace of an
       // enum-specifier, each enumerator has the type of its

diff  --git a/clang/lib/Sema/SemaDeclAttr.cpp b/clang/lib/Sema/SemaDeclAttr.cpp
index 1dd5f2728b6ea..4d75c817f51bb 100644
--- a/clang/lib/Sema/SemaDeclAttr.cpp
+++ b/clang/lib/Sema/SemaDeclAttr.cpp
@@ -3769,11 +3769,11 @@ void Sema::AddAnnotationAttr(Decl *D, const AttributeCommonInfo &CI,
       E = ImplicitCastExpr::Create(Context,
                                    Context.getPointerType(E->getType()),
                                    clang::CK_FunctionToPointerDecay, E, nullptr,
-                                   VK_RValue, FPOptionsOverride());
+                                   VK_PRValue, FPOptionsOverride());
     if (E->isLValue())
       E = ImplicitCastExpr::Create(Context, E->getType().getNonReferenceType(),
                                    clang::CK_LValueToRValue, E, nullptr,
-                                   VK_RValue, FPOptionsOverride());
+                                   VK_PRValue, FPOptionsOverride());
 
     Expr::EvalResult Eval;
     Notes.clear();

diff  --git a/clang/lib/Sema/SemaDeclCXX.cpp b/clang/lib/Sema/SemaDeclCXX.cpp
index c1d7217e4548d..b0c0ff75f34f4 100644
--- a/clang/lib/Sema/SemaDeclCXX.cpp
+++ b/clang/lib/Sema/SemaDeclCXX.cpp
@@ -315,7 +315,7 @@ Sema::ActOnParamDefaultArgument(Decl *param, SourceLocation EqualLoc,
   auto Fail = [&] {
     Param->setInvalidDecl();
     Param->setDefaultArg(new (Context) OpaqueValueExpr(
-        EqualLoc, Param->getType().getNonReferenceType(), VK_RValue));
+        EqualLoc, Param->getType().getNonReferenceType(), VK_PRValue));
   };
 
   // Default arguments are only permitted in C++
@@ -380,10 +380,8 @@ void Sema::ActOnParamDefaultArgumentError(Decl *param,
   ParmVarDecl *Param = cast<ParmVarDecl>(param);
   Param->setInvalidDecl();
   UnparsedDefaultArgLocs.erase(Param);
-  Param->setDefaultArg(new(Context)
-                       OpaqueValueExpr(EqualLoc,
-                                       Param->getType().getNonReferenceType(),
-                                       VK_RValue));
+  Param->setDefaultArg(new (Context) OpaqueValueExpr(
+      EqualLoc, Param->getType().getNonReferenceType(), VK_PRValue));
 }
 
 /// CheckExtraCXXDefaultArguments - Check for any extra default
@@ -8327,7 +8325,7 @@ class DefaultedComparisonSynthesizer
     assert(!R->isUndeducedType() && "type should have been deduced already");
 
     // Don't bother forming a no-op cast in the common case.
-    if (E->isRValue() && S.Context.hasSameType(E->getType(), R))
+    if (E->isPRValue() && S.Context.hasSameType(E->getType(), R))
       return E;
     return S.BuildCXXNamedCast(Loc, tok::kw_static_cast,
                                S.Context.getTrivialTypeSourceInfo(R, Loc), E,
@@ -13823,11 +13821,11 @@ buildMemcpyForAssignmentOp(Sema &S, SourceLocation Loc, QualType T,
   Expr *From = FromB.build(S, Loc);
   From = UnaryOperator::Create(
       S.Context, From, UO_AddrOf, S.Context.getPointerType(From->getType()),
-      VK_RValue, OK_Ordinary, Loc, false, S.CurFPFeatureOverrides());
+      VK_PRValue, OK_Ordinary, Loc, false, S.CurFPFeatureOverrides());
   Expr *To = ToB.build(S, Loc);
   To = UnaryOperator::Create(
       S.Context, To, UO_AddrOf, S.Context.getPointerType(To->getType()),
-      VK_RValue, OK_Ordinary, Loc, false, S.CurFPFeatureOverrides());
+      VK_PRValue, OK_Ordinary, Loc, false, S.CurFPFeatureOverrides());
 
   const Type *E = T->getBaseElementTypeUnsafe();
   bool NeedsCollectableMemCpy =
@@ -13849,7 +13847,7 @@ buildMemcpyForAssignmentOp(Sema &S, SourceLocation Loc, QualType T,
     return StmtError();
 
   ExprResult MemCpyRef = S.BuildDeclRefExpr(MemCpy, S.Context.BuiltinFnTy,
-                                            VK_RValue, Loc, nullptr);
+                                            VK_PRValue, Loc, nullptr);
   assert(MemCpyRef.isUsable() && "Builtin reference cannot fail");
 
   Expr *CallArgs[] = {
@@ -14064,7 +14062,8 @@ buildSingleCopyAssignRecursively(Sema &S, SourceLocation Loc, QualType T,
   Expr *Comparison = BinaryOperator::Create(
       S.Context, IterationVarRefRVal.build(S, Loc),
       IntegerLiteral::Create(S.Context, Upper, SizeType, Loc), BO_NE,
-      S.Context.BoolTy, VK_RValue, OK_Ordinary, Loc, S.CurFPFeatureOverrides());
+      S.Context.BoolTy, VK_PRValue, OK_Ordinary, Loc,
+      S.CurFPFeatureOverrides());
 
   // Create the pre-increment of the iteration variable. We can determine
   // whether the increment will overflow based on the value of the array
@@ -15167,7 +15166,7 @@ void Sema::DefineImplicitLambdaToBlockPointerConversion(
   if (!BuildBlock.isInvalid() && !getLangOpts().ObjCAutoRefCount)
     BuildBlock = ImplicitCastExpr::Create(
         Context, BuildBlock.get()->getType(), CK_CopyAndAutoreleaseBlockObject,
-        BuildBlock.get(), nullptr, VK_RValue, FPOptionsOverride());
+        BuildBlock.get(), nullptr, VK_PRValue, FPOptionsOverride());
 
   if (BuildBlock.isInvalid()) {
     Diag(CurrentLocation, diag::note_lambda_to_block_conv);

diff  --git a/clang/lib/Sema/SemaExpr.cpp b/clang/lib/Sema/SemaExpr.cpp
index 422eddce86cd8..675041de640ca 100644
--- a/clang/lib/Sema/SemaExpr.cpp
+++ b/clang/lib/Sema/SemaExpr.cpp
@@ -707,7 +707,7 @@ ExprResult Sema::DefaultLvalueConversion(Expr *E) {
   // C++ [conv.lval]p3:
   //   If T is cv std::nullptr_t, the result is a null pointer constant.
   CastKind CK = T->isNullPtrType() ? CK_NullToPointer : CK_LValueToRValue;
-  Res = ImplicitCastExpr::Create(Context, T, CK, E, nullptr, VK_RValue,
+  Res = ImplicitCastExpr::Create(Context, T, CK, E, nullptr, VK_PRValue,
                                  CurFPFeatureOverrides());
 
   // C11 6.3.2.1p2:
@@ -716,7 +716,7 @@ ExprResult Sema::DefaultLvalueConversion(Expr *E) {
   if (const AtomicType *Atomic = T->getAs<AtomicType>()) {
     T = Atomic->getValueType().getUnqualifiedType();
     Res = ImplicitCastExpr::Create(Context, T, CK_AtomicToNonAtomic, Res.get(),
-                                   nullptr, VK_RValue, FPOptionsOverride());
+                                   nullptr, VK_PRValue, FPOptionsOverride());
   }
 
   return Res;
@@ -3249,7 +3249,7 @@ ExprResult Sema::BuildDeclarationNameExpr(
     QualType type = VD->getType();
     if (type.isNull())
       return ExprError();
-    ExprValueKind valueKind = VK_RValue;
+    ExprValueKind valueKind = VK_PRValue;
 
     // In 'T ...V;', the type of the declaration 'V' is 'T...', but the type of
     // a reference to 'V' is simply (unexpanded) 'T'. The type, like the value,
@@ -3275,7 +3275,7 @@ ExprResult Sema::BuildDeclarationNameExpr(
     case Decl::UnresolvedUsingValue:
     case Decl::OMPDeclareReduction:
     case Decl::OMPDeclareMapper:
-      valueKind = VK_RValue;
+      valueKind = VK_PRValue;
       break;
 
     // Fields and indirect fields that got here must be for
@@ -3316,7 +3316,7 @@ ExprResult Sema::BuildDeclarationNameExpr(
 
       // For non-references, we need to strip qualifiers just in case
       // the template parameter was declared as 'const int' or whatever.
-      valueKind = VK_RValue;
+      valueKind = VK_PRValue;
       type = type.getUnqualifiedType();
       break;
     }
@@ -3330,7 +3330,7 @@ ExprResult Sema::BuildDeclarationNameExpr(
       if (!getLangOpts().CPlusPlus &&
           !type.hasQualifiers() &&
           type->isVoidType()) {
-        valueKind = VK_RValue;
+        valueKind = VK_PRValue;
         break;
       }
       LLVM_FALLTHROUGH;
@@ -3372,7 +3372,7 @@ ExprResult Sema::BuildDeclarationNameExpr(
       if (unsigned BID = cast<FunctionDecl>(VD)->getBuiltinID()) {
         if (!Context.BuiltinInfo.isPredefinedLibFunction(BID)) {
           type = Context.BuiltinFnTy;
-          valueKind = VK_RValue;
+          valueKind = VK_PRValue;
           break;
         }
       }
@@ -3383,7 +3383,7 @@ ExprResult Sema::BuildDeclarationNameExpr(
       // result type, make the entire expression __unknown_anytype.
       if (fty->getReturnType() == Context.UnknownAnyTy) {
         type = Context.UnknownAnyTy;
-        valueKind = VK_RValue;
+        valueKind = VK_PRValue;
         break;
       }
 
@@ -3404,7 +3404,7 @@ ExprResult Sema::BuildDeclarationNameExpr(
                                               fty->getExtInfo());
 
       // Functions are r-values in C.
-      valueKind = VK_RValue;
+      valueKind = VK_PRValue;
       break;
     }
 
@@ -3427,7 +3427,7 @@ ExprResult Sema::BuildDeclarationNameExpr(
             = dyn_cast<FunctionProtoType>(VD->getType()))
         if (proto->getReturnType() == Context.UnknownAnyTy) {
           type = Context.UnknownAnyTy;
-          valueKind = VK_RValue;
+          valueKind = VK_PRValue;
           break;
         }
 
@@ -3441,7 +3441,7 @@ ExprResult Sema::BuildDeclarationNameExpr(
     case Decl::CXXConversion:
     case Decl::CXXDestructor:
     case Decl::CXXConstructor:
-      valueKind = VK_RValue;
+      valueKind = VK_PRValue;
       break;
     }
 
@@ -5541,14 +5541,14 @@ Sema::CreateBuiltinArraySubscriptExpr(Expr *Base, SourceLocation LLoc,
     BaseExpr = LHSExp;    // vectors: V[123]
     IndexExpr = RHSExp;
     // We apply C++ DR1213 to vector subscripting too.
-    if (getLangOpts().CPlusPlus11 && LHSExp->getValueKind() == VK_RValue) {
+    if (getLangOpts().CPlusPlus11 && LHSExp->getValueKind() == VK_PRValue) {
       ExprResult Materialized = TemporaryMaterializationConversion(LHSExp);
       if (Materialized.isInvalid())
         return ExprError();
       LHSExp = Materialized.get();
     }
     VK = LHSExp->getValueKind();
-    if (VK != VK_RValue)
+    if (VK != VK_PRValue)
       OK = OK_VectorComponent;
 
     ResultType = VTy->getElementType();
@@ -5615,14 +5615,15 @@ Sema::CreateBuiltinArraySubscriptExpr(Expr *Base, SourceLocation LLoc,
 
     // C forbids expressions of unqualified void type from being l-values.
     // See IsCForbiddenLValueType.
-    if (!ResultType.hasQualifiers()) VK = VK_RValue;
+    if (!ResultType.hasQualifiers())
+      VK = VK_PRValue;
   } else if (!ResultType->isDependentType() &&
              RequireCompleteSizedType(
                  LLoc, ResultType,
                  diag::err_subscript_incomplete_or_sizeless_type, BaseExpr))
     return ExprError();
 
-  assert(VK == VK_RValue || LangOpts.CPlusPlus ||
+  assert(VK == VK_PRValue || LangOpts.CPlusPlus ||
          !ResultType.isCForbiddenLValueType());
 
   if (LHSExp->IgnoreParenImpCasts()->getType()->isVariablyModifiedType() &&
@@ -6429,7 +6430,7 @@ ExprResult Sema::BuildCallExpr(Scope *Scope, Expr *Fn, SourceLocation LParenLoc,
       }
 
       return CallExpr::Create(Context, Fn, /*Args=*/{}, Context.VoidTy,
-                              VK_RValue, RParenLoc, CurFPFeatureOverrides());
+                              VK_PRValue, RParenLoc, CurFPFeatureOverrides());
     }
     if (Fn->getType() == Context.PseudoObjectTy) {
       ExprResult result = CheckPlaceholderExpr(Fn);
@@ -6441,9 +6442,10 @@ ExprResult Sema::BuildCallExpr(Scope *Scope, Expr *Fn, SourceLocation LParenLoc,
     // in which case we won't do any semantic analysis now.
     if (Fn->isTypeDependent() || Expr::hasAnyTypeDependentArguments(ArgExprs)) {
       if (ExecConfig) {
-        return CUDAKernelCallExpr::Create(
-            Context, Fn, cast<CallExpr>(ExecConfig), ArgExprs,
-            Context.DependentTy, VK_RValue, RParenLoc, CurFPFeatureOverrides());
+        return CUDAKernelCallExpr::Create(Context, Fn,
+                                          cast<CallExpr>(ExecConfig), ArgExprs,
+                                          Context.DependentTy, VK_PRValue,
+                                          RParenLoc, CurFPFeatureOverrides());
       } else {
 
         tryImplicitlyCaptureThisIfImplicitMemberFunctionAccessWithDependentArgs(
@@ -6451,7 +6453,7 @@ ExprResult Sema::BuildCallExpr(Scope *Scope, Expr *Fn, SourceLocation LParenLoc,
             Fn->getBeginLoc());
 
         return CallExpr::Create(Context, Fn, ArgExprs, Context.DependentTy,
-                                VK_RValue, RParenLoc, CurFPFeatureOverrides());
+                                VK_PRValue, RParenLoc, CurFPFeatureOverrides());
       }
     }
 
@@ -6480,7 +6482,7 @@ ExprResult Sema::BuildCallExpr(Scope *Scope, Expr *Fn, SourceLocation LParenLoc,
     if (!find.HasFormOfMemberPointer) {
       if (Expr::hasAnyTypeDependentArguments(ArgExprs))
         return CallExpr::Create(Context, Fn, ArgExprs, Context.DependentTy,
-                                VK_RValue, RParenLoc, CurFPFeatureOverrides());
+                                VK_PRValue, RParenLoc, CurFPFeatureOverrides());
       OverloadExpr *ovl = find.Expression;
       if (UnresolvedLookupExpr *ULE = dyn_cast<UnresolvedLookupExpr>(ovl))
         return BuildOverloadedCallExpr(
@@ -6571,7 +6573,7 @@ ExprResult Sema::ActOnAsTypeExpr(Expr *E, ParsedType ParsedDestTy,
 ExprResult Sema::BuildAsTypeExpr(Expr *E, QualType DestTy,
                                  SourceLocation BuiltinLoc,
                                  SourceLocation RParenLoc) {
-  ExprValueKind VK = VK_RValue;
+  ExprValueKind VK = VK_PRValue;
   ExprObjectKind OK = OK_Ordinary;
   QualType SrcTy = E->getType();
   if (!SrcTy->isDependentType() &&
@@ -6703,11 +6705,11 @@ ExprResult Sema::BuildResolvedCallExpr(Expr *Fn, NamedDecl *NDecl,
     assert(UsesADL == ADLCallKind::NotADL &&
            "CUDAKernelCallExpr should not use ADL");
     TheCall = CUDAKernelCallExpr::Create(Context, Fn, cast<CallExpr>(Config),
-                                         Args, ResultTy, VK_RValue, RParenLoc,
+                                         Args, ResultTy, VK_PRValue, RParenLoc,
                                          CurFPFeatureOverrides(), NumParams);
   } else {
     TheCall =
-        CallExpr::Create(Context, Fn, Args, ResultTy, VK_RValue, RParenLoc,
+        CallExpr::Create(Context, Fn, Args, ResultTy, VK_PRValue, RParenLoc,
                          CurFPFeatureOverrides(), NumParams, UsesADL);
   }
 
@@ -6734,11 +6736,11 @@ ExprResult Sema::BuildResolvedCallExpr(Expr *Fn, NamedDecl *NDecl,
     if (CorrectedTypos && Args.size() < NumParams) {
       if (Config)
         TheCall = CUDAKernelCallExpr::Create(
-            Context, Fn, cast<CallExpr>(Config), Args, ResultTy, VK_RValue,
+            Context, Fn, cast<CallExpr>(Config), Args, ResultTy, VK_PRValue,
             RParenLoc, CurFPFeatureOverrides(), NumParams);
       else
         TheCall =
-            CallExpr::Create(Context, Fn, Args, ResultTy, VK_RValue, RParenLoc,
+            CallExpr::Create(Context, Fn, Args, ResultTy, VK_PRValue, RParenLoc,
                              CurFPFeatureOverrides(), NumParams, UsesADL);
     }
     // We can now handle the nulled arguments for the default arguments.
@@ -6947,7 +6949,7 @@ Sema::BuildCompoundLiteralExpr(SourceLocation LParenLoc, TypeSourceInfo *TInfo,
   // obviously have a value kind derived from the kind of reference involved.
   ExprValueKind VK =
       (getLangOpts().CPlusPlus && !(isFileScope && literalType->isArrayType()))
-          ? VK_RValue
+          ? VK_PRValue
           : VK_LValue;
 
   if (isFileScope)
@@ -7098,14 +7100,14 @@ Sema::BuildInitList(SourceLocation LBraceLoc, MultiExprArg InitArgList,
 /// Do an explicit extend of the given block pointer if we're in ARC.
 void Sema::maybeExtendBlockObject(ExprResult &E) {
   assert(E.get()->getType()->isBlockPointerType());
-  assert(E.get()->isRValue());
+  assert(E.get()->isPRValue());
 
   // Only do this in an r-value context.
   if (!getLangOpts().ObjCAutoRefCount) return;
 
   E = ImplicitCastExpr::Create(
       Context, E.get()->getType(), CK_ARCExtendBlockObject, E.get(),
-      /*base path*/ nullptr, VK_RValue, FPOptionsOverride());
+      /*base path*/ nullptr, VK_PRValue, FPOptionsOverride());
   Cleanup.setExprNeedsCleanups(true);
 }
 
@@ -8261,7 +8263,7 @@ QualType Sema::CheckConditionalOperands(ExprResult &Cond, ExprResult &LHS,
   if (getLangOpts().CPlusPlus)
     return CXXCheckConditionalOperands(Cond, LHS, RHS, VK, OK, QuestionLoc);
 
-  VK = VK_RValue;
+  VK = VK_PRValue;
   OK = OK_Ordinary;
 
   if (Context.isDependenceAllowed() &&
@@ -8799,8 +8801,8 @@ ExprResult Sema::ActOnConditionalOp(SourceLocation QuestionLoc,
 
     // If the common expression is a class or array prvalue, materialize it
     // so that we can safely refer to it multiple times.
-    if (commonExpr->isRValue() && (commonExpr->getType()->isRecordType() ||
-                                   commonExpr->getType()->isArrayType())) {
+    if (commonExpr->isPRValue() && (commonExpr->getType()->isRecordType() ||
+                                    commonExpr->getType()->isArrayType())) {
       ExprResult MatExpr = TemporaryMaterializationConversion(commonExpr);
       if (MatExpr.isInvalid())
         return ExprError();
@@ -8816,7 +8818,7 @@ ExprResult Sema::ActOnConditionalOp(SourceLocation QuestionLoc,
   }
 
   QualType LHSTy = LHSExpr->getType(), RHSTy = RHSExpr->getType();
-  ExprValueKind VK = VK_RValue;
+  ExprValueKind VK = VK_PRValue;
   ExprObjectKind OK = OK_Ordinary;
   ExprResult Cond = CondExpr, LHS = LHSExpr, RHS = RHSExpr;
   QualType result = CheckConditionalOperands(Cond, LHS, RHS,
@@ -9100,7 +9102,7 @@ Sema::CheckAssignmentConstraints(SourceLocation Loc,
   // cast operations are required, so if CheckAssignmentConstraints
   // adds casts to this they'll be wasted, but fortunately that doesn't
   // usually happen on valid code.
-  OpaqueValueExpr RHSExpr(Loc, RHSType, VK_RValue);
+  OpaqueValueExpr RHSExpr(Loc, RHSType, VK_PRValue);
   ExprResult RHSPtr = &RHSExpr;
   CastKind K;
 
@@ -9469,7 +9471,7 @@ static void ConstructTransparentUnion(Sema &S, ASTContext &C,
   // union type from this initializer list.
   TypeSourceInfo *unionTInfo = C.getTrivialTypeSourceInfo(UnionType);
   EResult = new (C) CompoundLiteralExpr(SourceLocation(), unionTInfo, UnionType,
-                                        VK_RValue, Initializer, false);
+                                        VK_PRValue, Initializer, false);
 }
 
 Sema::AssignConvertType
@@ -9608,7 +9610,7 @@ Sema::CheckSingleAssignmentConstraints(QualType LHSType, ExprResult &CallerRHS,
       CheckPointerConversion(RHS.get(), LHSType, Kind, Path,
                              /*IgnoreBaseAccess=*/false, Diagnose);
       if (ConvertRHS)
-        RHS = ImpCastExprToType(RHS.get(), LHSType, Kind, VK_RValue, &Path);
+        RHS = ImpCastExprToType(RHS.get(), LHSType, Kind, VK_PRValue, &Path);
     }
     return Compatible;
   }
@@ -13354,7 +13356,7 @@ static QualType CheckIncrementDecrementOperand(Sema &S, Expr *Op,
     OK = Op->getObjectKind();
     return ResType;
   } else {
-    VK = VK_RValue;
+    VK = VK_PRValue;
     return ResType.getUnqualifiedType();
   }
 }
@@ -13741,7 +13743,7 @@ static QualType CheckIndirectionOperand(Sema &S, Expr *Op, ExprValueKind &VK,
 
   // ...except that certain expressions are never l-values in C.
   if (!S.getLangOpts().CPlusPlus && Result.isCForbiddenLValueType())
-    VK = VK_RValue;
+    VK = VK_PRValue;
 
   return Result;
 }
@@ -14010,7 +14012,7 @@ ExprResult Sema::CreateBuiltinBinOp(SourceLocation OpLoc,
   // The following two variables are used for compound assignment operators
   QualType CompLHSTy;    // Type of LHS after promotions for computation
   QualType CompResultTy; // Type of computation result
-  ExprValueKind VK = VK_RValue;
+  ExprValueKind VK = VK_PRValue;
   ExprObjectKind OK = OK_Ordinary;
   bool ConvertHalfVec = false;
 
@@ -14629,7 +14631,7 @@ ExprResult Sema::BuildBinOp(Scope *S, SourceLocation OpLoc,
       // assignment, but is not an lvalue.
       return CompoundAssignOperator::Create(
           Context, LHSExpr, RHSExpr, Opc,
-          LHSExpr->getType().getUnqualifiedType(), VK_RValue, OK_Ordinary,
+          LHSExpr->getType().getUnqualifiedType(), VK_PRValue, OK_Ordinary,
           OpLoc, CurFPFeatureOverrides());
     QualType ResultType;
     switch (Opc) {
@@ -14655,7 +14657,7 @@ ExprResult Sema::BuildBinOp(Scope *S, SourceLocation OpLoc,
       break;
     }
     return BinaryOperator::Create(Context, LHSExpr, RHSExpr, Opc, ResultType,
-                                  VK_RValue, OK_Ordinary, OpLoc,
+                                  VK_PRValue, OK_Ordinary, OpLoc,
                                   CurFPFeatureOverrides());
   }
 
@@ -14677,7 +14679,7 @@ ExprResult Sema::CreateBuiltinUnaryOp(SourceLocation OpLoc,
                                       UnaryOperatorKind Opc,
                                       Expr *InputExpr) {
   ExprResult Input = InputExpr;
-  ExprValueKind VK = VK_RValue;
+  ExprValueKind VK = VK_PRValue;
   ExprObjectKind OK = OK_Ordinary;
   QualType resultType;
   bool CanOverflow = false;
@@ -14850,7 +14852,7 @@ ExprResult Sema::CreateBuiltinUnaryOp(SourceLocation OpLoc,
     // complex l-values to ordinary l-values and all other values to r-values.
     if (Input.isInvalid()) return ExprError();
     if (Opc == UO_Real || Input.get()->getType()->isAnyComplexType()) {
-      if (Input.get()->getValueKind() != VK_RValue &&
+      if (Input.get()->getValueKind() != VK_PRValue &&
           Input.get()->getObjectKind() == OK_Ordinary)
         VK = Input.get()->getValueKind();
     } else if (!getLangOpts().CPlusPlus) {
@@ -15269,7 +15271,7 @@ ExprResult Sema::ActOnChooseExpr(SourceLocation BuiltinLoc,
                                  SourceLocation RPLoc) {
   assert((CondExpr && LHSExpr && RHSExpr) && "Missing type argument(s)");
 
-  ExprValueKind VK = VK_RValue;
+  ExprValueKind VK = VK_PRValue;
   ExprObjectKind OK = OK_Ordinary;
   QualType resType;
   bool CondIsTrue = false;
@@ -19047,7 +19049,7 @@ namespace {
       Expr *SubExpr = SubResult.get();
       E->setSubExpr(SubExpr);
       E->setType(S.Context.getPointerType(SubExpr->getType()));
-      assert(E->getValueKind() == VK_RValue);
+      assert(E->getValueKind() == VK_PRValue);
       assert(E->getObjectKind() == OK_Ordinary);
       return E;
     }
@@ -19057,7 +19059,7 @@ namespace {
 
       E->setType(VD->getType());
 
-      assert(E->getValueKind() == VK_RValue);
+      assert(E->getValueKind() == VK_PRValue);
       if (S.getLangOpts().CPlusPlus &&
           !(isa<CXXMethodDecl>(VD) &&
             cast<CXXMethodDecl>(VD)->isInstance()))
@@ -19148,7 +19150,7 @@ namespace {
         return ExprError();
       }
 
-      assert(E->getValueKind() == VK_RValue);
+      assert(E->getValueKind() == VK_PRValue);
       assert(E->getObjectKind() == OK_Ordinary);
       E->setType(DestType);
 
@@ -19308,7 +19310,7 @@ ExprResult RebuildUnknownAnyExpr::VisitObjCMessageExpr(ObjCMessageExpr *E) {
 ExprResult RebuildUnknownAnyExpr::VisitImplicitCastExpr(ImplicitCastExpr *E) {
   // The only case we should ever see here is a function-to-pointer decay.
   if (E->getCastKind() == CK_FunctionToPointerDecay) {
-    assert(E->getValueKind() == VK_RValue);
+    assert(E->getValueKind() == VK_PRValue);
     assert(E->getObjectKind() == OK_Ordinary);
 
     E->setType(DestType);
@@ -19322,7 +19324,7 @@ ExprResult RebuildUnknownAnyExpr::VisitImplicitCastExpr(ImplicitCastExpr *E) {
     E->setSubExpr(Result.get());
     return E;
   } else if (E->getCastKind() == CK_LValueToRValue) {
-    assert(E->getValueKind() == VK_RValue);
+    assert(E->getValueKind() == VK_PRValue);
     assert(E->getObjectKind() == OK_Ordinary);
 
     assert(isa<BlockPointerType>(E->getType()));
@@ -19354,8 +19356,8 @@ ExprResult RebuildUnknownAnyExpr::resolveDecl(Expr *E, ValueDecl *VD) {
       DestType = Ptr->getPointeeType();
       ExprResult Result = resolveDecl(E, VD);
       if (Result.isInvalid()) return ExprError();
-      return S.ImpCastExprToType(Result.get(), Type,
-                                 CK_FunctionToPointerDecay, VK_RValue);
+      return S.ImpCastExprToType(Result.get(), Type, CK_FunctionToPointerDecay,
+                                 VK_PRValue);
     }
 
     if (!Type->isFunctionType()) {
@@ -19397,13 +19399,13 @@ ExprResult RebuildUnknownAnyExpr::resolveDecl(Expr *E, ValueDecl *VD) {
 
     if (CXXMethodDecl *MD = dyn_cast<CXXMethodDecl>(FD))
       if (MD->isInstance()) {
-        ValueKind = VK_RValue;
+        ValueKind = VK_PRValue;
         Type = S.Context.BoundMemberTy;
       }
 
     // Function references aren't l-values in C.
     if (!S.getLangOpts().CPlusPlus)
-      ValueKind = VK_RValue;
+      ValueKind = VK_PRValue;
 
   //  - variables
   } else if (isa<VarDecl>(VD)) {
@@ -19602,7 +19604,7 @@ ExprResult Sema::CheckPlaceholderExpr(Expr *E) {
                               CK_BuiltinFnToFnPtr)
                 .get();
         return CallExpr::Create(Context, E, /*Args=*/{}, Context.IntTy,
-                                VK_RValue, SourceLocation(),
+                                VK_PRValue, SourceLocation(),
                                 FPOptionsOverride());
       }
     }

diff  --git a/clang/lib/Sema/SemaExprCXX.cpp b/clang/lib/Sema/SemaExprCXX.cpp
index 3bd1d29ea21b8..2f02cb41212ca 100644
--- a/clang/lib/Sema/SemaExprCXX.cpp
+++ b/clang/lib/Sema/SemaExprCXX.cpp
@@ -2238,7 +2238,7 @@ Sema::BuildCXXNew(SourceRange Range, bool UseGlobal,
         SizeTy, SourceLocation());
     // Otherwise, if we failed to constant-fold the allocation size, we'll
     // just give up and pass-in something opaque, that isn't a null pointer.
-    OpaqueValueExpr OpaqueAllocationSize(SourceLocation(), SizeTy, VK_RValue,
+    OpaqueValueExpr OpaqueAllocationSize(SourceLocation(), SizeTy, VK_PRValue,
                                          OK_Ordinary, /*SourceExpr=*/nullptr);
 
     // Let's synthesize the alignment argument in case we will need it.
@@ -2254,7 +2254,7 @@ Sema::BuildCXXNew(SourceRange Range, bool UseGlobal,
         SizeTy, SourceLocation());
     ImplicitCastExpr DesiredAlignment(ImplicitCastExpr::OnStack, AlignValT,
                                       CK_IntegralCast, &AlignmentLiteral,
-                                      VK_RValue, FPOptionsOverride());
+                                      VK_PRValue, FPOptionsOverride());
 
     // Adjust placement args by prepending conjured size and alignment exprs.
     llvm::SmallVector<Expr *, 8> CallArgs;
@@ -4188,7 +4188,7 @@ Sema::PerformImplicitConversion(Expr *From, QualType ToType,
     if (const AtomicType *FromAtomic = FromType->getAs<AtomicType>()) {
       FromType = FromAtomic->getValueType().getUnqualifiedType();
       From = ImplicitCastExpr::Create(Context, FromType, CK_AtomicToNonAtomic,
-                                      From, /*BasePath=*/nullptr, VK_RValue,
+                                      From, /*BasePath=*/nullptr, VK_PRValue,
                                       FPOptionsOverride());
     }
     break;
@@ -4206,14 +4206,16 @@ Sema::PerformImplicitConversion(Expr *From, QualType ToType,
 
   case ICK_Array_To_Pointer:
     FromType = Context.getArrayDecayedType(FromType);
-    From = ImpCastExprToType(From, FromType, CK_ArrayToPointerDecay,
-                             VK_RValue, /*BasePath=*/nullptr, CCK).get();
+    From = ImpCastExprToType(From, FromType, CK_ArrayToPointerDecay, VK_PRValue,
+                             /*BasePath=*/nullptr, CCK)
+               .get();
     break;
 
   case ICK_Function_To_Pointer:
     FromType = Context.getPointerType(FromType);
     From = ImpCastExprToType(From, FromType, CK_FunctionToPointerDecay,
-                             VK_RValue, /*BasePath=*/nullptr, CCK).get();
+                             VK_PRValue, /*BasePath=*/nullptr, CCK)
+               .get();
     break;
 
   default:
@@ -4255,18 +4257,21 @@ Sema::PerformImplicitConversion(Expr *From, QualType ToType,
       assert(FromType->castAs<EnumType>()->getDecl()->isFixed() &&
              SCS.Second == ICK_Integral_Promotion &&
              "only enums with fixed underlying type can promote to bool");
-      From = ImpCastExprToType(From, ToType, CK_IntegralToBoolean,
-                               VK_RValue, /*BasePath=*/nullptr, CCK).get();
+      From = ImpCastExprToType(From, ToType, CK_IntegralToBoolean, VK_PRValue,
+                               /*BasePath=*/nullptr, CCK)
+                 .get();
     } else {
-      From = ImpCastExprToType(From, ToType, CK_IntegralCast,
-                               VK_RValue, /*BasePath=*/nullptr, CCK).get();
+      From = ImpCastExprToType(From, ToType, CK_IntegralCast, VK_PRValue,
+                               /*BasePath=*/nullptr, CCK)
+                 .get();
     }
     break;
 
   case ICK_Floating_Promotion:
   case ICK_Floating_Conversion:
-    From = ImpCastExprToType(From, ToType, CK_FloatingCast,
-                             VK_RValue, /*BasePath=*/nullptr, CCK).get();
+    From = ImpCastExprToType(From, ToType, CK_FloatingCast, VK_PRValue,
+                             /*BasePath=*/nullptr, CCK)
+               .get();
     break;
 
   case ICK_Complex_Promotion:
@@ -4284,18 +4289,21 @@ Sema::PerformImplicitConversion(Expr *From, QualType ToType,
     } else {
       CK = CK_IntegralComplexCast;
     }
-    From = ImpCastExprToType(From, ToType, CK,
-                             VK_RValue, /*BasePath=*/nullptr, CCK).get();
+    From = ImpCastExprToType(From, ToType, CK, VK_PRValue, /*BasePath=*/nullptr,
+                             CCK)
+               .get();
     break;
   }
 
   case ICK_Floating_Integral:
     if (ToType->isRealFloatingType())
-      From = ImpCastExprToType(From, ToType, CK_IntegralToFloating,
-                               VK_RValue, /*BasePath=*/nullptr, CCK).get();
+      From = ImpCastExprToType(From, ToType, CK_IntegralToFloating, VK_PRValue,
+                               /*BasePath=*/nullptr, CCK)
+                 .get();
     else
-      From = ImpCastExprToType(From, ToType, CK_FloatingToIntegral,
-                               VK_RValue, /*BasePath=*/nullptr, CCK).get();
+      From = ImpCastExprToType(From, ToType, CK_FloatingToIntegral, VK_PRValue,
+                               /*BasePath=*/nullptr, CCK)
+                 .get();
     break;
 
   case ICK_Compatible_Conversion:
@@ -4363,8 +4371,8 @@ Sema::PerformImplicitConversion(Expr *From, QualType ToType,
     }
     if (getLangOpts().allowsNonTrivialObjCLifetimeQualifiers())
       CheckObjCConversion(SourceRange(), NewToType, From, CCK);
-    From = ImpCastExprToType(From, NewToType, Kind, VK_RValue, &BasePath, CCK)
-             .get();
+    From = ImpCastExprToType(From, NewToType, Kind, VK_PRValue, &BasePath, CCK)
+               .get();
     break;
   }
 
@@ -4383,8 +4391,8 @@ Sema::PerformImplicitConversion(Expr *From, QualType ToType,
       (void)isCompleteType(From->getExprLoc(), ToType);
     }
 
-    From = ImpCastExprToType(From, ToType, Kind, VK_RValue, &BasePath, CCK)
-             .get();
+    From =
+        ImpCastExprToType(From, ToType, Kind, VK_PRValue, &BasePath, CCK).get();
     break;
   }
 
@@ -4396,8 +4404,9 @@ Sema::PerformImplicitConversion(Expr *From, QualType ToType,
     }
 
     From = ImpCastExprToType(From, Context.BoolTy,
-                             ScalarTypeToBooleanCastKind(FromType),
-                             VK_RValue, /*BasePath=*/nullptr, CCK).get();
+                             ScalarTypeToBooleanCastKind(FromType), VK_PRValue,
+                             /*BasePath=*/nullptr, CCK)
+               .get();
     break;
 
   case ICK_Derived_To_Base: {
@@ -4414,12 +4423,13 @@ Sema::PerformImplicitConversion(Expr *From, QualType ToType,
   }
 
   case ICK_Vector_Conversion:
-    From = ImpCastExprToType(From, ToType, CK_BitCast,
-                             VK_RValue, /*BasePath=*/nullptr, CCK).get();
+    From = ImpCastExprToType(From, ToType, CK_BitCast, VK_PRValue,
+                             /*BasePath=*/nullptr, CCK)
+               .get();
     break;
 
   case ICK_SVE_Vector_Conversion:
-    From = ImpCastExprToType(From, ToType, CK_BitCast, VK_RValue,
+    From = ImpCastExprToType(From, ToType, CK_BitCast, VK_PRValue,
                              /*BasePath=*/nullptr, CCK)
                .get();
     break;
@@ -4427,8 +4437,9 @@ Sema::PerformImplicitConversion(Expr *From, QualType ToType,
   case ICK_Vector_Splat: {
     // Vector splat from any arithmetic type to a vector.
     Expr *Elem = prepareVectorSplat(ToType, From).get();
-    From = ImpCastExprToType(Elem, ToType, CK_VectorSplat, VK_RValue,
-                             /*BasePath=*/nullptr, CCK).get();
+    From = ImpCastExprToType(Elem, ToType, CK_VectorSplat, VK_PRValue,
+                             /*BasePath=*/nullptr, CCK)
+               .get();
     break;
   }
 
@@ -4462,22 +4473,27 @@ Sema::PerformImplicitConversion(Expr *From, QualType ToType,
 
       // _Complex x -> x
       From = ImpCastExprToType(From, ElType,
-                   isFloatingComplex ? CK_FloatingComplexToReal
-                                     : CK_IntegralComplexToReal,
-                               VK_RValue, /*BasePath=*/nullptr, CCK).get();
+                               isFloatingComplex ? CK_FloatingComplexToReal
+                                                 : CK_IntegralComplexToReal,
+                               VK_PRValue, /*BasePath=*/nullptr, CCK)
+                 .get();
 
       // x -> y
       if (Context.hasSameUnqualifiedType(ElType, ToType)) {
         // do nothing
       } else if (ToType->isRealFloatingType()) {
         From = ImpCastExprToType(From, ToType,
-                   isFloatingComplex ? CK_FloatingCast : CK_IntegralToFloating,
-                                 VK_RValue, /*BasePath=*/nullptr, CCK).get();
+                                 isFloatingComplex ? CK_FloatingCast
+                                                   : CK_IntegralToFloating,
+                                 VK_PRValue, /*BasePath=*/nullptr, CCK)
+                   .get();
       } else {
         assert(ToType->isIntegerType());
         From = ImpCastExprToType(From, ToType,
-                   isFloatingComplex ? CK_FloatingToIntegral : CK_IntegralCast,
-                                 VK_RValue, /*BasePath=*/nullptr, CCK).get();
+                                 isFloatingComplex ? CK_FloatingToIntegral
+                                                   : CK_IntegralCast,
+                                 VK_PRValue, /*BasePath=*/nullptr, CCK)
+                   .get();
       }
     }
     break;
@@ -4492,7 +4508,8 @@ Sema::PerformImplicitConversion(Expr *From, QualType ToType,
     CastKind Kind =
         AddrSpaceL != AddrSpaceR ? CK_AddressSpaceConversion : CK_BitCast;
     From = ImpCastExprToType(From, ToType.getUnqualifiedType(), Kind,
-                             VK_RValue, /*BasePath=*/nullptr, CCK).get();
+                             VK_PRValue, /*BasePath=*/nullptr, CCK)
+               .get();
     break;
   }
 
@@ -4538,8 +4555,9 @@ Sema::PerformImplicitConversion(Expr *From, QualType ToType,
     if (CheckExceptionSpecCompatibility(From, ToType))
       return ExprError();
 
-    From = ImpCastExprToType(From, ToType, CK_NoOp,
-                             VK_RValue, /*BasePath=*/nullptr, CCK).get();
+    From = ImpCastExprToType(From, ToType, CK_NoOp, VK_PRValue,
+                             /*BasePath=*/nullptr, CCK)
+               .get();
     break;
 
   case ICK_Qualification: {
@@ -4582,13 +4600,14 @@ Sema::PerformImplicitConversion(Expr *From, QualType ToType,
     assert(Context.hasSameType(
         ToAtomicType->castAs<AtomicType>()->getValueType(), From->getType()));
     From = ImpCastExprToType(From, ToAtomicType, CK_NonAtomicToAtomic,
-                             VK_RValue, nullptr, CCK).get();
+                             VK_PRValue, nullptr, CCK)
+               .get();
   }
 
   // Materialize a temporary if we're implicitly converting to a reference
   // type. This is not required by the C++ rules but is necessary to maintain
   // AST invariants.
-  if (ToType->isReferenceType() && From->isRValue()) {
+  if (ToType->isReferenceType() && From->isPRValue()) {
     ExprResult Res = TemporaryMaterializationConversion(From);
     if (Res.isInvalid())
       return ExprError();
@@ -5641,7 +5660,8 @@ ExprResult Sema::ActOnExpressionTrait(ExpressionTrait ET,
 static bool EvaluateExpressionTrait(ExpressionTrait ET, Expr *E) {
   switch (ET) {
   case ET_IsLValueExpr: return E->isLValue();
-  case ET_IsRValueExpr: return E->isRValue();
+  case ET_IsRValueExpr:
+    return E->isPRValue();
   }
   llvm_unreachable("Expression trait not covered by switch");
 }
@@ -5676,7 +5696,7 @@ QualType Sema::CheckPointerToMemberOperands(ExprResult &LHS, ExprResult &RHS,
   // temporary materialization conversion otherwise.
   if (isIndirect)
     LHS = DefaultLvalueConversion(LHS.get());
-  else if (LHS.get()->isRValue())
+  else if (LHS.get()->isPRValue())
     LHS = TemporaryMaterializationConversion(LHS.get());
   if (LHS.isInvalid())
     return QualType();
@@ -5746,7 +5766,7 @@ QualType Sema::CheckPointerToMemberOperands(ExprResult &LHS, ExprResult &RHS,
     QualType UseType = Context.getQualifiedType(Class, LHSType.getQualifiers());
     if (isIndirect)
       UseType = Context.getPointerType(UseType);
-    ExprValueKind VK = isIndirect ? VK_RValue : LHS.get()->getValueKind();
+    ExprValueKind VK = isIndirect ? VK_PRValue : LHS.get()->getValueKind();
     LHS = ImpCastExprToType(LHS.get(), UseType, CK_DerivedToBase, VK,
                             &BasePath);
   }
@@ -5808,7 +5828,7 @@ QualType Sema::CheckPointerToMemberOperands(ExprResult &LHS, ExprResult &RHS,
   //   result of an ->* expression is an lvalue if its second operand
   //   is a pointer to data member and a prvalue otherwise.
   if (Result->isFunctionType()) {
-    VK = VK_RValue;
+    VK = VK_PRValue;
     return Context.BoundMemberTy;
   } else if (isIndirect) {
     VK = VK_LValue;
@@ -6121,7 +6141,7 @@ QualType Sema::CXXCheckConditionalOperands(ExprResult &Cond, ExprResult &LHS,
   // pointers.
 
   // Assume r-value.
-  VK = VK_RValue;
+  VK = VK_PRValue;
   OK = OK_Ordinary;
   bool IsVectorConditional =
       isValidVectorForConditionalCondition(Context, Cond.get()->getType());
@@ -6246,8 +6266,7 @@ QualType Sema::CXXCheckConditionalOperands(ExprResult &Cond, ExprResult &LHS,
   //   that instead?
   ExprValueKind LVK = LHS.get()->getValueKind();
   ExprValueKind RVK = RHS.get()->getValueKind();
-  if (!Context.hasSameType(LTy, RTy) &&
-      LVK == RVK && LVK != VK_RValue) {
+  if (!Context.hasSameType(LTy, RTy) && LVK == RVK && LVK != VK_PRValue) {
     // DerivedToBase was already handled by the class-specific case above.
     // FIXME: Should we allow ObjC conversions here?
     const ReferenceConversions AllowedConversions =
@@ -6282,7 +6301,7 @@ QualType Sema::CXXCheckConditionalOperands(ExprResult &Cond, ExprResult &LHS,
   // We only extend this to bitfields, not to the crazy other kinds of
   // l-values.
   bool Same = Context.hasSameType(LTy, RTy);
-  if (Same && LVK == RVK && LVK != VK_RValue &&
+  if (Same && LVK == RVK && LVK != VK_PRValue &&
       LHS.get()->isOrdinaryOrBitFieldObject() &&
       RHS.get()->isOrdinaryOrBitFieldObject()) {
     VK = LHS.get()->getValueKind();
@@ -6853,7 +6872,7 @@ ExprResult Sema::MaybeBindToTemporary(Expr *E) {
   assert(!isa<CXXBindTemporaryExpr>(E) && "Double-bound temporary?");
 
   // If the result is a glvalue, we shouldn't bind it.
-  if (!E->isRValue())
+  if (!E->isPRValue())
     return E;
 
   // In ARC, calls that return a retainable type can return retained,
@@ -6945,7 +6964,7 @@ ExprResult Sema::MaybeBindToTemporary(Expr *E) {
     CastKind ck = (ReturnsRetained ? CK_ARCConsumeObject
                                    : CK_ARCReclaimReturnedObject);
     return ImplicitCastExpr::Create(Context, E->getType(), ck, E, nullptr,
-                                    VK_RValue, FPOptionsOverride());
+                                    VK_PRValue, FPOptionsOverride());
   }
 
   if (E->getType().isDestructedType() == QualType::DK_nontrivial_c_struct)
@@ -7738,7 +7757,7 @@ ExprResult Sema::BuildCXXMemberCallExpr(Expr *E, NamedDecl *FoundDecl,
                       NestedNameSpecifierLoc(), SourceLocation(), Method,
                       DeclAccessPair::make(FoundDecl, FoundDecl->getAccess()),
                       HadMultipleCandidates, DeclarationNameInfo(),
-                      Context.BoundMemberTy, VK_RValue, OK_Ordinary);
+                      Context.BoundMemberTy, VK_PRValue, OK_Ordinary);
 
   QualType ResultType = Method->getReturnType();
   ExprValueKind VK = Expr::getValueKindForType(ResultType);
@@ -7825,7 +7844,7 @@ ExprResult Sema::IgnoredValueConversions(Expr *E) {
   //   [Except in specific positions,] an lvalue that does not have
   //   array type is converted to the value stored in the
   //   designated object (and is no longer an lvalue).
-  if (E->isRValue()) {
+  if (E->isPRValue()) {
     // In C, function designators (i.e. expressions of function type)
     // are r-values, but we still want to do function-to-pointer decay
     // on them.  This is both technically correct and convenient for

diff  --git a/clang/lib/Sema/SemaExprMember.cpp b/clang/lib/Sema/SemaExprMember.cpp
index d8b66639db8cd..af2aa49c01039 100644
--- a/clang/lib/Sema/SemaExprMember.cpp
+++ b/clang/lib/Sema/SemaExprMember.cpp
@@ -408,7 +408,8 @@ CheckExtVectorComponent(Sema &S, QualType baseType, ExprValueKind &VK,
   if (CompSize == 1)
     return vecType->getElementType();
 
-  if (HasRepeated) VK = VK_RValue;
+  if (HasRepeated)
+    VK = VK_PRValue;
 
   QualType VT = S.Context.getExtVectorType(vecType->getElementType(), CompSize);
   // Now look up the TypeDefDecl from the vector type. Without this,
@@ -909,7 +910,8 @@ MemberExpr *Sema::BuildMemberExpr(
     bool HadMultipleCandidates, const DeclarationNameInfo &MemberNameInfo,
     QualType Ty, ExprValueKind VK, ExprObjectKind OK,
     const TemplateArgumentListInfo *TemplateArgs) {
-  assert((!IsArrow || Base->isRValue()) && "-> base must be a pointer rvalue");
+  assert((!IsArrow || Base->isPRValue()) &&
+         "-> base must be a pointer prvalue");
   MemberExpr *E =
       MemberExpr::Create(Context, Base, IsArrow, OpLoc, NNS, TemplateKWLoc,
                          Member, FoundDecl, MemberNameInfo, TemplateArgs, Ty,
@@ -963,14 +965,13 @@ Sema::BuildMemberReferenceExpr(Expr *BaseExpr, QualType BaseExprType,
 
   // C++1z [expr.ref]p2:
   //   For the first option (dot) the first expression shall be a glvalue [...]
-  if (!IsArrow && BaseExpr && BaseExpr->isRValue()) {
+  if (!IsArrow && BaseExpr && BaseExpr->isPRValue()) {
     ExprResult Converted = TemporaryMaterializationConversion(BaseExpr);
     if (Converted.isInvalid())
       return ExprError();
     BaseExpr = Converted.get();
   }
 
-
   const DeclarationNameInfo &MemberNameInfo = R.getLookupNameInfo();
   DeclarationName MemberName = MemberNameInfo.getName();
   SourceLocation MemberLoc = MemberNameInfo.getLoc();
@@ -1118,7 +1119,7 @@ Sema::BuildMemberReferenceExpr(Expr *BaseExpr, QualType BaseExprType,
     ExprValueKind valueKind;
     QualType type;
     if (MemberFn->isInstance()) {
-      valueKind = VK_RValue;
+      valueKind = VK_PRValue;
       type = Context.BoundMemberTy;
     } else {
       valueKind = VK_LValue;
@@ -1134,7 +1135,7 @@ Sema::BuildMemberReferenceExpr(Expr *BaseExpr, QualType BaseExprType,
   if (EnumConstantDecl *Enum = dyn_cast<EnumConstantDecl>(MemberDecl)) {
     return BuildMemberExpr(BaseExpr, IsArrow, OpLoc, &SS, TemplateKWLoc, Enum,
                            FoundDecl, /*HadMultipleCandidates=*/false,
-                           MemberNameInfo, Enum->getType(), VK_RValue,
+                           MemberNameInfo, Enum->getType(), VK_PRValue,
                            OK_Ordinary);
   }
 
@@ -1778,9 +1779,9 @@ Sema::BuildFieldReferenceExpr(Expr *BaseExpr, bool IsArrow,
     if (BaseExpr->getObjectKind() == OK_Ordinary)
       VK = BaseExpr->getValueKind();
     else
-      VK = VK_RValue;
+      VK = VK_PRValue;
   }
-  if (VK != VK_RValue && Field->isBitField())
+  if (VK != VK_PRValue && Field->isBitField())
     OK = OK_BitField;
 
   // Figure out the type of the member; see C99 6.5.2.3p3, C++ [expr.ref]

diff  --git a/clang/lib/Sema/SemaExprObjC.cpp b/clang/lib/Sema/SemaExprObjC.cpp
index 68a38acec787d..8a9c933fc93f8 100644
--- a/clang/lib/Sema/SemaExprObjC.cpp
+++ b/clang/lib/Sema/SemaExprObjC.cpp
@@ -1786,7 +1786,7 @@ bool Sema::CheckMessageArgumentTypes(
     } else {
       ReturnType = Context.getObjCIdType();
     }
-    VK = VK_RValue;
+    VK = VK_PRValue;
     return false;
   }
 
@@ -1873,7 +1873,7 @@ bool Sema::CheckMessageArgumentTypes(
       // If we are type-erasing a block to a block-compatible
       // Objective-C pointer type, we may need to extend the lifetime
       // of the block object.
-      if (typeArgs && Args[i]->isRValue() && paramType->isBlockPointerType() &&
+      if (typeArgs && Args[i]->isPRValue() && paramType->isBlockPointerType() &&
           Args[i]->getType()->isBlockPointerType() &&
           origParamType->isObjCObjectPointerType()) {
         ExprResult arg = Args[i];
@@ -2634,7 +2634,7 @@ ExprResult Sema::BuildClassMessage(TypeSourceInfo *ReceiverTypeInfo,
     Expr **Args = ArgsIn.data();
     assert(SuperLoc.isInvalid() && "Message to super with dependent type");
     return ObjCMessageExpr::Create(
-        Context, ReceiverType, VK_RValue, LBracLoc, ReceiverTypeInfo, Sel,
+        Context, ReceiverType, VK_PRValue, LBracLoc, ReceiverTypeInfo, Sel,
         SelectorLocs, /*Method=*/nullptr, makeArrayRef(Args, NumArgs), RBracLoc,
         isImplicit);
   }
@@ -2682,7 +2682,7 @@ ExprResult Sema::BuildClassMessage(TypeSourceInfo *ReceiverTypeInfo,
 
   // Check the argument types and determine the result type.
   QualType ReturnType;
-  ExprValueKind VK = VK_RValue;
+  ExprValueKind VK = VK_PRValue;
 
   unsigned NumArgs = ArgsIn.size();
   Expr **Args = ArgsIn.data();
@@ -2887,7 +2887,7 @@ ExprResult Sema::BuildInstanceMessage(Expr *Receiver,
       Expr **Args = ArgsIn.data();
       assert(SuperLoc.isInvalid() && "Message to super with dependent type");
       return ObjCMessageExpr::Create(
-          Context, Context.DependentTy, VK_RValue, LBracLoc, Receiver, Sel,
+          Context, Context.DependentTy, VK_PRValue, LBracLoc, Receiver, Sel,
           SelectorLocs, /*Method=*/nullptr, makeArrayRef(Args, NumArgs),
           RBracLoc, isImplicit);
     }
@@ -3226,7 +3226,7 @@ ExprResult Sema::BuildInstanceMessage(Expr *Receiver,
   unsigned NumArgs = ArgsIn.size();
   Expr **Args = ArgsIn.data();
   QualType ReturnType;
-  ExprValueKind VK = VK_RValue;
+  ExprValueKind VK = VK_PRValue;
   bool ClassMessage = (ReceiverType->isObjCClassType() ||
                        ReceiverType->isObjCQualifiedClassType());
   if (CheckMessageArgumentTypes(Receiver, ReceiverType,
@@ -4473,7 +4473,7 @@ Sema::CheckObjCConversion(SourceRange castRange, QualType castType,
   case ACC_plusOne:
     castExpr = ImplicitCastExpr::Create(Context, castExpr->getType(),
                                         CK_ARCConsumeObject, castExpr, nullptr,
-                                        VK_RValue, FPOptionsOverride());
+                                        VK_PRValue, FPOptionsOverride());
     Cleanup.setExprNeedsCleanups(true);
     return ACR_okay;
   }
@@ -4700,7 +4700,7 @@ ExprResult Sema::BuildObjCBridgedCast(SourceLocation LParenLoc,
     case OBC_BridgeRetained:
       // Produce the object before casting it.
       SubExpr = ImplicitCastExpr::Create(Context, FromType, CK_ARCProduceObject,
-                                         SubExpr, nullptr, VK_RValue,
+                                         SubExpr, nullptr, VK_PRValue,
                                          FPOptionsOverride());
       break;
 
@@ -4740,7 +4740,7 @@ ExprResult Sema::BuildObjCBridgedCast(SourceLocation LParenLoc,
   if (MustConsume) {
     Cleanup.setExprNeedsCleanups(true);
     Result = ImplicitCastExpr::Create(Context, T, CK_ARCConsumeObject, Result,
-                                      nullptr, VK_RValue, FPOptionsOverride());
+                                      nullptr, VK_PRValue, FPOptionsOverride());
   }
 
   return Result;

diff  --git a/clang/lib/Sema/SemaFixItUtils.cpp b/clang/lib/Sema/SemaFixItUtils.cpp
index 41a7a90a3727e..2910a56f866bb 100644
--- a/clang/lib/Sema/SemaFixItUtils.cpp
+++ b/clang/lib/Sema/SemaFixItUtils.cpp
@@ -132,8 +132,8 @@ bool ConversionFixItGenerator::tryToFixConversion(const Expr *FullExpr,
     if (!Expr->isLValue() || Expr->getObjectKind() != OK_Ordinary)
       return false;
 
-    CanConvert = CompareTypes(S.Context.getPointerType(FromQTy), ToQTy,
-                              S, Begin, VK_RValue);
+    CanConvert = CompareTypes(S.Context.getPointerType(FromQTy), ToQTy, S,
+                              Begin, VK_PRValue);
     if (CanConvert) {
 
       if (const UnaryOperator *UO = dyn_cast<UnaryOperator>(Expr)) {

diff  --git a/clang/lib/Sema/SemaInit.cpp b/clang/lib/Sema/SemaInit.cpp
index c8e8c8696b6ad..430b14853d381 100644
--- a/clang/lib/Sema/SemaInit.cpp
+++ b/clang/lib/Sema/SemaInit.cpp
@@ -151,7 +151,7 @@ bool Sema::IsStringInit(Expr *Init, const ArrayType *AT) {
 static void updateStringLiteralType(Expr *E, QualType Ty) {
   while (true) {
     E->setType(Ty);
-    E->setValueKind(VK_RValue);
+    E->setValueKind(VK_PRValue);
     if (isa<StringLiteral>(E) || isa<ObjCEncodeExpr>(E)) {
       break;
     } else if (ParenExpr *PE = dyn_cast<ParenExpr>(E)) {
@@ -173,7 +173,7 @@ static void updateStringLiteralType(Expr *E, QualType Ty) {
 /// as an rvalue.
 static void updateGNUCompoundLiteralRValue(Expr *E) {
   while (true) {
-    E->setValueKind(VK_RValue);
+    E->setValueKind(VK_PRValue);
     if (isa<CompoundLiteralExpr>(E)) {
       break;
     } else if (ParenExpr *PE = dyn_cast<ParenExpr>(E)) {
@@ -2924,9 +2924,9 @@ InitListChecker::CheckDesignatedInitializer(const InitializedEntity &Entity,
         Expr *Init = new (Context) IntegerLiteral(
             Context, CodeUnit, PromotedCharTy, SubExpr->getExprLoc());
         if (CharTy != PromotedCharTy)
-          Init =
-              ImplicitCastExpr::Create(Context, CharTy, CK_IntegralCast, Init,
-                                       nullptr, VK_RValue, FPOptionsOverride());
+          Init = ImplicitCastExpr::Create(Context, CharTy, CK_IntegralCast,
+                                          Init, nullptr, VK_PRValue,
+                                          FPOptionsOverride());
         StructuredList->updateInit(Context, i, Init);
       }
     } else {
@@ -2947,9 +2947,9 @@ InitListChecker::CheckDesignatedInitializer(const InitializedEntity &Entity,
         Expr *Init = new (Context) IntegerLiteral(
             Context, CodeUnit, PromotedCharTy, SubExpr->getExprLoc());
         if (CharTy != PromotedCharTy)
-          Init =
-              ImplicitCastExpr::Create(Context, CharTy, CK_IntegralCast, Init,
-                                       nullptr, VK_RValue, FPOptionsOverride());
+          Init = ImplicitCastExpr::Create(Context, CharTy, CK_IntegralCast,
+                                          Init, nullptr, VK_PRValue,
+                                          FPOptionsOverride());
         StructuredList->updateInit(Context, i, Init);
       }
     }
@@ -3465,7 +3465,7 @@ void InitializationSequence::Step::Destroy() {
   case SK_FinalCopy:
   case SK_ExtraneousCopyToTemporary:
   case SK_UserConversion:
-  case SK_QualificationConversionRValue:
+  case SK_QualificationConversionPRValue:
   case SK_QualificationConversionXValue:
   case SK_QualificationConversionLValue:
   case SK_FunctionReferenceConversion:
@@ -3584,7 +3584,9 @@ void InitializationSequence::AddDerivedToBaseCastStep(QualType BaseType,
                                                       ExprValueKind VK) {
   Step S;
   switch (VK) {
-  case VK_RValue: S.Kind = SK_CastDerivedToBaseRValue; break;
+  case VK_PRValue:
+    S.Kind = SK_CastDerivedToBaseRValue;
+    break;
   case VK_XValue: S.Kind = SK_CastDerivedToBaseXValue; break;
   case VK_LValue: S.Kind = SK_CastDerivedToBaseLValue; break;
   }
@@ -3631,10 +3633,10 @@ InitializationSequence::AddUserConversionStep(FunctionDecl *Function,
 void InitializationSequence::AddQualificationConversionStep(QualType Ty,
                                                             ExprValueKind VK) {
   Step S;
-  S.Kind = SK_QualificationConversionRValue; // work around a gcc warning
+  S.Kind = SK_QualificationConversionPRValue; // work around a gcc warning
   switch (VK) {
-  case VK_RValue:
-    S.Kind = SK_QualificationConversionRValue;
+  case VK_PRValue:
+    S.Kind = SK_QualificationConversionPRValue;
     break;
   case VK_XValue:
     S.Kind = SK_QualificationConversionXValue;
@@ -4073,10 +4075,10 @@ static void TryConstructorInitialization(Sema &S,
       Entity.getKind() != InitializedEntity::EK_Delegating &&
       Entity.getKind() !=
           InitializedEntity::EK_LambdaToBlockConversionBlockElement &&
-      UnwrappedArgs.size() == 1 && UnwrappedArgs[0]->isRValue() &&
+      UnwrappedArgs.size() == 1 && UnwrappedArgs[0]->isPRValue() &&
       S.Context.hasSameUnqualifiedType(UnwrappedArgs[0]->getType(), DestType)) {
     // Convert qualifications if necessary.
-    Sequence.AddQualificationConversionStep(DestType, VK_RValue);
+    Sequence.AddQualificationConversionStep(DestType, VK_PRValue);
     if (ILE)
       Sequence.RewrapReferenceInitList(DestType, ILE);
     return;
@@ -4162,7 +4164,7 @@ static void TryConstructorInitialization(Sema &S,
     Sequence.AddUserConversionStep(CD, Best->FoundDecl, ConvType,
                                    HadMultipleCandidates);
     if (!S.Context.hasSameType(ConvType, DestType))
-      Sequence.AddQualificationConversionStep(DestType, VK_RValue);
+      Sequence.AddQualificationConversionStep(DestType, VK_PRValue);
     if (IsListInit)
       Sequence.RewrapReferenceInitList(Entity.getType(), ILE);
     return;
@@ -4486,7 +4488,7 @@ static void TryListInitialization(Sema &S,
       ImplicitConversionSequence ICS;
       ICS.setStandard();
       ICS.Standard.setAsIdentityConversion();
-      if (!E->isRValue())
+      if (!E->isPRValue())
         ICS.Standard.First = ICK_Lvalue_To_Rvalue;
       // If E is of a floating-point type, then the conversion is ill-formed
       // due to narrowing, but go through the motions in order to produce the
@@ -4671,7 +4673,7 @@ static OverloadingResult TryRefInitWithConversionFunction(
   else
     cv3T3 = T1;
 
-  ExprValueKind VK = VK_RValue;
+  ExprValueKind VK = VK_PRValue;
   if (cv3T3->isLValueReferenceType())
     VK = VK_LValue;
   else if (const auto *RRef = cv3T3->getAs<RValueReferenceType>())
@@ -4702,7 +4704,7 @@ static OverloadingResult TryRefInitWithConversionFunction(
     // Every implicit conversion results in a prvalue, except for a glvalue
     // derived-to-base conversion, which we handle below.
     cv3T3 = ICS.Standard.getToType(2);
-    VK = VK_RValue;
+    VK = VK_PRValue;
   }
 
   //   If the converted initializer is a prvalue, its type T4 is adjusted to
@@ -4714,7 +4716,7 @@ static OverloadingResult TryRefInitWithConversionFunction(
   QualType cv1T4 = S.Context.getQualifiedType(cv3T3, cv1T1.getQualifiers());
   if (cv1T4.getQualifiers() != cv3T3.getQualifiers())
     Sequence.AddQualificationConversionStep(cv1T4, VK);
-  Sequence.AddReferenceBindingStep(cv1T4, VK == VK_RValue);
+  Sequence.AddReferenceBindingStep(cv1T4, VK == VK_PRValue);
   VK = IsLValueRef ? VK_LValue : VK_XValue;
 
   if (RefConv & Sema::ReferenceConversions::DerivedToBase)
@@ -4929,7 +4931,7 @@ static void TryReferenceInitializationCore(Sema &S,
        (InitCategory.isPRValue() &&
         (S.getLangOpts().CPlusPlus17 || T2->isRecordType() ||
          T2->isArrayType())))) {
-    ExprValueKind ValueKind = InitCategory.isXValue() ? VK_XValue : VK_RValue;
+    ExprValueKind ValueKind = InitCategory.isXValue() ? VK_XValue : VK_PRValue;
     if (InitCategory.isPRValue() && T2->isRecordType()) {
       // The corresponding bullet in C++03 [dcl.init.ref]p5 gives the
       // compiler the freedom to perform a copy here or bind to the
@@ -4961,7 +4963,7 @@ static void TryReferenceInitializationCore(Sema &S,
     QualType cv1T4 = S.Context.getQualifiedType(cv2T2, T1QualsIgnoreAS);
     if (T1QualsIgnoreAS != T2QualsIgnoreAS)
       Sequence.AddQualificationConversionStep(cv1T4, ValueKind);
-    Sequence.AddReferenceBindingStep(cv1T4, ValueKind == VK_RValue);
+    Sequence.AddReferenceBindingStep(cv1T4, ValueKind == VK_PRValue);
     ValueKind = isLValueRef ? VK_LValue : VK_XValue;
     // Add addr space conversion if required.
     if (T1Quals.getAddressSpace() != T2Quals.getAddressSpace()) {
@@ -5364,7 +5366,7 @@ static void TryUserDefinedConversion(Sema &S,
     if (!S.getLangOpts().CPlusPlus17)
       Sequence.AddFinalCopy(DestType);
     else if (DestType.hasQualifiers())
-      Sequence.AddQualificationConversionStep(DestType, VK_RValue);
+      Sequence.AddQualificationConversionStep(DestType, VK_PRValue);
     return;
   }
 
@@ -5388,7 +5390,7 @@ static void TryUserDefinedConversion(Sema &S,
         !S.Context.hasSameUnqualifiedType(ConvType, DestType))
       Sequence.AddFinalCopy(DestType);
     else if (!S.Context.hasSameType(ConvType, DestType))
-      Sequence.AddQualificationConversionStep(DestType, VK_RValue);
+      Sequence.AddQualificationConversionStep(DestType, VK_PRValue);
     return;
   }
 
@@ -5493,7 +5495,7 @@ static InvalidICRKind isInvalidICRSource(ASTContext &C, Expr *e,
 /// Check whether the given expression is a valid operand for an
 /// indirect copy/restore.
 static void checkIndirectCopyRestoreSource(Sema &S, Expr *src) {
-  assert(src->isRValue());
+  assert(src->isPRValue());
   bool isWeakAccess = false;
   InvalidICRKind iik = isInvalidICRSource(S.Context, src, false, isWeakAccess);
   // If isWeakAccess to true, there will be an implicit
@@ -5830,7 +5832,7 @@ void InitializationSequence::InitializeFrom(Sema &S,
                                          Entity.getType()) &&
         canPerformArrayCopy(Entity)) {
       // If source is a prvalue, use it directly.
-      if (Initializer->getValueKind() == VK_RValue) {
+      if (Initializer->getValueKind() == VK_PRValue) {
         AddArrayInitStep(DestType, /*IsGNUExtension*/false);
         return;
       }
@@ -7880,7 +7882,7 @@ static void CheckMoveOnConstruction(Sema &S, const Expr *InitExpr,
   } else {
     DiagID = diag::warn_pessimizing_move_on_initialization;
     const Expr *ArgStripped = Arg->IgnoreImplicit()->IgnoreParens();
-    if (!ArgStripped->isRValue() || !ArgStripped->getType()->isRecordType())
+    if (!ArgStripped->isPRValue() || !ArgStripped->getType()->isRecordType())
       return;
   }
 
@@ -7950,7 +7952,7 @@ ExprResult Sema::TemporaryMaterializationConversion(Expr *E) {
   // FIXME: This means that AST consumers need to deal with "prvalues" that
   // denote materialized temporaries. Maybe we should add another ValueKind
   // for "xvalue pretending to be a prvalue" for C++98 support.
-  if (!E->isRValue() || !getLangOpts().CPlusPlus11)
+  if (!E->isPRValue() || !getLangOpts().CPlusPlus11)
     return E;
 
   // C++1z [conv.rval]/1: T shall be a complete type.
@@ -7969,7 +7971,7 @@ ExprResult Sema::PerformQualificationConversion(Expr *E, QualType Ty,
 
   CastKind CK = CK_NoOp;
 
-  if (VK == VK_RValue) {
+  if (VK == VK_PRValue) {
     auto PointeeTy = Ty->getPointeeType();
     auto ExprPointeeTy = E->getType()->getPointeeType();
     if (!PointeeTy.isNull() &&
@@ -8114,7 +8116,7 @@ ExprResult InitializationSequence::Perform(Sema &S,
   case SK_UserConversion:
   case SK_QualificationConversionLValue:
   case SK_QualificationConversionXValue:
-  case SK_QualificationConversionRValue:
+  case SK_QualificationConversionPRValue:
   case SK_FunctionReferenceConversion:
   case SK_AtomicConversion:
   case SK_ConversionSequence:
@@ -8205,11 +8207,10 @@ ExprResult InitializationSequence::Perform(Sema &S,
         return ExprError();
 
       ExprValueKind VK =
-          Step->Kind == SK_CastDerivedToBaseLValue ?
-              VK_LValue :
-              (Step->Kind == SK_CastDerivedToBaseXValue ?
-                   VK_XValue :
-                   VK_RValue);
+          Step->Kind == SK_CastDerivedToBaseLValue
+              ? VK_LValue
+              : (Step->Kind == SK_CastDerivedToBaseXValue ? VK_XValue
+                                                          : VK_PRValue);
       CurInit = ImplicitCastExpr::Create(S.Context, Step->Type,
                                          CK_DerivedToBase, CurInit.get(),
                                          &BasePath, VK, FPOptionsOverride());
@@ -8241,7 +8242,7 @@ ExprResult InitializationSequence::Perform(Sema &S,
 
     case SK_BindReferenceToTemporary: {
       // Make sure the "temporary" is actually an rvalue.
-      assert(CurInit.get()->isRValue() && "not a temporary");
+      assert(CurInit.get()->isPRValue() && "not a temporary");
 
       // Check exception specifications
       if (S.CheckExceptionSpecCompatibility(CurInit.get(), DestType))
@@ -8382,13 +8383,13 @@ ExprResult InitializationSequence::Perform(Sema &S,
 
     case SK_QualificationConversionLValue:
     case SK_QualificationConversionXValue:
-    case SK_QualificationConversionRValue: {
+    case SK_QualificationConversionPRValue: {
       // Perform a qualification conversion; these can never go wrong.
       ExprValueKind VK =
           Step->Kind == SK_QualificationConversionLValue
               ? VK_LValue
               : (Step->Kind == SK_QualificationConversionXValue ? VK_XValue
-                                                                : VK_RValue);
+                                                                : VK_PRValue);
       CurInit = S.PerformQualificationConversion(CurInit.get(), Step->Type, VK);
       break;
     }
@@ -8401,9 +8402,9 @@ ExprResult InitializationSequence::Perform(Sema &S,
       break;
 
     case SK_AtomicConversion: {
-      assert(CurInit.get()->isRValue() && "cannot convert glvalue to atomic");
+      assert(CurInit.get()->isPRValue() && "cannot convert glvalue to atomic");
       CurInit = S.ImpCastExprToType(CurInit.get(), Step->Type,
-                                    CK_NonAtomicToAtomic, VK_RValue);
+                                    CK_NonAtomicToAtomic, VK_PRValue);
       break;
     }
 
@@ -8706,7 +8707,7 @@ ExprResult InitializationSequence::Perform(Sema &S,
     case SK_ProduceObjCObject:
       CurInit = ImplicitCastExpr::Create(
           S.Context, Step->Type, CK_ARCProduceObject, CurInit.get(), nullptr,
-          VK_RValue, FPOptionsOverride());
+          VK_PRValue, FPOptionsOverride());
       break;
 
     case SK_StdInitializerList: {
@@ -8762,7 +8763,7 @@ ExprResult InitializationSequence::Perform(Sema &S,
           if (!Var->hasGlobalStorage()) {
             CurInit = ImplicitCastExpr::Create(
                 S.Context, Step->Type, CK_LValueToRValue, Init,
-                /*BasePath=*/nullptr, VK_RValue, FPOptionsOverride());
+                /*BasePath=*/nullptr, VK_PRValue, FPOptionsOverride());
             break;
           }
           // Case 1a
@@ -9648,8 +9649,8 @@ void InitializationSequence::dump(raw_ostream &OS) const {
       OS << "user-defined conversion via " << *S->Function.Function;
       break;
 
-    case SK_QualificationConversionRValue:
-      OS << "qualification conversion (rvalue)";
+    case SK_QualificationConversionPRValue:
+      OS << "qualification conversion (prvalue)";
       break;
 
     case SK_QualificationConversionXValue:

diff  --git a/clang/lib/Sema/SemaLambda.cpp b/clang/lib/Sema/SemaLambda.cpp
index cf5e20f7b6c1e..eb1e9c3e5f7e4 100644
--- a/clang/lib/Sema/SemaLambda.cpp
+++ b/clang/lib/Sema/SemaLambda.cpp
@@ -686,7 +686,7 @@ static void adjustBlockReturnsToEnum(Sema &S, ArrayRef<ReturnStmt*> returns,
 
     Expr *E = (cleanups ? cleanups->getSubExpr() : retValue);
     E = ImplicitCastExpr::Create(S.Context, returnType, CK_IntegralCast, E,
-                                 /*base path*/ nullptr, VK_RValue,
+                                 /*base path*/ nullptr, VK_PRValue,
                                  FPOptionsOverride());
     if (cleanups) {
       cleanups->setSubExpr(E);

diff  --git a/clang/lib/Sema/SemaLookup.cpp b/clang/lib/Sema/SemaLookup.cpp
index d953805696e5a..5e8c4de61e5d1 100644
--- a/clang/lib/Sema/SemaLookup.cpp
+++ b/clang/lib/Sema/SemaLookup.cpp
@@ -3159,7 +3159,7 @@ Sema::SpecialMemberOverloadResult Sema::LookupSpecialMember(CXXRecordDecl *RD,
       ArgType.addVolatile();
 
     // This isn't /really/ specified by the standard, but it's implied
-    // we should be working from an RValue in the case of move to ensure
+    // we should be working from a PRValue in the case of move to ensure
     // that we prefer to bind to rvalue references, and an LValue in the
     // case of copy to ensure we don't bind to rvalue references.
     // Possibly an XValue is actually correct in the case of move, but
@@ -3168,7 +3168,7 @@ Sema::SpecialMemberOverloadResult Sema::LookupSpecialMember(CXXRecordDecl *RD,
     if (SM == CXXCopyConstructor || SM == CXXCopyAssignment)
       VK = VK_LValue;
     else
-      VK = VK_RValue;
+      VK = VK_PRValue;
   }
 
   OpaqueValueExpr FakeArg(LookupLoc, ArgType, VK);
@@ -3185,8 +3185,8 @@ Sema::SpecialMemberOverloadResult Sema::LookupSpecialMember(CXXRecordDecl *RD,
   if (VolatileThis)
     ThisTy.addVolatile();
   Expr::Classification Classification =
-    OpaqueValueExpr(LookupLoc, ThisTy,
-                    RValueThis ? VK_RValue : VK_LValue).Classify(Context);
+      OpaqueValueExpr(LookupLoc, ThisTy, RValueThis ? VK_PRValue : VK_LValue)
+          .Classify(Context);
 
   // Now we perform lookup on the name we computed earlier and do overload
   // resolution. Lookup is only performed directly into the class since there

diff  --git a/clang/lib/Sema/SemaObjCProperty.cpp b/clang/lib/Sema/SemaObjCProperty.cpp
index db999270219cb..a329d0f22b030 100644
--- a/clang/lib/Sema/SemaObjCProperty.cpp
+++ b/clang/lib/Sema/SemaObjCProperty.cpp
@@ -1458,7 +1458,7 @@ Decl *Sema::ActOnPropertyImplDecl(Scope *S,
       MarkDeclRefReferenced(SelfExpr);
       Expr *LoadSelfExpr = ImplicitCastExpr::Create(
           Context, SelfDecl->getType(), CK_LValueToRValue, SelfExpr, nullptr,
-          VK_RValue, FPOptionsOverride());
+          VK_PRValue, FPOptionsOverride());
       Expr *IvarRefExpr =
         new (Context) ObjCIvarRefExpr(Ivar,
                                       Ivar->getUsageType(SelfDecl->getType()),
@@ -1521,7 +1521,7 @@ Decl *Sema::ActOnPropertyImplDecl(Scope *S,
       MarkDeclRefReferenced(SelfExpr);
       Expr *LoadSelfExpr = ImplicitCastExpr::Create(
           Context, SelfDecl->getType(), CK_LValueToRValue, SelfExpr, nullptr,
-          VK_RValue, FPOptionsOverride());
+          VK_PRValue, FPOptionsOverride());
       Expr *lhs =
         new (Context) ObjCIvarRefExpr(Ivar,
                                       Ivar->getUsageType(SelfDecl->getType()),

diff  --git a/clang/lib/Sema/SemaOpenMP.cpp b/clang/lib/Sema/SemaOpenMP.cpp
index aae84bf3b35c3..27a2ff204adf9 100644
--- a/clang/lib/Sema/SemaOpenMP.cpp
+++ b/clang/lib/Sema/SemaOpenMP.cpp
@@ -6714,7 +6714,8 @@ void Sema::ActOnFinishedFunctionDefinitionInOpenMPDeclareVariantScope(
   auto *VariantFuncRef = DeclRefExpr::Create(
       Context, NestedNameSpecifierLoc(), SourceLocation(), FD,
       /* RefersToEnclosingVariableOrCapture */ false,
-      /* NameLoc */ FD->getLocation(), FD->getType(), ExprValueKind::VK_RValue);
+      /* NameLoc */ FD->getLocation(), FD->getType(),
+      ExprValueKind::VK_PRValue);
 
   OMPDeclareVariantScope &DVScope = OMPDeclareVariantScopes.back();
   auto *OMPDeclareVariantA = OMPDeclareVariantAttr::CreateImplicit(
@@ -10612,9 +10613,9 @@ bool OpenMPAtomicUpdateChecker::checkStatement(Stmt *S, unsigned DiagId,
     // OpaqueValueExpr(expr)' or 'OpaqueValueExpr(expr) binop
     // OpaqueValueExpr(x)' and then cast it to the type of the 'x' expression.
     auto *OVEX = new (SemaRef.getASTContext())
-        OpaqueValueExpr(X->getExprLoc(), X->getType(), VK_RValue);
+        OpaqueValueExpr(X->getExprLoc(), X->getType(), VK_PRValue);
     auto *OVEExpr = new (SemaRef.getASTContext())
-        OpaqueValueExpr(E->getExprLoc(), E->getType(), VK_RValue);
+        OpaqueValueExpr(E->getExprLoc(), E->getType(), VK_PRValue);
     ExprResult Update =
         SemaRef.CreateBuiltinBinOp(OpLoc, Op, IsXLHSInRHSPart ? OVEX : OVEExpr,
                                    IsXLHSInRHSPart ? OVEExpr : OVEX);
@@ -16685,7 +16686,8 @@ static bool actOnOMPReductionKindClause(
       // (type of the variable or single array element).
       PrivateTy = Context.getVariableArrayType(
           Type,
-          new (Context) OpaqueValueExpr(ELoc, Context.getSizeType(), VK_RValue),
+          new (Context)
+              OpaqueValueExpr(ELoc, Context.getSizeType(), VK_PRValue),
           ArrayType::Normal, /*IndexTypeQuals=*/0, SourceRange());
     } else if (!ASE && !OASE &&
                Context.getAsArrayType(D->getType().getNonReferenceType())) {
@@ -16857,11 +16859,11 @@ static bool actOnOMPReductionKindClause(
       QualType Params[] = {PtrRedTy, PtrRedTy};
       QualType FnTy = Context.getFunctionType(Context.VoidTy, Params, EPI);
       auto *OVE = new (Context) OpaqueValueExpr(
-          ELoc, Context.getPointerType(FnTy), VK_RValue, OK_Ordinary,
+          ELoc, Context.getPointerType(FnTy), VK_PRValue, OK_Ordinary,
           S.DefaultLvalueConversion(DeclareReductionRef.get()).get());
       Expr *Args[] = {LHS.get(), RHS.get()};
       ReductionOp =
-          CallExpr::Create(Context, OVE, Args, Context.VoidTy, VK_RValue, ELoc,
+          CallExpr::Create(Context, OVE, Args, Context.VoidTy, VK_PRValue, ELoc,
                            S.CurFPFeatureOverrides());
     } else {
       BinaryOperatorKind CombBOK = getRelatedCompoundReductionOp(BOK);
@@ -16925,7 +16927,7 @@ static bool actOnOMPReductionKindClause(
       } else {
         // Build temp array for prefix sum.
         auto *Dim = new (S.Context)
-            OpaqueValueExpr(ELoc, S.Context.getSizeType(), VK_RValue);
+            OpaqueValueExpr(ELoc, S.Context.getSizeType(), VK_PRValue);
         QualType ArrayTy =
             S.Context.getVariableArrayType(PrivateTy, Dim, ArrayType::Normal,
                                            /*IndexTypeQuals=*/0, {ELoc, ELoc});
@@ -16938,7 +16940,7 @@ static bool actOnOMPReductionKindClause(
         TempArrayElem =
             S.DefaultFunctionArrayLvalueConversion(TempArrayRes.get());
         auto *Idx = new (S.Context)
-            OpaqueValueExpr(ELoc, S.Context.getSizeType(), VK_RValue);
+            OpaqueValueExpr(ELoc, S.Context.getSizeType(), VK_PRValue);
         TempArrayElem = S.CreateBuiltinArraySubscriptExpr(TempArrayElem.get(),
                                                           ELoc, Idx, ELoc);
       }

diff  --git a/clang/lib/Sema/SemaOverload.cpp b/clang/lib/Sema/SemaOverload.cpp
index 95d6a9f3c8365..4b6c3f3658a7f 100644
--- a/clang/lib/Sema/SemaOverload.cpp
+++ b/clang/lib/Sema/SemaOverload.cpp
@@ -5434,8 +5434,8 @@ Sema::PerformObjectArgumentInitialization(Expr *From,
     DestType = ImplicitParamRecordType;
     FromClassification = From->Classify(Context);
 
-    // When performing member access on an rvalue, materialize a temporary.
-    if (From->isRValue()) {
+    // When performing member access on a prvalue, materialize a temporary.
+    if (From->isPRValue()) {
       From = CreateMaterializeTemporaryExpr(FromRecordType, From,
                                             Method->getRefQualifier() !=
                                                 RefQualifierKind::RQ_RValue);
@@ -7371,7 +7371,7 @@ void Sema::AddConversionCandidate(
   ImplicitCastExpr ConversionFn(ImplicitCastExpr::OnStack,
                                 Context.getPointerType(Conversion->getType()),
                                 CK_FunctionToPointerDecay, &ConversionRef,
-                                VK_RValue, FPOptionsOverride());
+                                VK_PRValue, FPOptionsOverride());
 
   QualType ConversionType = Conversion->getConversionType();
   if (!isCompleteType(From->getBeginLoc(), ConversionType)) {
@@ -12983,7 +12983,7 @@ bool Sema::buildOverloadedCallSet(Scope *S, Expr *Fn,
       // lookup to instantiation time to be able to search into type dependent
       // base classes.
       CallExpr *CE =
-          CallExpr::Create(Context, Fn, Args, Context.DependentTy, VK_RValue,
+          CallExpr::Create(Context, Fn, Args, Context.DependentTy, VK_PRValue,
                            RParenLoc, CurFPFeatureOverrides());
       CE->markDependentForPostponedNameLookup();
       *Result = CE;
@@ -13241,7 +13241,7 @@ Sema::CreateOverloadedUnaryOp(SourceLocation OpLoc, UnaryOperatorKind Opc,
   if (Input->isTypeDependent()) {
     if (Fns.empty())
       return UnaryOperator::Create(Context, Input, Opc, Context.DependentTy,
-                                   VK_RValue, OK_Ordinary, OpLoc, false,
+                                   VK_PRValue, OK_Ordinary, OpLoc, false,
                                    CurFPFeatureOverrides());
 
     CXXRecordDecl *NamingClass = nullptr; // lookup ignores member operators
@@ -13250,7 +13250,7 @@ Sema::CreateOverloadedUnaryOp(SourceLocation OpLoc, UnaryOperatorKind Opc,
     if (Fn.isInvalid())
       return ExprError();
     return CXXOperatorCallExpr::Create(Context, Op, Fn.get(), ArgsArray,
-                                       Context.DependentTy, VK_RValue, OpLoc,
+                                       Context.DependentTy, VK_PRValue, OpLoc,
                                        CurFPFeatureOverrides());
   }
 
@@ -13498,9 +13498,9 @@ ExprResult Sema::CreateOverloadedBinOp(SourceLocation OpLoc,
             Context, Args[0], Args[1], Opc, Context.DependentTy, VK_LValue,
             OK_Ordinary, OpLoc, CurFPFeatureOverrides(), Context.DependentTy,
             Context.DependentTy);
-      return BinaryOperator::Create(Context, Args[0], Args[1], Opc,
-                                    Context.DependentTy, VK_RValue, OK_Ordinary,
-                                    OpLoc, CurFPFeatureOverrides());
+      return BinaryOperator::Create(
+          Context, Args[0], Args[1], Opc, Context.DependentTy, VK_PRValue,
+          OK_Ordinary, OpLoc, CurFPFeatureOverrides());
     }
 
     // FIXME: save results of ADL from here?
@@ -13513,7 +13513,7 @@ ExprResult Sema::CreateOverloadedBinOp(SourceLocation OpLoc,
     if (Fn.isInvalid())
       return ExprError();
     return CXXOperatorCallExpr::Create(Context, Op, Fn.get(), Args,
-                                       Context.DependentTy, VK_RValue, OpLoc,
+                                       Context.DependentTy, VK_PRValue, OpLoc,
                                        CurFPFeatureOverrides());
   }
 
@@ -13992,7 +13992,7 @@ Sema::CreateOverloadedArraySubscriptExpr(SourceLocation LLoc,
     // Can't add any actual overloads yet
 
     return CXXOperatorCallExpr::Create(Context, OO_Subscript, Fn.get(), Args,
-                                       Context.DependentTy, VK_RValue, RLoc,
+                                       Context.DependentTy, VK_PRValue, RLoc,
                                        CurFPFeatureOverrides());
   }
 
@@ -14215,7 +14215,7 @@ ExprResult Sema::BuildCallToMemberFunction(Scope *S, Expr *MemExprE,
                               Type);
   };
   if (isa<CXXPseudoDestructorExpr>(NakedMemExpr))
-    return CallExpr::Create(Context, MemExprE, Args, Context.VoidTy, VK_RValue,
+    return CallExpr::Create(Context, MemExprE, Args, Context.VoidTy, VK_PRValue,
                             RParenLoc, CurFPFeatureOverrides());
 
   UnbridgedCastsSet UnbridgedCasts;
@@ -14600,7 +14600,7 @@ Sema::BuildCallToObjectOfClassType(Scope *S, Expr *Obj,
     // Record usage of conversion in an implicit cast.
     Call = ImplicitCastExpr::Create(
         Context, Call.get()->getType(), CK_UserDefinedConversion, Call.get(),
-        nullptr, VK_RValue, CurFPFeatureOverrides());
+        nullptr, VK_PRValue, CurFPFeatureOverrides());
 
     return BuildCallExpr(S, Call.get(), LParenLoc, Args, RParenLoc);
   }
@@ -15068,7 +15068,7 @@ Expr *Sema::FixOverloadedFunctionReference(Expr *E, DeclAccessPair Found,
           (void)isCompleteType(UnOp->getOperatorLoc(), MemPtrType);
 
         return UnaryOperator::Create(
-            Context, SubExpr, UO_AddrOf, MemPtrType, VK_RValue, OK_Ordinary,
+            Context, SubExpr, UO_AddrOf, MemPtrType, VK_PRValue, OK_Ordinary,
             UnOp->getOperatorLoc(), false, CurFPFeatureOverrides());
       }
     }
@@ -15077,10 +15077,10 @@ Expr *Sema::FixOverloadedFunctionReference(Expr *E, DeclAccessPair Found,
     if (SubExpr == UnOp->getSubExpr())
       return UnOp;
 
-    return UnaryOperator::Create(Context, SubExpr, UO_AddrOf,
-                                 Context.getPointerType(SubExpr->getType()),
-                                 VK_RValue, OK_Ordinary, UnOp->getOperatorLoc(),
-                                 false, CurFPFeatureOverrides());
+    return UnaryOperator::Create(
+        Context, SubExpr, UO_AddrOf, Context.getPointerType(SubExpr->getType()),
+        VK_PRValue, OK_Ordinary, UnOp->getOperatorLoc(), false,
+        CurFPFeatureOverrides());
   }
 
   if (UnresolvedLookupExpr *ULE = dyn_cast<UnresolvedLookupExpr>(E)) {
@@ -15135,7 +15135,7 @@ Expr *Sema::FixOverloadedFunctionReference(Expr *E, DeclAccessPair Found,
       valueKind = VK_LValue;
       type = Fn->getType();
     } else {
-      valueKind = VK_RValue;
+      valueKind = VK_PRValue;
       type = Context.BoundMemberTy;
     }
 

diff  --git a/clang/lib/Sema/SemaPseudoObject.cpp b/clang/lib/Sema/SemaPseudoObject.cpp
index d17599a6ed149..7fdb34905b616 100644
--- a/clang/lib/Sema/SemaPseudoObject.cpp
+++ b/clang/lib/Sema/SemaPseudoObject.cpp
@@ -835,7 +835,7 @@ ExprResult ObjCPropertyOpBuilder::buildRValueOperation(Expr *op) {
 
   // As a special case, if the method returns 'id', try to get
   // a better type from the property.
-  if (RefExpr->isExplicitProperty() && result.get()->isRValue()) {
+  if (RefExpr->isExplicitProperty() && result.get()->isPRValue()) {
     QualType receiverType = RefExpr->getReceiverType(S.Context);
     QualType propType = RefExpr->getExplicitProperty()
                           ->getUsageType(receiverType);
@@ -1554,7 +1554,7 @@ ExprResult Sema::checkPseudoObjectIncDec(Scope *Sc, SourceLocation opcLoc,
   // Do nothing if the operand is dependent.
   if (op->isTypeDependent())
     return UnaryOperator::Create(Context, op, opcode, Context.DependentTy,
-                                 VK_RValue, OK_Ordinary, opcLoc, false,
+                                 VK_PRValue, OK_Ordinary, opcLoc, false,
                                  CurFPFeatureOverrides());
 
   assert(UnaryOperator::isIncrementDecrementOp(opcode));
@@ -1585,7 +1585,7 @@ ExprResult Sema::checkPseudoObjectAssignment(Scope *S, SourceLocation opcLoc,
   // Do nothing if either argument is dependent.
   if (LHS->isTypeDependent() || RHS->isTypeDependent())
     return BinaryOperator::Create(Context, LHS, RHS, opcode,
-                                  Context.DependentTy, VK_RValue, OK_Ordinary,
+                                  Context.DependentTy, VK_PRValue, OK_Ordinary,
                                   opcLoc, CurFPFeatureOverrides());
 
   // Filter out non-overload placeholder types in the RHS.

diff  --git a/clang/lib/Sema/SemaStmt.cpp b/clang/lib/Sema/SemaStmt.cpp
index 70c96620323ff..da87d01de8e89 100644
--- a/clang/lib/Sema/SemaStmt.cpp
+++ b/clang/lib/Sema/SemaStmt.cpp
@@ -867,7 +867,7 @@ StmtResult Sema::ActOnIfStmt(SourceLocation IfLoc, bool IsConstexpr,
     Cond = ConditionResult(
         *this, nullptr,
         MakeFullExpr(new (Context) OpaqueValueExpr(SourceLocation(),
-                                                   Context.BoolTy, VK_RValue),
+                                                   Context.BoolTy, VK_PRValue),
                      IfLoc),
         false);
 
@@ -2271,7 +2271,7 @@ Sema::ActOnObjCForCollectionStmt(SourceLocation ForLoc,
       // If the type contained 'auto', deduce the 'auto' to 'id'.
       if (FirstType->getContainedAutoType()) {
         OpaqueValueExpr OpaqueId(D->getLocation(), Context.getObjCIdType(),
-                                 VK_RValue);
+                                 VK_PRValue);
         Expr *DeducedInit = &OpaqueId;
         if (DeduceAutoType(D->getTypeSourceInfo(), DeducedInit, FirstType) ==
                 DAR_Failed)

diff  --git a/clang/lib/Sema/SemaStmtAsm.cpp b/clang/lib/Sema/SemaStmtAsm.cpp
index a50ea7ee4e7c1..479de3e494163 100644
--- a/clang/lib/Sema/SemaStmtAsm.cpp
+++ b/clang/lib/Sema/SemaStmtAsm.cpp
@@ -735,7 +735,7 @@ void Sema::FillInlineAsmIdentifierInfo(Expr *Res,
   Expr::EvalResult Eval;
   if (T->isFunctionType() || T->isDependentType())
     return Info.setLabel(Res);
-  if (Res->isRValue()) {
+  if (Res->isPRValue()) {
     bool IsEnum = isa<clang::EnumType>(T);
     if (DeclRefExpr *DRE = dyn_cast<clang::DeclRefExpr>(Res))
       if (DRE->getDecl()->getKind() == Decl::EnumConstant)

diff  --git a/clang/lib/Sema/SemaTemplate.cpp b/clang/lib/Sema/SemaTemplate.cpp
index 77866a27e47ef..6f9d5dc2bc308 100644
--- a/clang/lib/Sema/SemaTemplate.cpp
+++ b/clang/lib/Sema/SemaTemplate.cpp
@@ -1256,8 +1256,8 @@ bool Sema::AttachTypeConstraint(AutoTypeLoc TL, NonTypeTemplateParmDecl *NTTP,
   }
   // FIXME: Concepts: This should be the type of the placeholder, but this is
   // unclear in the wording right now.
-  DeclRefExpr *Ref = BuildDeclRefExpr(NTTP, NTTP->getType(), VK_RValue,
-                                      NTTP->getLocation());
+  DeclRefExpr *Ref =
+      BuildDeclRefExpr(NTTP, NTTP->getType(), VK_PRValue, NTTP->getLocation());
   if (!Ref)
     return true;
   ExprResult ImmediatelyDeclaredConstraint =
@@ -2405,9 +2405,9 @@ struct ConvertConstructorToDeductionGuideTransform {
       NewDefArg = new (SemaRef.Context)
           OpaqueValueExpr(OldParam->getDefaultArg()->getBeginLoc(),
                           ParamTy.getNonLValueExprType(SemaRef.Context),
-                          ParamTy->isLValueReferenceType() ? VK_LValue :
-                          ParamTy->isRValueReferenceType() ? VK_XValue :
-                          VK_RValue);
+                          ParamTy->isLValueReferenceType()   ? VK_LValue
+                          : ParamTy->isRValueReferenceType() ? VK_XValue
+                                                             : VK_PRValue);
     }
 
     ParmVarDecl *NewParam = ParmVarDecl::Create(SemaRef.Context, DC,
@@ -6903,8 +6903,9 @@ ExprResult Sema::CheckTemplateArgument(NonTypeTemplateParmDecl *Param,
       Arg = PE->getPattern();
     ExprResult E = ImpCastExprToType(
         Arg, ParamType.getNonLValueExprType(Context), CK_Dependent,
-        ParamType->isLValueReferenceType() ? VK_LValue :
-        ParamType->isRValueReferenceType() ? VK_XValue : VK_RValue);
+        ParamType->isLValueReferenceType()   ? VK_LValue
+        : ParamType->isRValueReferenceType() ? VK_XValue
+                                             : VK_PRValue);
     if (E.isInvalid())
       return ExprError();
     if (PE) {
@@ -7632,7 +7633,7 @@ Sema::BuildExpressionFromIntegralTemplateArgument(const TemplateArgument &Arg,
   if (OrigT->isEnumeralType()) {
     // FIXME: This is a hack. We need a better way to handle substituted
     // non-type template parameters.
-    E = CStyleCastExpr::Create(Context, OrigT, VK_RValue, CK_IntegralCast, E,
+    E = CStyleCastExpr::Create(Context, OrigT, VK_PRValue, CK_IntegralCast, E,
                                nullptr, CurFPFeatureOverrides(),
                                Context.getTrivialTypeSourceInfo(OrigT, Loc),
                                Loc, Loc);

diff  --git a/clang/lib/Sema/SemaTemplateInstantiate.cpp b/clang/lib/Sema/SemaTemplateInstantiate.cpp
index cfafd423fa5fb..f9d40a2ed4b7b 100644
--- a/clang/lib/Sema/SemaTemplateInstantiate.cpp
+++ b/clang/lib/Sema/SemaTemplateInstantiate.cpp
@@ -1475,8 +1475,8 @@ TemplateInstantiator::TransformTemplateParmRefExpr(DeclRefExpr *E,
         ExprType.addConst();
 
       return new (SemaRef.Context) SubstNonTypeTemplateParmPackExpr(
-          ExprType, TargetType->isReferenceType() ? VK_LValue : VK_RValue, NTTP,
-          E->getLocation(), Arg);
+          ExprType, TargetType->isReferenceType() ? VK_LValue : VK_PRValue,
+          NTTP, E->getLocation(), Arg);
     }
 
     Arg = getPackSubstitutedTemplateArgument(getSema(), Arg);

diff  --git a/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp b/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
index 10945963352b5..8de09def4d52a 100644
--- a/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
+++ b/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
@@ -474,7 +474,7 @@ static void instantiateOMPDeclareVariantAttr(
                                 SourceLocation(), SubstFD,
                                 /* RefersToEnclosingVariableOrCapture */ false,
                                 /* NameLoc */ SubstFD->getLocation(),
-                                SubstFD->getType(), ExprValueKind::VK_RValue);
+                                SubstFD->getType(), ExprValueKind::VK_PRValue);
       }
     }
   }

diff  --git a/clang/lib/Sema/SemaType.cpp b/clang/lib/Sema/SemaType.cpp
index 278b46bad44ad..5f1d3ec7f8afc 100644
--- a/clang/lib/Sema/SemaType.cpp
+++ b/clang/lib/Sema/SemaType.cpp
@@ -2397,7 +2397,7 @@ QualType Sema::BuildArrayType(QualType T, ArrayType::ArraySizeModifier ASM,
   }
 
   // Do lvalue-to-rvalue conversions on the array size expression.
-  if (ArraySize && !ArraySize->isRValue()) {
+  if (ArraySize && !ArraySize->isPRValue()) {
     ExprResult Result = DefaultLvalueConversion(ArraySize);
     if (Result.isInvalid())
       return QualType();
@@ -8886,7 +8886,7 @@ QualType Sema::getDecltypeForParenthesizedExpr(Expr *E) {
   case VK_LValue:
     return Context.getLValueReferenceType(T);
   //  - otherwise, decltype(e) is the type of e.
-  case VK_RValue:
+  case VK_PRValue:
     return T;
   }
   llvm_unreachable("Unknown value kind");

diff  --git a/clang/lib/Sema/TreeTransform.h b/clang/lib/Sema/TreeTransform.h
index 500f72d0cff3e..506e0fc0ba057 100644
--- a/clang/lib/Sema/TreeTransform.h
+++ b/clang/lib/Sema/TreeTransform.h
@@ -3599,7 +3599,7 @@ class TreeTransform {
     FunctionDecl *Builtin = cast<FunctionDecl>(Lookup.front());
     Expr *Callee = new (SemaRef.Context)
         DeclRefExpr(SemaRef.Context, Builtin, false,
-                    SemaRef.Context.BuiltinFnTy, VK_RValue, BuiltinLoc);
+                    SemaRef.Context.BuiltinFnTy, VK_PRValue, BuiltinLoc);
     QualType CalleePtrTy = SemaRef.Context.getPointerType(Builtin->getType());
     Callee = SemaRef.ImpCastExprToType(Callee, CalleePtrTy,
                                        CK_BuiltinFnToFnPtr).get();
@@ -13282,7 +13282,7 @@ TreeTransform<Derived>::TransformSizeOfPackExpr(SizeOfPackExpr *E) {
         auto *VD = cast<ValueDecl>(Pack);
         ExprResult DRE = getSema().BuildDeclRefExpr(
             VD, VD->getType().getNonLValueExprType(getSema().Context),
-            VD->getType()->isReferenceType() ? VK_LValue : VK_RValue,
+            VD->getType()->isReferenceType() ? VK_LValue : VK_PRValue,
             E->getPackLoc());
         if (DRE.isInvalid())
           return ExprError();

diff  --git a/clang/lib/StaticAnalyzer/Checkers/MoveChecker.cpp b/clang/lib/StaticAnalyzer/Checkers/MoveChecker.cpp
index aaab2f1298f32..cbe9389820009 100644
--- a/clang/lib/StaticAnalyzer/Checkers/MoveChecker.cpp
+++ b/clang/lib/StaticAnalyzer/Checkers/MoveChecker.cpp
@@ -472,7 +472,7 @@ void MoveChecker::checkPostCall(const CallEvent &Call,
   const MemRegion *BaseRegion = ArgRegion->getBaseRegion();
   // Skip temp objects because of their short lifetime.
   if (BaseRegion->getAs<CXXTempObjectRegion>() ||
-      AFC->getArgExpr(0)->isRValue())
+      AFC->getArgExpr(0)->isPRValue())
     return;
   // If it has already been reported do not need to modify the state.
 

diff  --git a/clang/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp b/clang/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp
index 6f0cd9674deda..bea1dfda975b2 100644
--- a/clang/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp
+++ b/clang/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp
@@ -2013,7 +2013,7 @@ static void trackRValueExpression(const ExplodedNode *InputNode, const Expr *E,
                                   PathSensitiveBugReport &report,
                                   bugreporter::TrackingKind TKind,
                                   bool EnableNullFPSuppression) {
-  assert(E->isRValue() && "The expression is not an rvalue!");
+  assert(E->isPRValue() && "The expression is not a prvalue!");
   const ExplodedNode *RVNode = findNodeForExpression(InputNode, E);
   if (!RVNode)
     return;
@@ -2187,7 +2187,7 @@ bool bugreporter::trackExpressionValue(const ExplodedNode *InputNode,
     }
   }
 
-  if (Inner->isRValue())
+  if (Inner->isPRValue())
     trackRValueExpression(LVNode, Inner, report, TKind,
                           EnableNullFPSuppression);
 

diff  --git a/clang/lib/StaticAnalyzer/Core/CallEvent.cpp b/clang/lib/StaticAnalyzer/Core/CallEvent.cpp
index a55d9302ca587..ecf1d1b5f0688 100644
--- a/clang/lib/StaticAnalyzer/Core/CallEvent.cpp
+++ b/clang/lib/StaticAnalyzer/Core/CallEvent.cpp
@@ -86,7 +86,7 @@ QualType CallEvent::getResultType() const {
   case VK_XValue:
     ResultTy = Ctx.getRValueReferenceType(ResultTy);
     break;
-  case VK_RValue:
+  case VK_PRValue:
     // No adjustment is necessary.
     break;
   }

diff  --git a/clang/test/AST/ast-dump-decl-json.c b/clang/test/AST/ast-dump-decl-json.c
index 5202de3fad06c..9bc9064cc11dc 100644
--- a/clang/test/AST/ast-dump-decl-json.c
+++ b/clang/test/AST/ast-dump-decl-json.c
@@ -903,7 +903,6 @@ void testParmVarDecl(int TestParmVarDecl);
 // CHECK-NEXT:  }
 // CHECK-NEXT: }
 
-
 // CHECK:  "kind": "EnumConstantDecl",
 // CHECK-NEXT:  "loc": {
 // CHECK-NEXT:   "offset": 835,
@@ -947,7 +946,7 @@ void testParmVarDecl(int TestParmVarDecl);
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "int"
 // CHECK-NEXT:    },
-// CHECK-NEXT:    "valueCategory": "rvalue",
+// CHECK-NEXT:    "valueCategory": "prvalue",
 // CHECK-NEXT:    "value": "1",
 // CHECK-NEXT:    "inner": [
 // CHECK-NEXT:     {
@@ -968,7 +967,7 @@ void testParmVarDecl(int TestParmVarDecl);
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "int"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "value": "1"
 // CHECK-NEXT:     }
 // CHECK-NEXT:    ]
@@ -976,7 +975,6 @@ void testParmVarDecl(int TestParmVarDecl);
 // CHECK-NEXT:  ]
 // CHECK-NEXT: }
 
-
 // CHECK:  "kind": "RecordDecl",
 // CHECK-NEXT:  "loc": {
 // CHECK-NEXT:   "offset": 875,
@@ -1108,7 +1106,6 @@ void testParmVarDecl(int TestParmVarDecl);
 // CHECK-NEXT:  ]
 // CHECK-NEXT: }
 
-
 // CHECK:  "kind": "FunctionDecl",
 // CHECK-NEXT:  "loc": {
 // CHECK-NEXT:   "offset": 1003,
@@ -1243,7 +1240,7 @@ void testParmVarDecl(int TestParmVarDecl);
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "castKind": "LValueToRValue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
@@ -1283,7 +1280,6 @@ void testParmVarDecl(int TestParmVarDecl);
 // CHECK-NEXT:  ]
 // CHECK-NEXT: }
 
-
 // CHECK:  "kind": "FunctionDecl",
 // CHECK-NEXT:  "loc": {
 // CHECK-NEXT:   "offset": 1113,
@@ -1388,7 +1384,7 @@ void testParmVarDecl(int TestParmVarDecl);
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "castKind": "IntegralCast",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
@@ -1410,7 +1406,7 @@ void testParmVarDecl(int TestParmVarDecl);
 // CHECK-NEXT:           "desugaredQualType": "enum Enum",
 // CHECK-NEXT:           "qualType": "enum Enum"
 // CHECK-NEXT:          },
-// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "valueCategory": "prvalue",
 // CHECK-NEXT:          "castKind": "LValueToRValue",
 // CHECK-NEXT:          "inner": [
 // CHECK-NEXT:           {
@@ -1454,7 +1450,6 @@ void testParmVarDecl(int TestParmVarDecl);
 // CHECK-NEXT:  ]
 // CHECK-NEXT: }
 
-
 // CHECK:  "kind": "FunctionDecl",
 // CHECK-NEXT:  "loc": {
 // CHECK-NEXT:   "offset": 1168,
@@ -1623,7 +1618,6 @@ void testParmVarDecl(int TestParmVarDecl);
 // CHECK-NEXT:  }
 // CHECK-NEXT: }
 
-
 // CHECK:  "kind": "FieldDecl",
 // CHECK-NEXT:  "loc": {
 // CHECK-NEXT:   "offset": 1351,
@@ -1668,7 +1662,7 @@ void testParmVarDecl(int TestParmVarDecl);
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "int"
 // CHECK-NEXT:    },
-// CHECK-NEXT:    "valueCategory": "rvalue",
+// CHECK-NEXT:    "valueCategory": "prvalue",
 // CHECK-NEXT:    "value": "1",
 // CHECK-NEXT:    "inner": [
 // CHECK-NEXT:     {
@@ -1689,7 +1683,7 @@ void testParmVarDecl(int TestParmVarDecl);
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "int"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "value": "1"
 // CHECK-NEXT:     }
 // CHECK-NEXT:    ]
@@ -1697,7 +1691,6 @@ void testParmVarDecl(int TestParmVarDecl);
 // CHECK-NEXT:  ]
 // CHECK-NEXT: }
 
-
 // CHECK:  "kind": "VarDecl",
 // CHECK-NEXT:  "loc": {
 // CHECK-NEXT:   "offset": 1383,
@@ -1783,7 +1776,6 @@ void testParmVarDecl(int TestParmVarDecl);
 // CHECK-NEXT:  "tls": "static"
 // CHECK-NEXT: }
 
-
 // CHECK:  "kind": "VarDecl",
 // CHECK-NEXT:  "loc": {
 // CHECK-NEXT:   "offset": 1458,
@@ -1829,13 +1821,12 @@ void testParmVarDecl(int TestParmVarDecl);
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "int"
 // CHECK-NEXT:    },
-// CHECK-NEXT:    "valueCategory": "rvalue",
+// CHECK-NEXT:    "valueCategory": "prvalue",
 // CHECK-NEXT:    "value": "0"
 // CHECK-NEXT:   }
 // CHECK-NEXT:  ]
 // CHECK-NEXT: }
 
-
 // CHECK:  "kind": "ParmVarDecl",
 // CHECK-NEXT:  "loc": {
 // CHECK-NEXT:   "offset": 1505,

diff  --git a/clang/test/AST/ast-dump-decl-json.m b/clang/test/AST/ast-dump-decl-json.m
index be730039f9bf7..d21953624887e 100644
--- a/clang/test/AST/ast-dump-decl-json.m
+++ b/clang/test/AST/ast-dump-decl-json.m
@@ -349,7 +349,6 @@ void f() {
 // CHECK-NEXT:  ]
 // CHECK-NEXT: }
 
-
 // CHECK:  "kind": "ObjCMethodDecl",
 // CHECK-NEXT:  "loc": {
 // CHECK-NEXT:   "offset": 490,
@@ -490,7 +489,7 @@ void f() {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "value": "0"
 // CHECK-NEXT:       }
 // CHECK-NEXT:      ]
@@ -500,7 +499,6 @@ void f() {
 // CHECK-NEXT:  ]
 // CHECK-NEXT: }
 
-
 // CHECK:  "kind": "ObjCProtocolDecl",
 // CHECK-NEXT:  "loc": {
 // CHECK-NEXT:   "offset": 562,
@@ -1676,7 +1674,6 @@ void f() {
 // CHECK-NEXT:  ]
 // CHECK-NEXT: }
 
-
 // CHECK:  "kind": "FunctionDecl",
 // CHECK-NEXT:  "loc": {
 // CHECK-NEXT:   "offset": 1184,
@@ -1768,7 +1765,7 @@ void f() {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "void (^)(int, ...)"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "cleanupsHaveSideEffects": true,
 // CHECK-NEXT:      "cleanups": [
 // CHECK-NEXT:       {
@@ -1795,7 +1792,7 @@ void f() {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "void (^)(int, ...)"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
 // CHECK-NEXT:          "id": "0x{{.*}}",
@@ -1890,7 +1887,7 @@ void f() {
 // CHECK-NEXT:              "type": {
 // CHECK-NEXT:               "qualType": "int"
 // CHECK-NEXT:              },
-// CHECK-NEXT:              "valueCategory": "rvalue",
+// CHECK-NEXT:              "valueCategory": "prvalue",
 // CHECK-NEXT:              "castKind": "LValueToRValue",
 // CHECK-NEXT:              "inner": [
 // CHECK-NEXT:               {
@@ -1962,7 +1959,6 @@ void f() {
 // CHECK-NEXT:  ]
 // CHECK-NEXT: }
 
-
 // CHECK:  "kind": "VarDecl",
 // CHECK-NEXT:  "loc": {
 // CHECK-NEXT:   "offset": 1296,

diff  --git a/clang/test/AST/ast-dump-expr-json.c b/clang/test/AST/ast-dump-expr-json.c
index 2c7bdf08ee2f7..e37c6f17f0416 100644
--- a/clang/test/AST/ast-dump-expr-json.c
+++ b/clang/test/AST/ast-dump-expr-json.c
@@ -1,118 +1,118 @@
-// RUN: %clang_cc1 -triple x86_64-unknown-unknown -Wno-unused-value -std=gnu11 -ast-dump=json %s | FileCheck %s
-
-void Comma(void) {
-  1, 2, 3;
-}
-
-void Assignment(int a) {
-  a = 12;
-  a += a;
-}
-
-void Conditionals(int a) {
-  a ? 0 : 1;
-  a ?: 0;
-}
-
-void BinaryOperators(int a, int b) {
-  // Logical operators
-  a || b;
-  a && b;
-
-  // Bitwise operators
-  a | b;
-  a ^ b;
-  a & b;
-
-  // Equality operators
-  a == b;
-  a != b;
-
-  // Relational operators
-  a < b;
-  a > b;
-  a <= b;
-  a >= b;
-
-  // Bit shifting operators
-  a << b;
-  a >> b;
-
-  // Additive operators
-  a + b;
-  a - b;
-
-  // Multiplicative operators
-  a * b;
-  a / b;
-  a % b;
-}
-
-void UnaryOperators(int a, int *b) {
-  // Cast operators
-  (float)a;
-
-  // ++, --, and ~ are covered elsewhere.
-
-  -a;
-  +a;
-  &a;
-  *b;
-  !a;
-
-  sizeof a;
-  sizeof(int);
-  _Alignof(int);
-}
-
-struct S {
-  int a;
-};
-
-void PostfixOperators(int *a, struct S b, struct S *c) {
-  a[0];
-  UnaryOperators(*a, a);
-
-  b.a;
-  c->a;
-
-  // Postfix ++ and -- are covered elsewhere.
-
-  (int [4]){1, 2, 3, 4, };
-  (struct S){1};
-}
-
-enum E { One };
-
-void PrimaryExpressions(int a) {
-  a;
-  'a';
-  L'a';
-  "a";
-  L"a";
-  u8"a";
-  U"a";
-  u"a";
-
-  1;
-  1u;
-  1ll;
-  1.0;
-  1.0f;
-  0xFp100000000000000000000F;
-  1.0l;
-  One;
-
-  (a);
-}
-
+// RUN: %clang_cc1 -triple x86_64-unknown-unknown -Wno-unused-value -std=gnu11 -ast-dump=json %s | FileCheck %s
+
+void Comma(void) {
+  1, 2, 3;
+}
+
+void Assignment(int a) {
+  a = 12;
+  a += a;
+}
+
+void Conditionals(int a) {
+  a ? 0 : 1;
+  a ?: 0;
+}
+
+void BinaryOperators(int a, int b) {
+  // Logical operators
+  a || b;
+  a && b;
+
+  // Bitwise operators
+  a | b;
+  a ^ b;
+  a & b;
+
+  // Equality operators
+  a == b;
+  a != b;
+
+  // Relational operators
+  a < b;
+  a > b;
+  a <= b;
+  a >= b;
+
+  // Bit shifting operators
+  a << b;
+  a >> b;
+
+  // Additive operators
+  a + b;
+  a - b;
+
+  // Multiplicative operators
+  a * b;
+  a / b;
+  a % b;
+}
+
+void UnaryOperators(int a, int *b) {
+  // Cast operators
+  (float)a;
+
+  // ++, --, and ~ are covered elsewhere.
+
+  -a;
+  +a;
+  &a;
+  *b;
+  !a;
+
+  sizeof a;
+  sizeof(int);
+  _Alignof(int);
+}
+
+struct S {
+  int a;
+};
+
+void PostfixOperators(int *a, struct S b, struct S *c) {
+  a[0];
+  UnaryOperators(*a, a);
+
+  b.a;
+  c->a;
+
+  // Postfix ++ and -- are covered elsewhere.
+
+  (int [4]){1, 2, 3, 4, };
+  (struct S){1};
+}
+
+enum E { One };
+
+void PrimaryExpressions(int a) {
+  a;
+  'a';
+  L'a';
+  "a";
+  L"a";
+  u8"a";
+  U"a";
+  u"a";
+
+  1;
+  1u;
+  1ll;
+  1.0;
+  1.0f;
+  0xFp100000000000000000000F;
+  1.0l;
+  One;
+
+  (a);
+}
+
 // NOTE: CHECK lines have been autogenerated by gen_ast_dump_json_test.py
 // using --filters=FunctionDecl
 
 
 // CHECK:  "kind": "FunctionDecl",
 // CHECK-NEXT:  "loc": {
-// CHECK-NEXT:   "offset": 120,
+// CHECK-NEXT:   "offset": 118,
 // CHECK-NEXT:   "file": "{{.*}}",
 // CHECK-NEXT:   "line": 3,
 // CHECK-NEXT:   "col": 6,
@@ -120,12 +120,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
-// CHECK-NEXT:    "offset": 115,
+// CHECK-NEXT:    "offset": 113,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 4
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
-// CHECK-NEXT:    "offset": 147,
+// CHECK-NEXT:    "offset": 143,
 // CHECK-NEXT:    "line": 5,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
@@ -142,13 +142,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:    "kind": "CompoundStmt",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "offset": 132,
+// CHECK-NEXT:      "offset": 130,
 // CHECK-NEXT:      "line": 3,
 // CHECK-NEXT:      "col": 18,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "offset": 147,
+// CHECK-NEXT:      "offset": 143,
 // CHECK-NEXT:      "line": 5,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 1
@@ -160,13 +160,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "kind": "BinaryOperator",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
-// CHECK-NEXT:        "offset": 137,
+// CHECK-NEXT:        "offset": 134,
 // CHECK-NEXT:        "line": 4,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
-// CHECK-NEXT:        "offset": 143,
+// CHECK-NEXT:        "offset": 140,
 // CHECK-NEXT:        "col": 9,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -174,7 +174,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "int"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "opcode": ",",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
@@ -182,12 +182,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "BinaryOperator",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
-// CHECK-NEXT:          "offset": 137,
+// CHECK-NEXT:          "offset": 134,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "offset": 140,
+// CHECK-NEXT:          "offset": 137,
 // CHECK-NEXT:          "col": 6,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -195,7 +195,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "opcode": ",",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
@@ -203,12 +203,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "IntegerLiteral",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
-// CHECK-NEXT:            "offset": 137,
+// CHECK-NEXT:            "offset": 134,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
-// CHECK-NEXT:            "offset": 137,
+// CHECK-NEXT:            "offset": 134,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -216,7 +216,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "qualType": "int"
 // CHECK-NEXT:          },
-// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "valueCategory": "prvalue",
 // CHECK-NEXT:          "value": "1"
 // CHECK-NEXT:         },
 // CHECK-NEXT:         {
@@ -224,12 +224,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "IntegerLiteral",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
-// CHECK-NEXT:            "offset": 140,
+// CHECK-NEXT:            "offset": 137,
 // CHECK-NEXT:            "col": 6,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
-// CHECK-NEXT:            "offset": 140,
+// CHECK-NEXT:            "offset": 137,
 // CHECK-NEXT:            "col": 6,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -237,7 +237,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "qualType": "int"
 // CHECK-NEXT:          },
-// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "valueCategory": "prvalue",
 // CHECK-NEXT:          "value": "2"
 // CHECK-NEXT:         }
 // CHECK-NEXT:        ]
@@ -247,12 +247,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "IntegerLiteral",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
-// CHECK-NEXT:          "offset": 143,
+// CHECK-NEXT:          "offset": 140,
 // CHECK-NEXT:          "col": 9,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "offset": 143,
+// CHECK-NEXT:          "offset": 140,
 // CHECK-NEXT:          "col": 9,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -260,7 +260,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "value": "3"
 // CHECK-NEXT:       }
 // CHECK-NEXT:      ]
@@ -273,19 +273,19 @@ void PrimaryExpressions(int a) {
 
 // CHECK:  "kind": "FunctionDecl",
 // CHECK-NEXT:  "loc": {
-// CHECK-NEXT:   "offset": 157,
+// CHECK-NEXT:   "offset": 151,
 // CHECK-NEXT:   "line": 7,
 // CHECK-NEXT:   "col": 6,
 // CHECK-NEXT:   "tokLen": 10
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
-// CHECK-NEXT:    "offset": 152,
+// CHECK-NEXT:    "offset": 146,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 4
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
-// CHECK-NEXT:    "offset": 200,
+// CHECK-NEXT:    "offset": 191,
 // CHECK-NEXT:    "line": 10,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
@@ -301,19 +301,19 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "ParmVarDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "offset": 172,
+// CHECK-NEXT:     "offset": 166,
 // CHECK-NEXT:     "line": 7,
 // CHECK-NEXT:     "col": 21,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "offset": 168,
+// CHECK-NEXT:      "offset": 162,
 // CHECK-NEXT:      "col": 17,
 // CHECK-NEXT:      "tokLen": 3
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "offset": 172,
+// CHECK-NEXT:      "offset": 166,
 // CHECK-NEXT:      "col": 21,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -330,12 +330,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:    "kind": "CompoundStmt",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "offset": 175,
+// CHECK-NEXT:      "offset": 169,
 // CHECK-NEXT:      "col": 24,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "offset": 200,
+// CHECK-NEXT:      "offset": 191,
 // CHECK-NEXT:      "line": 10,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 1
@@ -347,13 +347,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "kind": "BinaryOperator",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
-// CHECK-NEXT:        "offset": 180,
+// CHECK-NEXT:        "offset": 173,
 // CHECK-NEXT:        "line": 8,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
-// CHECK-NEXT:        "offset": 184,
+// CHECK-NEXT:        "offset": 177,
 // CHECK-NEXT:        "col": 7,
 // CHECK-NEXT:        "tokLen": 2
 // CHECK-NEXT:       }
@@ -361,7 +361,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "int"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "opcode": "=",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
@@ -369,12 +369,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "DeclRefExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
-// CHECK-NEXT:          "offset": 180,
+// CHECK-NEXT:          "offset": 173,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "offset": 180,
+// CHECK-NEXT:          "offset": 173,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -397,12 +397,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "IntegerLiteral",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
-// CHECK-NEXT:          "offset": 184,
+// CHECK-NEXT:          "offset": 177,
 // CHECK-NEXT:          "col": 7,
 // CHECK-NEXT:          "tokLen": 2
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "offset": 184,
+// CHECK-NEXT:          "offset": 177,
 // CHECK-NEXT:          "col": 7,
 // CHECK-NEXT:          "tokLen": 2
 // CHECK-NEXT:         }
@@ -410,7 +410,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "value": "12"
 // CHECK-NEXT:       }
 // CHECK-NEXT:      ]
@@ -420,13 +420,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "kind": "CompoundAssignOperator",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
-// CHECK-NEXT:        "offset": 191,
+// CHECK-NEXT:        "offset": 183,
 // CHECK-NEXT:        "line": 9,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
-// CHECK-NEXT:        "offset": 196,
+// CHECK-NEXT:        "offset": 188,
 // CHECK-NEXT:        "col": 8,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -434,7 +434,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "int"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "opcode": "+=",
 // CHECK-NEXT:      "computeLHSType": {
 // CHECK-NEXT:       "qualType": "int"
@@ -448,12 +448,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "DeclRefExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
-// CHECK-NEXT:          "offset": 191,
+// CHECK-NEXT:          "offset": 183,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "offset": 191,
+// CHECK-NEXT:          "offset": 183,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -476,12 +476,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
-// CHECK-NEXT:          "offset": 196,
+// CHECK-NEXT:          "offset": 188,
 // CHECK-NEXT:          "col": 8,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "offset": 196,
+// CHECK-NEXT:          "offset": 188,
 // CHECK-NEXT:          "col": 8,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -489,7 +489,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "castKind": "LValueToRValue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
@@ -497,12 +497,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
-// CHECK-NEXT:            "offset": 196,
+// CHECK-NEXT:            "offset": 188,
 // CHECK-NEXT:            "col": 8,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
-// CHECK-NEXT:            "offset": 196,
+// CHECK-NEXT:            "offset": 188,
 // CHECK-NEXT:            "col": 8,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -532,19 +532,19 @@ void PrimaryExpressions(int a) {
 
 // CHECK:  "kind": "FunctionDecl",
 // CHECK-NEXT:  "loc": {
-// CHECK-NEXT:   "offset": 210,
+// CHECK-NEXT:   "offset": 199,
 // CHECK-NEXT:   "line": 12,
 // CHECK-NEXT:   "col": 6,
 // CHECK-NEXT:   "tokLen": 12
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
-// CHECK-NEXT:    "offset": 205,
+// CHECK-NEXT:    "offset": 194,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 4
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
-// CHECK-NEXT:    "offset": 258,
+// CHECK-NEXT:    "offset": 244,
 // CHECK-NEXT:    "line": 15,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
@@ -560,19 +560,19 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "ParmVarDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "offset": 227,
+// CHECK-NEXT:     "offset": 216,
 // CHECK-NEXT:     "line": 12,
 // CHECK-NEXT:     "col": 23,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "offset": 223,
+// CHECK-NEXT:      "offset": 212,
 // CHECK-NEXT:      "col": 19,
 // CHECK-NEXT:      "tokLen": 3
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "offset": 227,
+// CHECK-NEXT:      "offset": 216,
 // CHECK-NEXT:      "col": 23,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -589,12 +589,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:    "kind": "CompoundStmt",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "offset": 230,
+// CHECK-NEXT:      "offset": 219,
 // CHECK-NEXT:      "col": 26,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "offset": 258,
+// CHECK-NEXT:      "offset": 244,
 // CHECK-NEXT:      "line": 15,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 1
@@ -606,13 +606,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "kind": "ConditionalOperator",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
-// CHECK-NEXT:        "offset": 235,
+// CHECK-NEXT:        "offset": 223,
 // CHECK-NEXT:        "line": 13,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
-// CHECK-NEXT:        "offset": 243,
+// CHECK-NEXT:        "offset": 231,
 // CHECK-NEXT:        "col": 11,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -620,19 +620,19 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "int"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
 // CHECK-NEXT:        "id": "0x{{.*}}",
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
-// CHECK-NEXT:          "offset": 235,
+// CHECK-NEXT:          "offset": 223,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "offset": 235,
+// CHECK-NEXT:          "offset": 223,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -640,7 +640,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "castKind": "LValueToRValue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
@@ -648,12 +648,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
-// CHECK-NEXT:            "offset": 235,
+// CHECK-NEXT:            "offset": 223,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
-// CHECK-NEXT:            "offset": 235,
+// CHECK-NEXT:            "offset": 223,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -678,12 +678,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "IntegerLiteral",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
-// CHECK-NEXT:          "offset": 239,
+// CHECK-NEXT:          "offset": 227,
 // CHECK-NEXT:          "col": 7,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "offset": 239,
+// CHECK-NEXT:          "offset": 227,
 // CHECK-NEXT:          "col": 7,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -691,7 +691,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "value": "0"
 // CHECK-NEXT:       },
 // CHECK-NEXT:       {
@@ -699,12 +699,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "IntegerLiteral",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
-// CHECK-NEXT:          "offset": 243,
+// CHECK-NEXT:          "offset": 231,
 // CHECK-NEXT:          "col": 11,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "offset": 243,
+// CHECK-NEXT:          "offset": 231,
 // CHECK-NEXT:          "col": 11,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -712,7 +712,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "value": "1"
 // CHECK-NEXT:       }
 // CHECK-NEXT:      ]
@@ -722,13 +722,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "kind": "BinaryConditionalOperator",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
-// CHECK-NEXT:        "offset": 249,
+// CHECK-NEXT:        "offset": 236,
 // CHECK-NEXT:        "line": 14,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
-// CHECK-NEXT:        "offset": 254,
+// CHECK-NEXT:        "offset": 241,
 // CHECK-NEXT:        "col": 8,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -736,19 +736,19 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "int"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
 // CHECK-NEXT:        "id": "0x{{.*}}",
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
-// CHECK-NEXT:          "offset": 249,
+// CHECK-NEXT:          "offset": 236,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "offset": 249,
+// CHECK-NEXT:          "offset": 236,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -756,7 +756,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "castKind": "LValueToRValue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
@@ -764,12 +764,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
-// CHECK-NEXT:            "offset": 249,
+// CHECK-NEXT:            "offset": 236,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
-// CHECK-NEXT:            "offset": 249,
+// CHECK-NEXT:            "offset": 236,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -794,12 +794,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "OpaqueValueExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
-// CHECK-NEXT:          "offset": 249,
+// CHECK-NEXT:          "offset": 236,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "offset": 249,
+// CHECK-NEXT:          "offset": 236,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -807,19 +807,19 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
 // CHECK-NEXT:          "id": "0x{{.*}}",
 // CHECK-NEXT:          "kind": "ImplicitCastExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
-// CHECK-NEXT:            "offset": 249,
+// CHECK-NEXT:            "offset": 236,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
-// CHECK-NEXT:            "offset": 249,
+// CHECK-NEXT:            "offset": 236,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -827,7 +827,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "qualType": "int"
 // CHECK-NEXT:          },
-// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "valueCategory": "prvalue",
 // CHECK-NEXT:          "castKind": "LValueToRValue",
 // CHECK-NEXT:          "inner": [
 // CHECK-NEXT:           {
@@ -835,12 +835,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:            "kind": "DeclRefExpr",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
-// CHECK-NEXT:              "offset": 249,
+// CHECK-NEXT:              "offset": 236,
 // CHECK-NEXT:              "col": 3,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
-// CHECK-NEXT:              "offset": 249,
+// CHECK-NEXT:              "offset": 236,
 // CHECK-NEXT:              "col": 3,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -867,12 +867,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "OpaqueValueExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
-// CHECK-NEXT:          "offset": 249,
+// CHECK-NEXT:          "offset": 236,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "offset": 249,
+// CHECK-NEXT:          "offset": 236,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -880,19 +880,19 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
 // CHECK-NEXT:          "id": "0x{{.*}}",
 // CHECK-NEXT:          "kind": "ImplicitCastExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
-// CHECK-NEXT:            "offset": 249,
+// CHECK-NEXT:            "offset": 236,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
-// CHECK-NEXT:            "offset": 249,
+// CHECK-NEXT:            "offset": 236,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -900,7 +900,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "qualType": "int"
 // CHECK-NEXT:          },
-// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "valueCategory": "prvalue",
 // CHECK-NEXT:          "castKind": "LValueToRValue",
 // CHECK-NEXT:          "inner": [
 // CHECK-NEXT:           {
@@ -908,12 +908,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:            "kind": "DeclRefExpr",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
-// CHECK-NEXT:              "offset": 249,
+// CHECK-NEXT:              "offset": 236,
 // CHECK-NEXT:              "col": 3,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
-// CHECK-NEXT:              "offset": 249,
+// CHECK-NEXT:              "offset": 236,
 // CHECK-NEXT:              "col": 3,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -940,12 +940,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "IntegerLiteral",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
-// CHECK-NEXT:          "offset": 254,
+// CHECK-NEXT:          "offset": 241,
 // CHECK-NEXT:          "col": 8,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "offset": 254,
+// CHECK-NEXT:          "offset": 241,
 // CHECK-NEXT:          "col": 8,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -953,7 +953,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "value": "0"
 // CHECK-NEXT:       }
 // CHECK-NEXT:      ]
@@ -966,19 +966,19 @@ void PrimaryExpressions(int a) {
 
 // CHECK:  "kind": "FunctionDecl",
 // CHECK-NEXT:  "loc": {
-// CHECK-NEXT:   "offset": 268,
+// CHECK-NEXT:   "offset": 252,
 // CHECK-NEXT:   "line": 17,
 // CHECK-NEXT:   "col": 6,
 // CHECK-NEXT:   "tokLen": 15
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
-// CHECK-NEXT:    "offset": 263,
+// CHECK-NEXT:    "offset": 247,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 4
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
-// CHECK-NEXT:    "offset": 686,
+// CHECK-NEXT:    "offset": 638,
 // CHECK-NEXT:    "line": 49,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
@@ -994,19 +994,19 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "ParmVarDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "offset": 288,
+// CHECK-NEXT:     "offset": 272,
 // CHECK-NEXT:     "line": 17,
 // CHECK-NEXT:     "col": 26,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "offset": 284,
+// CHECK-NEXT:      "offset": 268,
 // CHECK-NEXT:      "col": 22,
 // CHECK-NEXT:      "tokLen": 3
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "offset": 288,
+// CHECK-NEXT:      "offset": 272,
 // CHECK-NEXT:      "col": 26,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -1022,18 +1022,18 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "ParmVarDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "offset": 295,
+// CHECK-NEXT:     "offset": 279,
 // CHECK-NEXT:     "col": 33,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "offset": 291,
+// CHECK-NEXT:      "offset": 275,
 // CHECK-NEXT:      "col": 29,
 // CHECK-NEXT:      "tokLen": 3
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "offset": 295,
+// CHECK-NEXT:      "offset": 279,
 // CHECK-NEXT:      "col": 33,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -1050,12 +1050,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:    "kind": "CompoundStmt",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "offset": 298,
+// CHECK-NEXT:      "offset": 282,
 // CHECK-NEXT:      "col": 36,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "offset": 686,
+// CHECK-NEXT:      "offset": 638,
 // CHECK-NEXT:      "line": 49,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 1
@@ -1067,13 +1067,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "kind": "BinaryOperator",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
-// CHECK-NEXT:        "offset": 327,
+// CHECK-NEXT:        "offset": 309,
 // CHECK-NEXT:        "line": 19,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
-// CHECK-NEXT:        "offset": 332,
+// CHECK-NEXT:        "offset": 314,
 // CHECK-NEXT:        "col": 8,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -1081,7 +1081,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "int"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "opcode": "||",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
@@ -1089,12 +1089,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
-// CHECK-NEXT:          "offset": 327,
+// CHECK-NEXT:          "offset": 309,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "offset": 327,
+// CHECK-NEXT:          "offset": 309,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -1102,7 +1102,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "castKind": "LValueToRValue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
@@ -1110,12 +1110,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
-// CHECK-NEXT:            "offset": 327,
+// CHECK-NEXT:            "offset": 309,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
-// CHECK-NEXT:            "offset": 327,
+// CHECK-NEXT:            "offset": 309,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -1140,12 +1140,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
-// CHECK-NEXT:          "offset": 332,
+// CHECK-NEXT:          "offset": 314,
 // CHECK-NEXT:          "col": 8,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "offset": 332,
+// CHECK-NEXT:          "offset": 314,
 // CHECK-NEXT:          "col": 8,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -1153,7 +1153,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "castKind": "LValueToRValue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
@@ -1161,12 +1161,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
-// CHECK-NEXT:            "offset": 332,
+// CHECK-NEXT:            "offset": 314,
 // CHECK-NEXT:            "col": 8,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
-// CHECK-NEXT:            "offset": 332,
+// CHECK-NEXT:            "offset": 314,
 // CHECK-NEXT:            "col": 8,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -1193,13 +1193,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "kind": "BinaryOperator",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
-// CHECK-NEXT:        "offset": 338,
+// CHECK-NEXT:        "offset": 319,
 // CHECK-NEXT:        "line": 20,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
-// CHECK-NEXT:        "offset": 343,
+// CHECK-NEXT:        "offset": 324,
 // CHECK-NEXT:        "col": 8,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -1207,7 +1207,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "int"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "opcode": "&&",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
@@ -1215,12 +1215,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
-// CHECK-NEXT:          "offset": 338,
+// CHECK-NEXT:          "offset": 319,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "offset": 338,
+// CHECK-NEXT:          "offset": 319,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -1228,7 +1228,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "castKind": "LValueToRValue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
@@ -1236,12 +1236,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
-// CHECK-NEXT:            "offset": 338,
+// CHECK-NEXT:            "offset": 319,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
-// CHECK-NEXT:            "offset": 338,
+// CHECK-NEXT:            "offset": 319,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -1266,12 +1266,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
-// CHECK-NEXT:          "offset": 343,
+// CHECK-NEXT:          "offset": 324,
 // CHECK-NEXT:          "col": 8,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "offset": 343,
+// CHECK-NEXT:          "offset": 324,
 // CHECK-NEXT:          "col": 8,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -1279,7 +1279,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "castKind": "LValueToRValue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
@@ -1287,12 +1287,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
-// CHECK-NEXT:            "offset": 343,
+// CHECK-NEXT:            "offset": 324,
 // CHECK-NEXT:            "col": 8,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
-// CHECK-NEXT:            "offset": 343,
+// CHECK-NEXT:            "offset": 324,
 // CHECK-NEXT:            "col": 8,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -1319,13 +1319,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "kind": "BinaryOperator",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
-// CHECK-NEXT:        "offset": 375,
+// CHECK-NEXT:        "offset": 353,
 // CHECK-NEXT:        "line": 23,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
-// CHECK-NEXT:        "offset": 379,
+// CHECK-NEXT:        "offset": 357,
 // CHECK-NEXT:        "col": 7,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -1333,7 +1333,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "int"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "opcode": "|",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
@@ -1341,12 +1341,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
-// CHECK-NEXT:          "offset": 375,
+// CHECK-NEXT:          "offset": 353,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "offset": 375,
+// CHECK-NEXT:          "offset": 353,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -1354,7 +1354,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "castKind": "LValueToRValue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
@@ -1362,12 +1362,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
-// CHECK-NEXT:            "offset": 375,
+// CHECK-NEXT:            "offset": 353,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
-// CHECK-NEXT:            "offset": 375,
+// CHECK-NEXT:            "offset": 353,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -1392,12 +1392,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
-// CHECK-NEXT:          "offset": 379,
+// CHECK-NEXT:          "offset": 357,
 // CHECK-NEXT:          "col": 7,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "offset": 379,
+// CHECK-NEXT:          "offset": 357,
 // CHECK-NEXT:          "col": 7,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -1405,7 +1405,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "castKind": "LValueToRValue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
@@ -1413,12 +1413,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
-// CHECK-NEXT:            "offset": 379,
+// CHECK-NEXT:            "offset": 357,
 // CHECK-NEXT:            "col": 7,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
-// CHECK-NEXT:            "offset": 379,
+// CHECK-NEXT:            "offset": 357,
 // CHECK-NEXT:            "col": 7,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -1445,13 +1445,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "kind": "BinaryOperator",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
-// CHECK-NEXT:        "offset": 385,
+// CHECK-NEXT:        "offset": 362,
 // CHECK-NEXT:        "line": 24,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
-// CHECK-NEXT:        "offset": 389,
+// CHECK-NEXT:        "offset": 366,
 // CHECK-NEXT:        "col": 7,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -1459,7 +1459,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "int"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "opcode": "^",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
@@ -1467,12 +1467,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
-// CHECK-NEXT:          "offset": 385,
+// CHECK-NEXT:          "offset": 362,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "offset": 385,
+// CHECK-NEXT:          "offset": 362,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -1480,7 +1480,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "castKind": "LValueToRValue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
@@ -1488,12 +1488,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
-// CHECK-NEXT:            "offset": 385,
+// CHECK-NEXT:            "offset": 362,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
-// CHECK-NEXT:            "offset": 385,
+// CHECK-NEXT:            "offset": 362,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -1518,12 +1518,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
-// CHECK-NEXT:          "offset": 389,
+// CHECK-NEXT:          "offset": 366,
 // CHECK-NEXT:          "col": 7,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "offset": 389,
+// CHECK-NEXT:          "offset": 366,
 // CHECK-NEXT:          "col": 7,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -1531,7 +1531,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "castKind": "LValueToRValue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
@@ -1539,12 +1539,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
-// CHECK-NEXT:            "offset": 389,
+// CHECK-NEXT:            "offset": 366,
 // CHECK-NEXT:            "col": 7,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
-// CHECK-NEXT:            "offset": 389,
+// CHECK-NEXT:            "offset": 366,
 // CHECK-NEXT:            "col": 7,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -1571,13 +1571,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "kind": "BinaryOperator",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
-// CHECK-NEXT:        "offset": 395,
+// CHECK-NEXT:        "offset": 371,
 // CHECK-NEXT:        "line": 25,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
-// CHECK-NEXT:        "offset": 399,
+// CHECK-NEXT:        "offset": 375,
 // CHECK-NEXT:        "col": 7,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -1585,7 +1585,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "int"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "opcode": "&",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
@@ -1593,12 +1593,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
-// CHECK-NEXT:          "offset": 395,
+// CHECK-NEXT:          "offset": 371,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "offset": 395,
+// CHECK-NEXT:          "offset": 371,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -1606,7 +1606,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "castKind": "LValueToRValue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
@@ -1614,12 +1614,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
-// CHECK-NEXT:            "offset": 395,
+// CHECK-NEXT:            "offset": 371,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
-// CHECK-NEXT:            "offset": 395,
+// CHECK-NEXT:            "offset": 371,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -1644,12 +1644,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
-// CHECK-NEXT:          "offset": 399,
+// CHECK-NEXT:          "offset": 375,
 // CHECK-NEXT:          "col": 7,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "offset": 399,
+// CHECK-NEXT:          "offset": 375,
 // CHECK-NEXT:          "col": 7,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -1657,7 +1657,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "castKind": "LValueToRValue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
@@ -1665,12 +1665,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
-// CHECK-NEXT:            "offset": 399,
+// CHECK-NEXT:            "offset": 375,
 // CHECK-NEXT:            "col": 7,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
-// CHECK-NEXT:            "offset": 399,
+// CHECK-NEXT:            "offset": 375,
 // CHECK-NEXT:            "col": 7,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -1697,13 +1697,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "kind": "BinaryOperator",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
-// CHECK-NEXT:        "offset": 432,
+// CHECK-NEXT:        "offset": 405,
 // CHECK-NEXT:        "line": 28,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
-// CHECK-NEXT:        "offset": 437,
+// CHECK-NEXT:        "offset": 410,
 // CHECK-NEXT:        "col": 8,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -1711,7 +1711,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "int"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "opcode": "==",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
@@ -1719,12 +1719,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
-// CHECK-NEXT:          "offset": 432,
+// CHECK-NEXT:          "offset": 405,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "offset": 432,
+// CHECK-NEXT:          "offset": 405,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -1732,7 +1732,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "castKind": "LValueToRValue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
@@ -1740,12 +1740,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
-// CHECK-NEXT:            "offset": 432,
+// CHECK-NEXT:            "offset": 405,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
-// CHECK-NEXT:            "offset": 432,
+// CHECK-NEXT:            "offset": 405,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -1770,12 +1770,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
-// CHECK-NEXT:          "offset": 437,
+// CHECK-NEXT:          "offset": 410,
 // CHECK-NEXT:          "col": 8,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "offset": 437,
+// CHECK-NEXT:          "offset": 410,
 // CHECK-NEXT:          "col": 8,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -1783,7 +1783,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "castKind": "LValueToRValue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
@@ -1791,12 +1791,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
-// CHECK-NEXT:            "offset": 437,
+// CHECK-NEXT:            "offset": 410,
 // CHECK-NEXT:            "col": 8,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
-// CHECK-NEXT:            "offset": 437,
+// CHECK-NEXT:            "offset": 410,
 // CHECK-NEXT:            "col": 8,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -1823,13 +1823,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "kind": "BinaryOperator",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
-// CHECK-NEXT:        "offset": 443,
+// CHECK-NEXT:        "offset": 415,
 // CHECK-NEXT:        "line": 29,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
-// CHECK-NEXT:        "offset": 448,
+// CHECK-NEXT:        "offset": 420,
 // CHECK-NEXT:        "col": 8,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -1837,7 +1837,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "int"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "opcode": "!=",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
@@ -1845,12 +1845,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
-// CHECK-NEXT:          "offset": 443,
+// CHECK-NEXT:          "offset": 415,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "offset": 443,
+// CHECK-NEXT:          "offset": 415,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -1858,7 +1858,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "castKind": "LValueToRValue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
@@ -1866,12 +1866,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
-// CHECK-NEXT:            "offset": 443,
+// CHECK-NEXT:            "offset": 415,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
-// CHECK-NEXT:            "offset": 443,
+// CHECK-NEXT:            "offset": 415,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -1896,12 +1896,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
-// CHECK-NEXT:          "offset": 448,
+// CHECK-NEXT:          "offset": 420,
 // CHECK-NEXT:          "col": 8,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "offset": 448,
+// CHECK-NEXT:          "offset": 420,
 // CHECK-NEXT:          "col": 8,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -1909,7 +1909,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "castKind": "LValueToRValue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
@@ -1917,12 +1917,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
-// CHECK-NEXT:            "offset": 448,
+// CHECK-NEXT:            "offset": 420,
 // CHECK-NEXT:            "col": 8,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
-// CHECK-NEXT:            "offset": 448,
+// CHECK-NEXT:            "offset": 420,
 // CHECK-NEXT:            "col": 8,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -1949,13 +1949,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "kind": "BinaryOperator",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
-// CHECK-NEXT:        "offset": 483,
+// CHECK-NEXT:        "offset": 452,
 // CHECK-NEXT:        "line": 32,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
-// CHECK-NEXT:        "offset": 487,
+// CHECK-NEXT:        "offset": 456,
 // CHECK-NEXT:        "col": 7,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -1963,7 +1963,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "int"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "opcode": "<",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
@@ -1971,12 +1971,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
-// CHECK-NEXT:          "offset": 483,
+// CHECK-NEXT:          "offset": 452,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "offset": 483,
+// CHECK-NEXT:          "offset": 452,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -1984,7 +1984,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "castKind": "LValueToRValue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
@@ -1992,12 +1992,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
-// CHECK-NEXT:            "offset": 483,
+// CHECK-NEXT:            "offset": 452,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
-// CHECK-NEXT:            "offset": 483,
+// CHECK-NEXT:            "offset": 452,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -2022,12 +2022,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
-// CHECK-NEXT:          "offset": 487,
+// CHECK-NEXT:          "offset": 456,
 // CHECK-NEXT:          "col": 7,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "offset": 487,
+// CHECK-NEXT:          "offset": 456,
 // CHECK-NEXT:          "col": 7,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -2035,7 +2035,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "castKind": "LValueToRValue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
@@ -2043,12 +2043,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
-// CHECK-NEXT:            "offset": 487,
+// CHECK-NEXT:            "offset": 456,
 // CHECK-NEXT:            "col": 7,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
-// CHECK-NEXT:            "offset": 487,
+// CHECK-NEXT:            "offset": 456,
 // CHECK-NEXT:            "col": 7,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -2075,13 +2075,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "kind": "BinaryOperator",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
-// CHECK-NEXT:        "offset": 493,
+// CHECK-NEXT:        "offset": 461,
 // CHECK-NEXT:        "line": 33,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
-// CHECK-NEXT:        "offset": 497,
+// CHECK-NEXT:        "offset": 465,
 // CHECK-NEXT:        "col": 7,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -2089,7 +2089,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "int"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "opcode": ">",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
@@ -2097,12 +2097,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
-// CHECK-NEXT:          "offset": 493,
+// CHECK-NEXT:          "offset": 461,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "offset": 493,
+// CHECK-NEXT:          "offset": 461,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -2110,7 +2110,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "castKind": "LValueToRValue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
@@ -2118,12 +2118,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
-// CHECK-NEXT:            "offset": 493,
+// CHECK-NEXT:            "offset": 461,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
-// CHECK-NEXT:            "offset": 493,
+// CHECK-NEXT:            "offset": 461,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -2148,12 +2148,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
-// CHECK-NEXT:          "offset": 497,
+// CHECK-NEXT:          "offset": 465,
 // CHECK-NEXT:          "col": 7,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "offset": 497,
+// CHECK-NEXT:          "offset": 465,
 // CHECK-NEXT:          "col": 7,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -2161,7 +2161,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "castKind": "LValueToRValue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
@@ -2169,12 +2169,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
-// CHECK-NEXT:            "offset": 497,
+// CHECK-NEXT:            "offset": 465,
 // CHECK-NEXT:            "col": 7,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
-// CHECK-NEXT:            "offset": 497,
+// CHECK-NEXT:            "offset": 465,
 // CHECK-NEXT:            "col": 7,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -2201,13 +2201,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "kind": "BinaryOperator",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
-// CHECK-NEXT:        "offset": 503,
+// CHECK-NEXT:        "offset": 470,
 // CHECK-NEXT:        "line": 34,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
-// CHECK-NEXT:        "offset": 508,
+// CHECK-NEXT:        "offset": 475,
 // CHECK-NEXT:        "col": 8,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -2215,7 +2215,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "int"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "opcode": "<=",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
@@ -2223,12 +2223,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
-// CHECK-NEXT:          "offset": 503,
+// CHECK-NEXT:          "offset": 470,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "offset": 503,
+// CHECK-NEXT:          "offset": 470,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -2236,7 +2236,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "castKind": "LValueToRValue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
@@ -2244,12 +2244,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
-// CHECK-NEXT:            "offset": 503,
+// CHECK-NEXT:            "offset": 470,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
-// CHECK-NEXT:            "offset": 503,
+// CHECK-NEXT:            "offset": 470,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -2274,12 +2274,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
-// CHECK-NEXT:          "offset": 508,
+// CHECK-NEXT:          "offset": 475,
 // CHECK-NEXT:          "col": 8,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "offset": 508,
+// CHECK-NEXT:          "offset": 475,
 // CHECK-NEXT:          "col": 8,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -2287,7 +2287,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "castKind": "LValueToRValue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
@@ -2295,12 +2295,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
-// CHECK-NEXT:            "offset": 508,
+// CHECK-NEXT:            "offset": 475,
 // CHECK-NEXT:            "col": 8,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
-// CHECK-NEXT:            "offset": 508,
+// CHECK-NEXT:            "offset": 475,
 // CHECK-NEXT:            "col": 8,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -2327,13 +2327,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "kind": "BinaryOperator",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
-// CHECK-NEXT:        "offset": 514,
+// CHECK-NEXT:        "offset": 480,
 // CHECK-NEXT:        "line": 35,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
-// CHECK-NEXT:        "offset": 519,
+// CHECK-NEXT:        "offset": 485,
 // CHECK-NEXT:        "col": 8,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -2341,7 +2341,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "int"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "opcode": ">=",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
@@ -2349,12 +2349,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
-// CHECK-NEXT:          "offset": 514,
+// CHECK-NEXT:          "offset": 480,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "offset": 514,
+// CHECK-NEXT:          "offset": 480,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -2362,7 +2362,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "castKind": "LValueToRValue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
@@ -2370,12 +2370,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
-// CHECK-NEXT:            "offset": 514,
+// CHECK-NEXT:            "offset": 480,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
-// CHECK-NEXT:            "offset": 514,
+// CHECK-NEXT:            "offset": 480,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -2400,12 +2400,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
-// CHECK-NEXT:          "offset": 519,
+// CHECK-NEXT:          "offset": 485,
 // CHECK-NEXT:          "col": 8,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "offset": 519,
+// CHECK-NEXT:          "offset": 485,
 // CHECK-NEXT:          "col": 8,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -2413,7 +2413,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "castKind": "LValueToRValue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
@@ -2421,12 +2421,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
-// CHECK-NEXT:            "offset": 519,
+// CHECK-NEXT:            "offset": 485,
 // CHECK-NEXT:            "col": 8,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
-// CHECK-NEXT:            "offset": 519,
+// CHECK-NEXT:            "offset": 485,
 // CHECK-NEXT:            "col": 8,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -2453,13 +2453,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "kind": "BinaryOperator",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
-// CHECK-NEXT:        "offset": 556,
+// CHECK-NEXT:        "offset": 519,
 // CHECK-NEXT:        "line": 38,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
-// CHECK-NEXT:        "offset": 561,
+// CHECK-NEXT:        "offset": 524,
 // CHECK-NEXT:        "col": 8,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -2467,7 +2467,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "int"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "opcode": "<<",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
@@ -2475,12 +2475,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
-// CHECK-NEXT:          "offset": 556,
+// CHECK-NEXT:          "offset": 519,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "offset": 556,
+// CHECK-NEXT:          "offset": 519,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -2488,7 +2488,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "castKind": "LValueToRValue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
@@ -2496,12 +2496,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
-// CHECK-NEXT:            "offset": 556,
+// CHECK-NEXT:            "offset": 519,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
-// CHECK-NEXT:            "offset": 556,
+// CHECK-NEXT:            "offset": 519,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -2526,12 +2526,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
-// CHECK-NEXT:          "offset": 561,
+// CHECK-NEXT:          "offset": 524,
 // CHECK-NEXT:          "col": 8,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "offset": 561,
+// CHECK-NEXT:          "offset": 524,
 // CHECK-NEXT:          "col": 8,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -2539,7 +2539,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "castKind": "LValueToRValue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
@@ -2547,12 +2547,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
-// CHECK-NEXT:            "offset": 561,
+// CHECK-NEXT:            "offset": 524,
 // CHECK-NEXT:            "col": 8,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
-// CHECK-NEXT:            "offset": 561,
+// CHECK-NEXT:            "offset": 524,
 // CHECK-NEXT:            "col": 8,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -2579,13 +2579,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "kind": "BinaryOperator",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
-// CHECK-NEXT:        "offset": 567,
+// CHECK-NEXT:        "offset": 529,
 // CHECK-NEXT:        "line": 39,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
-// CHECK-NEXT:        "offset": 572,
+// CHECK-NEXT:        "offset": 534,
 // CHECK-NEXT:        "col": 8,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -2593,7 +2593,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "int"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "opcode": ">>",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
@@ -2601,12 +2601,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
-// CHECK-NEXT:          "offset": 567,
+// CHECK-NEXT:          "offset": 529,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "offset": 567,
+// CHECK-NEXT:          "offset": 529,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -2614,7 +2614,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "castKind": "LValueToRValue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
@@ -2622,12 +2622,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
-// CHECK-NEXT:            "offset": 567,
+// CHECK-NEXT:            "offset": 529,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
-// CHECK-NEXT:            "offset": 567,
+// CHECK-NEXT:            "offset": 529,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -2652,12 +2652,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
-// CHECK-NEXT:          "offset": 572,
+// CHECK-NEXT:          "offset": 534,
 // CHECK-NEXT:          "col": 8,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "offset": 572,
+// CHECK-NEXT:          "offset": 534,
 // CHECK-NEXT:          "col": 8,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -2665,7 +2665,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "castKind": "LValueToRValue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
@@ -2673,12 +2673,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
-// CHECK-NEXT:            "offset": 572,
+// CHECK-NEXT:            "offset": 534,
 // CHECK-NEXT:            "col": 8,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
-// CHECK-NEXT:            "offset": 572,
+// CHECK-NEXT:            "offset": 534,
 // CHECK-NEXT:            "col": 8,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -2705,13 +2705,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "kind": "BinaryOperator",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
-// CHECK-NEXT:        "offset": 605,
+// CHECK-NEXT:        "offset": 564,
 // CHECK-NEXT:        "line": 42,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
-// CHECK-NEXT:        "offset": 609,
+// CHECK-NEXT:        "offset": 568,
 // CHECK-NEXT:        "col": 7,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -2719,7 +2719,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "int"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "opcode": "+",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
@@ -2727,12 +2727,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
-// CHECK-NEXT:          "offset": 605,
+// CHECK-NEXT:          "offset": 564,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "offset": 605,
+// CHECK-NEXT:          "offset": 564,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -2740,7 +2740,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "castKind": "LValueToRValue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
@@ -2748,12 +2748,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
-// CHECK-NEXT:            "offset": 605,
+// CHECK-NEXT:            "offset": 564,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
-// CHECK-NEXT:            "offset": 605,
+// CHECK-NEXT:            "offset": 564,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -2778,12 +2778,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
-// CHECK-NEXT:          "offset": 609,
+// CHECK-NEXT:          "offset": 568,
 // CHECK-NEXT:          "col": 7,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "offset": 609,
+// CHECK-NEXT:          "offset": 568,
 // CHECK-NEXT:          "col": 7,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -2791,7 +2791,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "castKind": "LValueToRValue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
@@ -2799,12 +2799,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
-// CHECK-NEXT:            "offset": 609,
+// CHECK-NEXT:            "offset": 568,
 // CHECK-NEXT:            "col": 7,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
-// CHECK-NEXT:            "offset": 609,
+// CHECK-NEXT:            "offset": 568,
 // CHECK-NEXT:            "col": 7,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -2831,13 +2831,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "kind": "BinaryOperator",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
-// CHECK-NEXT:        "offset": 615,
+// CHECK-NEXT:        "offset": 573,
 // CHECK-NEXT:        "line": 43,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
-// CHECK-NEXT:        "offset": 619,
+// CHECK-NEXT:        "offset": 577,
 // CHECK-NEXT:        "col": 7,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -2845,7 +2845,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "int"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "opcode": "-",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
@@ -2853,12 +2853,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
-// CHECK-NEXT:          "offset": 615,
+// CHECK-NEXT:          "offset": 573,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "offset": 615,
+// CHECK-NEXT:          "offset": 573,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -2866,7 +2866,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "castKind": "LValueToRValue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
@@ -2874,12 +2874,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
-// CHECK-NEXT:            "offset": 615,
+// CHECK-NEXT:            "offset": 573,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
-// CHECK-NEXT:            "offset": 615,
+// CHECK-NEXT:            "offset": 573,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -2904,12 +2904,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
-// CHECK-NEXT:          "offset": 619,
+// CHECK-NEXT:          "offset": 577,
 // CHECK-NEXT:          "col": 7,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "offset": 619,
+// CHECK-NEXT:          "offset": 577,
 // CHECK-NEXT:          "col": 7,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -2917,7 +2917,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "castKind": "LValueToRValue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
@@ -2925,12 +2925,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
-// CHECK-NEXT:            "offset": 619,
+// CHECK-NEXT:            "offset": 577,
 // CHECK-NEXT:            "col": 7,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
-// CHECK-NEXT:            "offset": 619,
+// CHECK-NEXT:            "offset": 577,
 // CHECK-NEXT:            "col": 7,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -2957,13 +2957,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "kind": "BinaryOperator",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
-// CHECK-NEXT:        "offset": 658,
+// CHECK-NEXT:        "offset": 613,
 // CHECK-NEXT:        "line": 46,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
-// CHECK-NEXT:        "offset": 662,
+// CHECK-NEXT:        "offset": 617,
 // CHECK-NEXT:        "col": 7,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -2971,7 +2971,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "int"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "opcode": "*",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
@@ -2979,12 +2979,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
-// CHECK-NEXT:          "offset": 658,
+// CHECK-NEXT:          "offset": 613,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "offset": 658,
+// CHECK-NEXT:          "offset": 613,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -2992,7 +2992,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "castKind": "LValueToRValue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
@@ -3000,12 +3000,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
-// CHECK-NEXT:            "offset": 658,
+// CHECK-NEXT:            "offset": 613,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
-// CHECK-NEXT:            "offset": 658,
+// CHECK-NEXT:            "offset": 613,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -3030,12 +3030,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
-// CHECK-NEXT:          "offset": 662,
+// CHECK-NEXT:          "offset": 617,
 // CHECK-NEXT:          "col": 7,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "offset": 662,
+// CHECK-NEXT:          "offset": 617,
 // CHECK-NEXT:          "col": 7,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -3043,7 +3043,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "castKind": "LValueToRValue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
@@ -3051,12 +3051,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
-// CHECK-NEXT:            "offset": 662,
+// CHECK-NEXT:            "offset": 617,
 // CHECK-NEXT:            "col": 7,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
-// CHECK-NEXT:            "offset": 662,
+// CHECK-NEXT:            "offset": 617,
 // CHECK-NEXT:            "col": 7,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -3083,13 +3083,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "kind": "BinaryOperator",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
-// CHECK-NEXT:        "offset": 668,
+// CHECK-NEXT:        "offset": 622,
 // CHECK-NEXT:        "line": 47,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
-// CHECK-NEXT:        "offset": 672,
+// CHECK-NEXT:        "offset": 626,
 // CHECK-NEXT:        "col": 7,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -3097,7 +3097,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "int"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "opcode": "/",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
@@ -3105,12 +3105,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
-// CHECK-NEXT:          "offset": 668,
+// CHECK-NEXT:          "offset": 622,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "offset": 668,
+// CHECK-NEXT:          "offset": 622,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -3118,7 +3118,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "castKind": "LValueToRValue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
@@ -3126,12 +3126,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
-// CHECK-NEXT:            "offset": 668,
+// CHECK-NEXT:            "offset": 622,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
-// CHECK-NEXT:            "offset": 668,
+// CHECK-NEXT:            "offset": 622,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -3156,12 +3156,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
-// CHECK-NEXT:          "offset": 672,
+// CHECK-NEXT:          "offset": 626,
 // CHECK-NEXT:          "col": 7,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "offset": 672,
+// CHECK-NEXT:          "offset": 626,
 // CHECK-NEXT:          "col": 7,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -3169,7 +3169,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "castKind": "LValueToRValue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
@@ -3177,12 +3177,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
-// CHECK-NEXT:            "offset": 672,
+// CHECK-NEXT:            "offset": 626,
 // CHECK-NEXT:            "col": 7,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
-// CHECK-NEXT:            "offset": 672,
+// CHECK-NEXT:            "offset": 626,
 // CHECK-NEXT:            "col": 7,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -3209,13 +3209,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "kind": "BinaryOperator",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
-// CHECK-NEXT:        "offset": 678,
+// CHECK-NEXT:        "offset": 631,
 // CHECK-NEXT:        "line": 48,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
-// CHECK-NEXT:        "offset": 682,
+// CHECK-NEXT:        "offset": 635,
 // CHECK-NEXT:        "col": 7,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -3223,7 +3223,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "int"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "opcode": "%",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
@@ -3231,12 +3231,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
-// CHECK-NEXT:          "offset": 678,
+// CHECK-NEXT:          "offset": 631,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "offset": 678,
+// CHECK-NEXT:          "offset": 631,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -3244,7 +3244,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "castKind": "LValueToRValue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
@@ -3252,12 +3252,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
-// CHECK-NEXT:            "offset": 678,
+// CHECK-NEXT:            "offset": 631,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
-// CHECK-NEXT:            "offset": 678,
+// CHECK-NEXT:            "offset": 631,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -3282,12 +3282,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
-// CHECK-NEXT:          "offset": 682,
+// CHECK-NEXT:          "offset": 635,
 // CHECK-NEXT:          "col": 7,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "offset": 682,
+// CHECK-NEXT:          "offset": 635,
 // CHECK-NEXT:          "col": 7,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -3295,7 +3295,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "castKind": "LValueToRValue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
@@ -3303,12 +3303,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
-// CHECK-NEXT:            "offset": 682,
+// CHECK-NEXT:            "offset": 635,
 // CHECK-NEXT:            "col": 7,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
-// CHECK-NEXT:            "offset": 682,
+// CHECK-NEXT:            "offset": 635,
 // CHECK-NEXT:            "col": 7,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -3338,19 +3338,19 @@ void PrimaryExpressions(int a) {
 
 // CHECK:  "kind": "FunctionDecl",
 // CHECK-NEXT:  "loc": {
-// CHECK-NEXT:   "offset": 696,
+// CHECK-NEXT:   "offset": 646,
 // CHECK-NEXT:   "line": 51,
 // CHECK-NEXT:   "col": 6,
 // CHECK-NEXT:   "tokLen": 14
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
-// CHECK-NEXT:    "offset": 691,
+// CHECK-NEXT:    "offset": 641,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 4
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
-// CHECK-NEXT:    "offset": 894,
+// CHECK-NEXT:    "offset": 829,
 // CHECK-NEXT:    "line": 66,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
@@ -3367,19 +3367,19 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "ParmVarDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "offset": 715,
+// CHECK-NEXT:     "offset": 665,
 // CHECK-NEXT:     "line": 51,
 // CHECK-NEXT:     "col": 25,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "offset": 711,
+// CHECK-NEXT:      "offset": 661,
 // CHECK-NEXT:      "col": 21,
 // CHECK-NEXT:      "tokLen": 3
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "offset": 715,
+// CHECK-NEXT:      "offset": 665,
 // CHECK-NEXT:      "col": 25,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -3395,18 +3395,18 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "ParmVarDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "offset": 723,
+// CHECK-NEXT:     "offset": 673,
 // CHECK-NEXT:     "col": 33,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "offset": 718,
+// CHECK-NEXT:      "offset": 668,
 // CHECK-NEXT:      "col": 28,
 // CHECK-NEXT:      "tokLen": 3
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "offset": 723,
+// CHECK-NEXT:      "offset": 673,
 // CHECK-NEXT:      "col": 33,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -3423,12 +3423,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:    "kind": "CompoundStmt",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "offset": 726,
+// CHECK-NEXT:      "offset": 676,
 // CHECK-NEXT:      "col": 36,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "offset": 894,
+// CHECK-NEXT:      "offset": 829,
 // CHECK-NEXT:      "line": 66,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 1
@@ -3440,13 +3440,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "kind": "CStyleCastExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
-// CHECK-NEXT:        "offset": 752,
+// CHECK-NEXT:        "offset": 700,
 // CHECK-NEXT:        "line": 53,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
-// CHECK-NEXT:        "offset": 759,
+// CHECK-NEXT:        "offset": 707,
 // CHECK-NEXT:        "col": 10,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -3454,7 +3454,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "float"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "castKind": "IntegralToFloating",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
@@ -3462,12 +3462,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
-// CHECK-NEXT:          "offset": 759,
+// CHECK-NEXT:          "offset": 707,
 // CHECK-NEXT:          "col": 10,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "offset": 759,
+// CHECK-NEXT:          "offset": 707,
 // CHECK-NEXT:          "col": 10,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -3475,7 +3475,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "castKind": "LValueToRValue",
 // CHECK-NEXT:        "isPartOfExplicitCast": true,
 // CHECK-NEXT:        "inner": [
@@ -3484,12 +3484,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
-// CHECK-NEXT:            "offset": 759,
+// CHECK-NEXT:            "offset": 707,
 // CHECK-NEXT:            "col": 10,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
-// CHECK-NEXT:            "offset": 759,
+// CHECK-NEXT:            "offset": 707,
 // CHECK-NEXT:            "col": 10,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -3516,13 +3516,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "kind": "UnaryOperator",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
-// CHECK-NEXT:        "offset": 812,
+// CHECK-NEXT:        "offset": 756,
 // CHECK-NEXT:        "line": 57,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
-// CHECK-NEXT:        "offset": 813,
+// CHECK-NEXT:        "offset": 757,
 // CHECK-NEXT:        "col": 4,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -3530,7 +3530,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "int"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "isPostfix": false,
 // CHECK-NEXT:      "opcode": "-",
 // CHECK-NEXT:      "inner": [
@@ -3539,12 +3539,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
-// CHECK-NEXT:          "offset": 813,
+// CHECK-NEXT:          "offset": 757,
 // CHECK-NEXT:          "col": 4,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "offset": 813,
+// CHECK-NEXT:          "offset": 757,
 // CHECK-NEXT:          "col": 4,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -3552,7 +3552,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "castKind": "LValueToRValue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
@@ -3560,12 +3560,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
-// CHECK-NEXT:            "offset": 813,
+// CHECK-NEXT:            "offset": 757,
 // CHECK-NEXT:            "col": 4,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
-// CHECK-NEXT:            "offset": 813,
+// CHECK-NEXT:            "offset": 757,
 // CHECK-NEXT:            "col": 4,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -3592,13 +3592,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "kind": "UnaryOperator",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
-// CHECK-NEXT:        "offset": 819,
+// CHECK-NEXT:        "offset": 762,
 // CHECK-NEXT:        "line": 58,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
-// CHECK-NEXT:        "offset": 820,
+// CHECK-NEXT:        "offset": 763,
 // CHECK-NEXT:        "col": 4,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -3606,7 +3606,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "int"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "isPostfix": false,
 // CHECK-NEXT:      "opcode": "+",
 // CHECK-NEXT:      "canOverflow": false,
@@ -3616,12 +3616,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
-// CHECK-NEXT:          "offset": 820,
+// CHECK-NEXT:          "offset": 763,
 // CHECK-NEXT:          "col": 4,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "offset": 820,
+// CHECK-NEXT:          "offset": 763,
 // CHECK-NEXT:          "col": 4,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -3629,7 +3629,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "castKind": "LValueToRValue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
@@ -3637,12 +3637,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
-// CHECK-NEXT:            "offset": 820,
+// CHECK-NEXT:            "offset": 763,
 // CHECK-NEXT:            "col": 4,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
-// CHECK-NEXT:            "offset": 820,
+// CHECK-NEXT:            "offset": 763,
 // CHECK-NEXT:            "col": 4,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -3669,13 +3669,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "kind": "UnaryOperator",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
-// CHECK-NEXT:        "offset": 826,
+// CHECK-NEXT:        "offset": 768,
 // CHECK-NEXT:        "line": 59,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
-// CHECK-NEXT:        "offset": 827,
+// CHECK-NEXT:        "offset": 769,
 // CHECK-NEXT:        "col": 4,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -3683,7 +3683,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "int *"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "isPostfix": false,
 // CHECK-NEXT:      "opcode": "&",
 // CHECK-NEXT:      "canOverflow": false,
@@ -3693,12 +3693,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "DeclRefExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
-// CHECK-NEXT:          "offset": 827,
+// CHECK-NEXT:          "offset": 769,
 // CHECK-NEXT:          "col": 4,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "offset": 827,
+// CHECK-NEXT:          "offset": 769,
 // CHECK-NEXT:          "col": 4,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -3723,13 +3723,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "kind": "ImplicitCastExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
-// CHECK-NEXT:        "offset": 833,
+// CHECK-NEXT:        "offset": 774,
 // CHECK-NEXT:        "line": 60,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
-// CHECK-NEXT:        "offset": 834,
+// CHECK-NEXT:        "offset": 775,
 // CHECK-NEXT:        "col": 4,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -3737,7 +3737,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "int"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "castKind": "LValueToRValue",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
@@ -3745,12 +3745,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "UnaryOperator",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
-// CHECK-NEXT:          "offset": 833,
+// CHECK-NEXT:          "offset": 774,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "offset": 834,
+// CHECK-NEXT:          "offset": 775,
 // CHECK-NEXT:          "col": 4,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -3768,12 +3768,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "ImplicitCastExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
-// CHECK-NEXT:            "offset": 834,
+// CHECK-NEXT:            "offset": 775,
 // CHECK-NEXT:            "col": 4,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
-// CHECK-NEXT:            "offset": 834,
+// CHECK-NEXT:            "offset": 775,
 // CHECK-NEXT:            "col": 4,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -3781,7 +3781,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "qualType": "int *"
 // CHECK-NEXT:          },
-// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "valueCategory": "prvalue",
 // CHECK-NEXT:          "castKind": "LValueToRValue",
 // CHECK-NEXT:          "inner": [
 // CHECK-NEXT:           {
@@ -3789,12 +3789,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:            "kind": "DeclRefExpr",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
-// CHECK-NEXT:              "offset": 834,
+// CHECK-NEXT:              "offset": 775,
 // CHECK-NEXT:              "col": 4,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
-// CHECK-NEXT:              "offset": 834,
+// CHECK-NEXT:              "offset": 775,
 // CHECK-NEXT:              "col": 4,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -3823,13 +3823,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "kind": "UnaryOperator",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
-// CHECK-NEXT:        "offset": 840,
+// CHECK-NEXT:        "offset": 780,
 // CHECK-NEXT:        "line": 61,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
-// CHECK-NEXT:        "offset": 841,
+// CHECK-NEXT:        "offset": 781,
 // CHECK-NEXT:        "col": 4,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -3837,7 +3837,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "int"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "isPostfix": false,
 // CHECK-NEXT:      "opcode": "!",
 // CHECK-NEXT:      "canOverflow": false,
@@ -3847,12 +3847,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
-// CHECK-NEXT:          "offset": 841,
+// CHECK-NEXT:          "offset": 781,
 // CHECK-NEXT:          "col": 4,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "offset": 841,
+// CHECK-NEXT:          "offset": 781,
 // CHECK-NEXT:          "col": 4,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -3860,7 +3860,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "castKind": "LValueToRValue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
@@ -3868,12 +3868,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
-// CHECK-NEXT:            "offset": 841,
+// CHECK-NEXT:            "offset": 781,
 // CHECK-NEXT:            "col": 4,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
-// CHECK-NEXT:            "offset": 841,
+// CHECK-NEXT:            "offset": 781,
 // CHECK-NEXT:            "col": 4,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -3900,13 +3900,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "kind": "UnaryExprOrTypeTraitExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
-// CHECK-NEXT:        "offset": 849,
+// CHECK-NEXT:        "offset": 787,
 // CHECK-NEXT:        "line": 63,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 6
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
-// CHECK-NEXT:        "offset": 856,
+// CHECK-NEXT:        "offset": 794,
 // CHECK-NEXT:        "col": 10,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -3914,7 +3914,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "unsigned long"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "name": "sizeof",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
@@ -3922,12 +3922,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "DeclRefExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
-// CHECK-NEXT:          "offset": 856,
+// CHECK-NEXT:          "offset": 794,
 // CHECK-NEXT:          "col": 10,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "offset": 856,
+// CHECK-NEXT:          "offset": 794,
 // CHECK-NEXT:          "col": 10,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -3953,13 +3953,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "kind": "UnaryExprOrTypeTraitExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
-// CHECK-NEXT:        "offset": 862,
+// CHECK-NEXT:        "offset": 799,
 // CHECK-NEXT:        "line": 64,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 6
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
-// CHECK-NEXT:        "offset": 872,
+// CHECK-NEXT:        "offset": 809,
 // CHECK-NEXT:        "col": 13,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -3967,7 +3967,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "unsigned long"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "name": "sizeof",
 // CHECK-NEXT:      "argType": {
 // CHECK-NEXT:       "qualType": "int"
@@ -3978,13 +3978,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "kind": "UnaryExprOrTypeTraitExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
-// CHECK-NEXT:        "offset": 878,
+// CHECK-NEXT:        "offset": 814,
 // CHECK-NEXT:        "line": 65,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 8
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
-// CHECK-NEXT:        "offset": 890,
+// CHECK-NEXT:        "offset": 826,
 // CHECK-NEXT:        "col": 15,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -3992,7 +3992,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "unsigned long"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "name": "alignof",
 // CHECK-NEXT:      "argType": {
 // CHECK-NEXT:       "qualType": "int"
@@ -4006,19 +4006,19 @@ void PrimaryExpressions(int a) {
 
 // CHECK:  "kind": "FunctionDecl",
 // CHECK-NEXT:  "loc": {
-// CHECK-NEXT:   "offset": 932,
+// CHECK-NEXT:   "offset": 861,
 // CHECK-NEXT:   "line": 72,
 // CHECK-NEXT:   "col": 6,
 // CHECK-NEXT:   "tokLen": 16
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
-// CHECK-NEXT:    "offset": 927,
+// CHECK-NEXT:    "offset": 856,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 4
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
-// CHECK-NEXT:    "offset": 1136,
+// CHECK-NEXT:    "offset": 1054,
 // CHECK-NEXT:    "line": 83,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
@@ -4034,19 +4034,19 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "ParmVarDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "offset": 954,
+// CHECK-NEXT:     "offset": 883,
 // CHECK-NEXT:     "line": 72,
 // CHECK-NEXT:     "col": 28,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "offset": 949,
+// CHECK-NEXT:      "offset": 878,
 // CHECK-NEXT:      "col": 23,
 // CHECK-NEXT:      "tokLen": 3
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "offset": 954,
+// CHECK-NEXT:      "offset": 883,
 // CHECK-NEXT:      "col": 28,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -4062,18 +4062,18 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "ParmVarDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "offset": 966,
+// CHECK-NEXT:     "offset": 895,
 // CHECK-NEXT:     "col": 40,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "offset": 957,
+// CHECK-NEXT:      "offset": 886,
 // CHECK-NEXT:      "col": 31,
 // CHECK-NEXT:      "tokLen": 6
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "offset": 966,
+// CHECK-NEXT:      "offset": 895,
 // CHECK-NEXT:      "col": 40,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -4090,18 +4090,18 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "ParmVarDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "offset": 979,
+// CHECK-NEXT:     "offset": 908,
 // CHECK-NEXT:     "col": 53,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "offset": 969,
+// CHECK-NEXT:      "offset": 898,
 // CHECK-NEXT:      "col": 43,
 // CHECK-NEXT:      "tokLen": 6
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "offset": 979,
+// CHECK-NEXT:      "offset": 908,
 // CHECK-NEXT:      "col": 53,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -4118,12 +4118,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:    "kind": "CompoundStmt",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "offset": 982,
+// CHECK-NEXT:      "offset": 911,
 // CHECK-NEXT:      "col": 56,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "offset": 1136,
+// CHECK-NEXT:      "offset": 1054,
 // CHECK-NEXT:      "line": 83,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 1
@@ -4135,13 +4135,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "kind": "ImplicitCastExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
-// CHECK-NEXT:        "offset": 987,
+// CHECK-NEXT:        "offset": 915,
 // CHECK-NEXT:        "line": 73,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
-// CHECK-NEXT:        "offset": 990,
+// CHECK-NEXT:        "offset": 918,
 // CHECK-NEXT:        "col": 6,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -4149,7 +4149,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "int"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "castKind": "LValueToRValue",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
@@ -4157,12 +4157,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "ArraySubscriptExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
-// CHECK-NEXT:          "offset": 987,
+// CHECK-NEXT:          "offset": 915,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "offset": 990,
+// CHECK-NEXT:          "offset": 918,
 // CHECK-NEXT:          "col": 6,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -4177,12 +4177,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "ImplicitCastExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
-// CHECK-NEXT:            "offset": 987,
+// CHECK-NEXT:            "offset": 915,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
-// CHECK-NEXT:            "offset": 987,
+// CHECK-NEXT:            "offset": 915,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -4190,7 +4190,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "qualType": "int *"
 // CHECK-NEXT:          },
-// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "valueCategory": "prvalue",
 // CHECK-NEXT:          "castKind": "LValueToRValue",
 // CHECK-NEXT:          "inner": [
 // CHECK-NEXT:           {
@@ -4198,12 +4198,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:            "kind": "DeclRefExpr",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
-// CHECK-NEXT:              "offset": 987,
+// CHECK-NEXT:              "offset": 915,
 // CHECK-NEXT:              "col": 3,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
-// CHECK-NEXT:              "offset": 987,
+// CHECK-NEXT:              "offset": 915,
 // CHECK-NEXT:              "col": 3,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -4228,12 +4228,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "IntegerLiteral",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
-// CHECK-NEXT:            "offset": 989,
+// CHECK-NEXT:            "offset": 917,
 // CHECK-NEXT:            "col": 5,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
-// CHECK-NEXT:            "offset": 989,
+// CHECK-NEXT:            "offset": 917,
 // CHECK-NEXT:            "col": 5,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -4241,7 +4241,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "qualType": "int"
 // CHECK-NEXT:          },
-// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "valueCategory": "prvalue",
 // CHECK-NEXT:          "value": "0"
 // CHECK-NEXT:         }
 // CHECK-NEXT:        ]
@@ -4253,13 +4253,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "kind": "CallExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
-// CHECK-NEXT:        "offset": 996,
+// CHECK-NEXT:        "offset": 923,
 // CHECK-NEXT:        "line": 74,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 14
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
-// CHECK-NEXT:        "offset": 1016,
+// CHECK-NEXT:        "offset": 943,
 // CHECK-NEXT:        "col": 23,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -4267,19 +4267,19 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "void"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
 // CHECK-NEXT:        "id": "0x{{.*}}",
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
-// CHECK-NEXT:          "offset": 996,
+// CHECK-NEXT:          "offset": 923,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 14
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "offset": 996,
+// CHECK-NEXT:          "offset": 923,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 14
 // CHECK-NEXT:         }
@@ -4287,7 +4287,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "void (*)(int, int *)"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "castKind": "FunctionToPointerDecay",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
@@ -4295,12 +4295,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
-// CHECK-NEXT:            "offset": 996,
+// CHECK-NEXT:            "offset": 923,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 14
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
-// CHECK-NEXT:            "offset": 996,
+// CHECK-NEXT:            "offset": 923,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 14
 // CHECK-NEXT:           }
@@ -4308,7 +4308,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "qualType": "void (int, int *)"
 // CHECK-NEXT:          },
-// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "valueCategory": "prvalue",
 // CHECK-NEXT:          "referencedDecl": {
 // CHECK-NEXT:           "id": "0x{{.*}}",
 // CHECK-NEXT:           "kind": "FunctionDecl",
@@ -4325,12 +4325,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
-// CHECK-NEXT:          "offset": 1011,
+// CHECK-NEXT:          "offset": 938,
 // CHECK-NEXT:          "col": 18,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "offset": 1012,
+// CHECK-NEXT:          "offset": 939,
 // CHECK-NEXT:          "col": 19,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -4338,7 +4338,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "castKind": "LValueToRValue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
@@ -4346,12 +4346,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "UnaryOperator",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
-// CHECK-NEXT:            "offset": 1011,
+// CHECK-NEXT:            "offset": 938,
 // CHECK-NEXT:            "col": 18,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
-// CHECK-NEXT:            "offset": 1012,
+// CHECK-NEXT:            "offset": 939,
 // CHECK-NEXT:            "col": 19,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -4369,12 +4369,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:            "kind": "ImplicitCastExpr",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
-// CHECK-NEXT:              "offset": 1012,
+// CHECK-NEXT:              "offset": 939,
 // CHECK-NEXT:              "col": 19,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
-// CHECK-NEXT:              "offset": 1012,
+// CHECK-NEXT:              "offset": 939,
 // CHECK-NEXT:              "col": 19,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -4382,7 +4382,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "qualType": "int *"
 // CHECK-NEXT:            },
-// CHECK-NEXT:            "valueCategory": "rvalue",
+// CHECK-NEXT:            "valueCategory": "prvalue",
 // CHECK-NEXT:            "castKind": "LValueToRValue",
 // CHECK-NEXT:            "inner": [
 // CHECK-NEXT:             {
@@ -4390,12 +4390,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:              "kind": "DeclRefExpr",
 // CHECK-NEXT:              "range": {
 // CHECK-NEXT:               "begin": {
-// CHECK-NEXT:                "offset": 1012,
+// CHECK-NEXT:                "offset": 939,
 // CHECK-NEXT:                "col": 19,
 // CHECK-NEXT:                "tokLen": 1
 // CHECK-NEXT:               },
 // CHECK-NEXT:               "end": {
-// CHECK-NEXT:                "offset": 1012,
+// CHECK-NEXT:                "offset": 939,
 // CHECK-NEXT:                "col": 19,
 // CHECK-NEXT:                "tokLen": 1
 // CHECK-NEXT:               }
@@ -4424,12 +4424,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
-// CHECK-NEXT:          "offset": 1015,
+// CHECK-NEXT:          "offset": 942,
 // CHECK-NEXT:          "col": 22,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "offset": 1015,
+// CHECK-NEXT:          "offset": 942,
 // CHECK-NEXT:          "col": 22,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -4437,7 +4437,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int *"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "castKind": "LValueToRValue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
@@ -4445,12 +4445,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
-// CHECK-NEXT:            "offset": 1015,
+// CHECK-NEXT:            "offset": 942,
 // CHECK-NEXT:            "col": 22,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
-// CHECK-NEXT:            "offset": 1015,
+// CHECK-NEXT:            "offset": 942,
 // CHECK-NEXT:            "col": 22,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -4477,13 +4477,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "kind": "ImplicitCastExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
-// CHECK-NEXT:        "offset": 1024,
+// CHECK-NEXT:        "offset": 949,
 // CHECK-NEXT:        "line": 76,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
-// CHECK-NEXT:        "offset": 1026,
+// CHECK-NEXT:        "offset": 951,
 // CHECK-NEXT:        "col": 5,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -4491,7 +4491,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "int"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "castKind": "LValueToRValue",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
@@ -4499,12 +4499,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "MemberExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
-// CHECK-NEXT:          "offset": 1024,
+// CHECK-NEXT:          "offset": 949,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "offset": 1026,
+// CHECK-NEXT:          "offset": 951,
 // CHECK-NEXT:          "col": 5,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -4522,12 +4522,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
-// CHECK-NEXT:            "offset": 1024,
+// CHECK-NEXT:            "offset": 949,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
-// CHECK-NEXT:            "offset": 1024,
+// CHECK-NEXT:            "offset": 949,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -4556,13 +4556,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "kind": "ImplicitCastExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
-// CHECK-NEXT:        "offset": 1032,
+// CHECK-NEXT:        "offset": 956,
 // CHECK-NEXT:        "line": 77,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
-// CHECK-NEXT:        "offset": 1035,
+// CHECK-NEXT:        "offset": 959,
 // CHECK-NEXT:        "col": 6,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -4570,7 +4570,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "int"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "castKind": "LValueToRValue",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
@@ -4578,12 +4578,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "MemberExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
-// CHECK-NEXT:          "offset": 1032,
+// CHECK-NEXT:          "offset": 956,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "offset": 1035,
+// CHECK-NEXT:          "offset": 959,
 // CHECK-NEXT:          "col": 6,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -4601,12 +4601,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "ImplicitCastExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
-// CHECK-NEXT:            "offset": 1032,
+// CHECK-NEXT:            "offset": 956,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
-// CHECK-NEXT:            "offset": 1032,
+// CHECK-NEXT:            "offset": 956,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -4614,7 +4614,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "qualType": "struct S *"
 // CHECK-NEXT:          },
-// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "valueCategory": "prvalue",
 // CHECK-NEXT:          "castKind": "LValueToRValue",
 // CHECK-NEXT:          "inner": [
 // CHECK-NEXT:           {
@@ -4622,12 +4622,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:            "kind": "DeclRefExpr",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
-// CHECK-NEXT:              "offset": 1032,
+// CHECK-NEXT:              "offset": 956,
 // CHECK-NEXT:              "col": 3,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
-// CHECK-NEXT:              "offset": 1032,
+// CHECK-NEXT:              "offset": 956,
 // CHECK-NEXT:              "col": 3,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -4656,13 +4656,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "kind": "ImplicitCastExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
-// CHECK-NEXT:        "offset": 1092,
+// CHECK-NEXT:        "offset": 1012,
 // CHECK-NEXT:        "line": 81,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
-// CHECK-NEXT:        "offset": 1114,
+// CHECK-NEXT:        "offset": 1034,
 // CHECK-NEXT:        "col": 25,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -4670,7 +4670,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "int *"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "castKind": "ArrayToPointerDecay",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
@@ -4678,12 +4678,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "CompoundLiteralExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
-// CHECK-NEXT:          "offset": 1092,
+// CHECK-NEXT:          "offset": 1012,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "offset": 1114,
+// CHECK-NEXT:          "offset": 1034,
 // CHECK-NEXT:          "col": 25,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -4698,12 +4698,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "InitListExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
-// CHECK-NEXT:            "offset": 1101,
+// CHECK-NEXT:            "offset": 1021,
 // CHECK-NEXT:            "col": 12,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
-// CHECK-NEXT:            "offset": 1114,
+// CHECK-NEXT:            "offset": 1034,
 // CHECK-NEXT:            "col": 25,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -4711,19 +4711,19 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "qualType": "int [4]"
 // CHECK-NEXT:          },
-// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "valueCategory": "prvalue",
 // CHECK-NEXT:          "inner": [
 // CHECK-NEXT:           {
 // CHECK-NEXT:            "id": "0x{{.*}}",
 // CHECK-NEXT:            "kind": "IntegerLiteral",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
-// CHECK-NEXT:              "offset": 1102,
+// CHECK-NEXT:              "offset": 1022,
 // CHECK-NEXT:              "col": 13,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
-// CHECK-NEXT:              "offset": 1102,
+// CHECK-NEXT:              "offset": 1022,
 // CHECK-NEXT:              "col": 13,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -4731,7 +4731,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "qualType": "int"
 // CHECK-NEXT:            },
-// CHECK-NEXT:            "valueCategory": "rvalue",
+// CHECK-NEXT:            "valueCategory": "prvalue",
 // CHECK-NEXT:            "value": "1"
 // CHECK-NEXT:           },
 // CHECK-NEXT:           {
@@ -4739,12 +4739,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:            "kind": "IntegerLiteral",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
-// CHECK-NEXT:              "offset": 1105,
+// CHECK-NEXT:              "offset": 1025,
 // CHECK-NEXT:              "col": 16,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
-// CHECK-NEXT:              "offset": 1105,
+// CHECK-NEXT:              "offset": 1025,
 // CHECK-NEXT:              "col": 16,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -4752,7 +4752,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "qualType": "int"
 // CHECK-NEXT:            },
-// CHECK-NEXT:            "valueCategory": "rvalue",
+// CHECK-NEXT:            "valueCategory": "prvalue",
 // CHECK-NEXT:            "value": "2"
 // CHECK-NEXT:           },
 // CHECK-NEXT:           {
@@ -4760,12 +4760,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:            "kind": "IntegerLiteral",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
-// CHECK-NEXT:              "offset": 1108,
+// CHECK-NEXT:              "offset": 1028,
 // CHECK-NEXT:              "col": 19,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
-// CHECK-NEXT:              "offset": 1108,
+// CHECK-NEXT:              "offset": 1028,
 // CHECK-NEXT:              "col": 19,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -4773,7 +4773,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "qualType": "int"
 // CHECK-NEXT:            },
-// CHECK-NEXT:            "valueCategory": "rvalue",
+// CHECK-NEXT:            "valueCategory": "prvalue",
 // CHECK-NEXT:            "value": "3"
 // CHECK-NEXT:           },
 // CHECK-NEXT:           {
@@ -4781,12 +4781,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:            "kind": "IntegerLiteral",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
-// CHECK-NEXT:              "offset": 1111,
+// CHECK-NEXT:              "offset": 1031,
 // CHECK-NEXT:              "col": 22,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
-// CHECK-NEXT:              "offset": 1111,
+// CHECK-NEXT:              "offset": 1031,
 // CHECK-NEXT:              "col": 22,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -4794,7 +4794,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "qualType": "int"
 // CHECK-NEXT:            },
-// CHECK-NEXT:            "valueCategory": "rvalue",
+// CHECK-NEXT:            "valueCategory": "prvalue",
 // CHECK-NEXT:            "value": "4"
 // CHECK-NEXT:           }
 // CHECK-NEXT:          ]
@@ -4808,13 +4808,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "kind": "ImplicitCastExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
-// CHECK-NEXT:        "offset": 1120,
+// CHECK-NEXT:        "offset": 1039,
 // CHECK-NEXT:        "line": 82,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
-// CHECK-NEXT:        "offset": 1132,
+// CHECK-NEXT:        "offset": 1051,
 // CHECK-NEXT:        "col": 15,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -4823,7 +4823,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:       "desugaredQualType": "struct S",
 // CHECK-NEXT:       "qualType": "struct S"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "castKind": "LValueToRValue",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
@@ -4831,12 +4831,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "CompoundLiteralExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
-// CHECK-NEXT:          "offset": 1120,
+// CHECK-NEXT:          "offset": 1039,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "offset": 1132,
+// CHECK-NEXT:          "offset": 1051,
 // CHECK-NEXT:          "col": 15,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -4852,12 +4852,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "InitListExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
-// CHECK-NEXT:            "offset": 1130,
+// CHECK-NEXT:            "offset": 1049,
 // CHECK-NEXT:            "col": 13,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
-// CHECK-NEXT:            "offset": 1132,
+// CHECK-NEXT:            "offset": 1051,
 // CHECK-NEXT:            "col": 15,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -4866,19 +4866,19 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:           "desugaredQualType": "struct S",
 // CHECK-NEXT:           "qualType": "struct S"
 // CHECK-NEXT:          },
-// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "valueCategory": "prvalue",
 // CHECK-NEXT:          "inner": [
 // CHECK-NEXT:           {
 // CHECK-NEXT:            "id": "0x{{.*}}",
 // CHECK-NEXT:            "kind": "IntegerLiteral",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
-// CHECK-NEXT:              "offset": 1131,
+// CHECK-NEXT:              "offset": 1050,
 // CHECK-NEXT:              "col": 14,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
-// CHECK-NEXT:              "offset": 1131,
+// CHECK-NEXT:              "offset": 1050,
 // CHECK-NEXT:              "col": 14,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -4886,7 +4886,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "qualType": "int"
 // CHECK-NEXT:            },
-// CHECK-NEXT:            "valueCategory": "rvalue",
+// CHECK-NEXT:            "valueCategory": "prvalue",
 // CHECK-NEXT:            "value": "1"
 // CHECK-NEXT:           }
 // CHECK-NEXT:          ]
@@ -4903,19 +4903,19 @@ void PrimaryExpressions(int a) {
 
 // CHECK:  "kind": "FunctionDecl",
 // CHECK-NEXT:  "loc": {
-// CHECK-NEXT:   "offset": 1165,
+// CHECK-NEXT:   "offset": 1079,
 // CHECK-NEXT:   "line": 87,
 // CHECK-NEXT:   "col": 6,
 // CHECK-NEXT:   "tokLen": 18
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
-// CHECK-NEXT:    "offset": 1160,
+// CHECK-NEXT:    "offset": 1074,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 4
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
-// CHECK-NEXT:    "offset": 1360,
+// CHECK-NEXT:    "offset": 1254,
 // CHECK-NEXT:    "line": 107,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
@@ -4931,19 +4931,19 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "ParmVarDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "offset": 1188,
+// CHECK-NEXT:     "offset": 1102,
 // CHECK-NEXT:     "line": 87,
 // CHECK-NEXT:     "col": 29,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "offset": 1184,
+// CHECK-NEXT:      "offset": 1098,
 // CHECK-NEXT:      "col": 25,
 // CHECK-NEXT:      "tokLen": 3
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "offset": 1188,
+// CHECK-NEXT:      "offset": 1102,
 // CHECK-NEXT:      "col": 29,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -4960,12 +4960,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:    "kind": "CompoundStmt",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "offset": 1191,
+// CHECK-NEXT:      "offset": 1105,
 // CHECK-NEXT:      "col": 32,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "offset": 1360,
+// CHECK-NEXT:      "offset": 1254,
 // CHECK-NEXT:      "line": 107,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 1
@@ -4977,13 +4977,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "kind": "ImplicitCastExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
-// CHECK-NEXT:        "offset": 1196,
+// CHECK-NEXT:        "offset": 1109,
 // CHECK-NEXT:        "line": 88,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
-// CHECK-NEXT:        "offset": 1196,
+// CHECK-NEXT:        "offset": 1109,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -4991,7 +4991,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "int"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "castKind": "LValueToRValue",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
@@ -4999,12 +4999,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "DeclRefExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
-// CHECK-NEXT:          "offset": 1196,
+// CHECK-NEXT:          "offset": 1109,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "offset": 1196,
+// CHECK-NEXT:          "offset": 1109,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -5029,13 +5029,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "kind": "CharacterLiteral",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
-// CHECK-NEXT:        "offset": 1202,
+// CHECK-NEXT:        "offset": 1114,
 // CHECK-NEXT:        "line": 89,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 3
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
-// CHECK-NEXT:        "offset": 1202,
+// CHECK-NEXT:        "offset": 1114,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 3
 // CHECK-NEXT:       }
@@ -5043,7 +5043,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "int"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "value": 97
 // CHECK-NEXT:     },
 // CHECK-NEXT:     {
@@ -5051,13 +5051,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "kind": "CharacterLiteral",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
-// CHECK-NEXT:        "offset": 1210,
+// CHECK-NEXT:        "offset": 1121,
 // CHECK-NEXT:        "line": 90,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 4
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
-// CHECK-NEXT:        "offset": 1210,
+// CHECK-NEXT:        "offset": 1121,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 4
 // CHECK-NEXT:       }
@@ -5065,7 +5065,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "int"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "value": 97
 // CHECK-NEXT:     },
 // CHECK-NEXT:     {
@@ -5073,13 +5073,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "kind": "ImplicitCastExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
-// CHECK-NEXT:        "offset": 1219,
+// CHECK-NEXT:        "offset": 1129,
 // CHECK-NEXT:        "line": 91,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 3
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
-// CHECK-NEXT:        "offset": 1219,
+// CHECK-NEXT:        "offset": 1129,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 3
 // CHECK-NEXT:       }
@@ -5087,7 +5087,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "char *"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "castKind": "ArrayToPointerDecay",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
@@ -5095,12 +5095,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "StringLiteral",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
-// CHECK-NEXT:          "offset": 1219,
+// CHECK-NEXT:          "offset": 1129,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 3
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "offset": 1219,
+// CHECK-NEXT:          "offset": 1129,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 3
 // CHECK-NEXT:         }
@@ -5118,13 +5118,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "kind": "ImplicitCastExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
-// CHECK-NEXT:        "offset": 1227,
+// CHECK-NEXT:        "offset": 1136,
 // CHECK-NEXT:        "line": 92,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 4
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
-// CHECK-NEXT:        "offset": 1227,
+// CHECK-NEXT:        "offset": 1136,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 4
 // CHECK-NEXT:       }
@@ -5132,7 +5132,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "int *"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "castKind": "ArrayToPointerDecay",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
@@ -5140,12 +5140,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "StringLiteral",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
-// CHECK-NEXT:          "offset": 1227,
+// CHECK-NEXT:          "offset": 1136,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 4
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "offset": 1227,
+// CHECK-NEXT:          "offset": 1136,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 4
 // CHECK-NEXT:         }
@@ -5163,13 +5163,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "kind": "ImplicitCastExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
-// CHECK-NEXT:        "offset": 1236,
+// CHECK-NEXT:        "offset": 1144,
 // CHECK-NEXT:        "line": 93,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 5
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
-// CHECK-NEXT:        "offset": 1236,
+// CHECK-NEXT:        "offset": 1144,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 5
 // CHECK-NEXT:       }
@@ -5177,7 +5177,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "char *"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "castKind": "ArrayToPointerDecay",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
@@ -5185,12 +5185,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "StringLiteral",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
-// CHECK-NEXT:          "offset": 1236,
+// CHECK-NEXT:          "offset": 1144,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 5
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "offset": 1236,
+// CHECK-NEXT:          "offset": 1144,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 5
 // CHECK-NEXT:         }
@@ -5208,13 +5208,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "kind": "ImplicitCastExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
-// CHECK-NEXT:        "offset": 1246,
+// CHECK-NEXT:        "offset": 1153,
 // CHECK-NEXT:        "line": 94,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 4
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
-// CHECK-NEXT:        "offset": 1246,
+// CHECK-NEXT:        "offset": 1153,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 4
 // CHECK-NEXT:       }
@@ -5222,7 +5222,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "unsigned int *"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "castKind": "ArrayToPointerDecay",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
@@ -5230,12 +5230,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "StringLiteral",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
-// CHECK-NEXT:          "offset": 1246,
+// CHECK-NEXT:          "offset": 1153,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 4
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "offset": 1246,
+// CHECK-NEXT:          "offset": 1153,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 4
 // CHECK-NEXT:         }
@@ -5253,13 +5253,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "kind": "ImplicitCastExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
-// CHECK-NEXT:        "offset": 1255,
+// CHECK-NEXT:        "offset": 1161,
 // CHECK-NEXT:        "line": 95,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 4
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
-// CHECK-NEXT:        "offset": 1255,
+// CHECK-NEXT:        "offset": 1161,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 4
 // CHECK-NEXT:       }
@@ -5267,7 +5267,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "unsigned short *"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "castKind": "ArrayToPointerDecay",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
@@ -5275,12 +5275,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "StringLiteral",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
-// CHECK-NEXT:          "offset": 1255,
+// CHECK-NEXT:          "offset": 1161,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 4
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "offset": 1255,
+// CHECK-NEXT:          "offset": 1161,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 4
 // CHECK-NEXT:         }
@@ -5298,13 +5298,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "kind": "IntegerLiteral",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
-// CHECK-NEXT:        "offset": 1266,
+// CHECK-NEXT:        "offset": 1170,
 // CHECK-NEXT:        "line": 97,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
-// CHECK-NEXT:        "offset": 1266,
+// CHECK-NEXT:        "offset": 1170,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -5312,7 +5312,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "int"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "value": "1"
 // CHECK-NEXT:     },
 // CHECK-NEXT:     {
@@ -5320,13 +5320,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "kind": "IntegerLiteral",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
-// CHECK-NEXT:        "offset": 1272,
+// CHECK-NEXT:        "offset": 1175,
 // CHECK-NEXT:        "line": 98,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 2
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
-// CHECK-NEXT:        "offset": 1272,
+// CHECK-NEXT:        "offset": 1175,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 2
 // CHECK-NEXT:       }
@@ -5334,7 +5334,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "unsigned int"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "value": "1"
 // CHECK-NEXT:     },
 // CHECK-NEXT:     {
@@ -5342,13 +5342,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "kind": "IntegerLiteral",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
-// CHECK-NEXT:        "offset": 1279,
+// CHECK-NEXT:        "offset": 1181,
 // CHECK-NEXT:        "line": 99,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 3
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
-// CHECK-NEXT:        "offset": 1279,
+// CHECK-NEXT:        "offset": 1181,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 3
 // CHECK-NEXT:       }
@@ -5356,7 +5356,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "long long"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "value": "1"
 // CHECK-NEXT:     },
 // CHECK-NEXT:     {
@@ -5364,13 +5364,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "kind": "FloatingLiteral",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
-// CHECK-NEXT:        "offset": 1287,
+// CHECK-NEXT:        "offset": 1188,
 // CHECK-NEXT:        "line": 100,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 3
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
-// CHECK-NEXT:        "offset": 1287,
+// CHECK-NEXT:        "offset": 1188,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 3
 // CHECK-NEXT:       }
@@ -5378,7 +5378,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "double"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "value": "1"
 // CHECK-NEXT:     },
 // CHECK-NEXT:     {
@@ -5386,13 +5386,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "kind": "FloatingLiteral",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
-// CHECK-NEXT:        "offset": 1295,
+// CHECK-NEXT:        "offset": 1195,
 // CHECK-NEXT:        "line": 101,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 4
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
-// CHECK-NEXT:        "offset": 1295,
+// CHECK-NEXT:        "offset": 1195,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 4
 // CHECK-NEXT:       }
@@ -5400,7 +5400,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "float"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "value": "1"
 // CHECK-NEXT:     },
 // CHECK-NEXT:     {
@@ -5408,13 +5408,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "kind": "FloatingLiteral",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
-// CHECK-NEXT:        "offset": 1304,
+// CHECK-NEXT:        "offset": 1203,
 // CHECK-NEXT:        "line": 102,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 26
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
-// CHECK-NEXT:        "offset": 1304,
+// CHECK-NEXT:        "offset": 1203,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 26
 // CHECK-NEXT:       }
@@ -5422,7 +5422,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "float"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "value": "+Inf"
 // CHECK-NEXT:     },
 // CHECK-NEXT:     {
@@ -5430,13 +5430,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "kind": "FloatingLiteral",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
-// CHECK-NEXT:        "offset": 1335,
+// CHECK-NEXT:        "offset": 1233,
 // CHECK-NEXT:        "line": 103,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 4
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
-// CHECK-NEXT:        "offset": 1335,
+// CHECK-NEXT:        "offset": 1233,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 4
 // CHECK-NEXT:       }
@@ -5444,7 +5444,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "long double"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "value": "1"
 // CHECK-NEXT:     },
 // CHECK-NEXT:     {
@@ -5452,13 +5452,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "kind": "DeclRefExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
-// CHECK-NEXT:        "offset": 1344,
+// CHECK-NEXT:        "offset": 1241,
 // CHECK-NEXT:        "line": 104,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 3
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
-// CHECK-NEXT:        "offset": 1344,
+// CHECK-NEXT:        "offset": 1241,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 3
 // CHECK-NEXT:       }
@@ -5466,7 +5466,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "int"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "referencedDecl": {
 // CHECK-NEXT:       "id": "0x{{.*}}",
 // CHECK-NEXT:       "kind": "EnumConstantDecl",
@@ -5481,13 +5481,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "kind": "ImplicitCastExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
-// CHECK-NEXT:        "offset": 1354,
+// CHECK-NEXT:        "offset": 1249,
 // CHECK-NEXT:        "line": 106,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
-// CHECK-NEXT:        "offset": 1356,
+// CHECK-NEXT:        "offset": 1251,
 // CHECK-NEXT:        "col": 5,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -5495,7 +5495,7 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "int"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "castKind": "LValueToRValue",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
@@ -5503,12 +5503,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "ParenExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
-// CHECK-NEXT:          "offset": 1354,
+// CHECK-NEXT:          "offset": 1249,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "offset": 1356,
+// CHECK-NEXT:          "offset": 1251,
 // CHECK-NEXT:          "col": 5,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -5523,12 +5523,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
-// CHECK-NEXT:            "offset": 1355,
+// CHECK-NEXT:            "offset": 1250,
 // CHECK-NEXT:            "col": 4,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
-// CHECK-NEXT:            "offset": 1355,
+// CHECK-NEXT:            "offset": 1250,
 // CHECK-NEXT:            "col": 4,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }

diff  --git a/clang/test/AST/ast-dump-expr-json.cpp b/clang/test/AST/ast-dump-expr-json.cpp
index 02bd8c470d5a8..16fb7814dfc7d 100644
--- a/clang/test/AST/ast-dump-expr-json.cpp
+++ b/clang/test/AST/ast-dump-expr-json.cpp
@@ -155,7 +155,6 @@ void TestNonADLCall3() {
 
 // NOTE: CHECK lines have been autogenerated by gen_ast_dump_json_test.py
 
-
 // CHECK:  "kind": "FunctionDecl",
 // CHECK-NEXT:  "loc": {
 // CHECK-NEXT:   "offset": 952,
@@ -220,7 +219,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "void"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
 // CHECK-NEXT:        "id": "0x{{.*}}",
@@ -240,7 +239,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "value": "12"
 // CHECK-NEXT:       }
 // CHECK-NEXT:      ]
@@ -264,14 +263,13 @@ void TestNonADLCall3() {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "void"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue"
+// CHECK-NEXT:      "valueCategory": "prvalue"
 // CHECK-NEXT:     }
 // CHECK-NEXT:    ]
 // CHECK-NEXT:   }
 // CHECK-NEXT:  ]
 // CHECK-NEXT: }
 
-
 // CHECK:  "kind": "FunctionDecl",
 // CHECK-NEXT:  "loc": {
 // CHECK-NEXT:   "offset": 995,
@@ -493,7 +491,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int S::*"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "castKind": "LValueToRValue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
@@ -568,7 +566,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "S *"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "castKind": "LValueToRValue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
@@ -619,7 +617,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int S::*"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "castKind": "LValueToRValue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
@@ -673,7 +671,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "void"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
 // CHECK-NEXT:        "id": "0x{{.*}}",
@@ -693,7 +691,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "<bound member function type>"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
 // CHECK-NEXT:          "id": "0x{{.*}}",
@@ -713,7 +711,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "qualType": "<bound member function type>"
 // CHECK-NEXT:          },
-// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "valueCategory": "prvalue",
 // CHECK-NEXT:          "opcode": ".*",
 // CHECK-NEXT:          "inner": [
 // CHECK-NEXT:           {
@@ -762,7 +760,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "qualType": "void (S::*)(int)"
 // CHECK-NEXT:            },
-// CHECK-NEXT:            "valueCategory": "rvalue",
+// CHECK-NEXT:            "valueCategory": "prvalue",
 // CHECK-NEXT:            "castKind": "LValueToRValue",
 // CHECK-NEXT:            "inner": [
 // CHECK-NEXT:             {
@@ -817,7 +815,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "value": "12"
 // CHECK-NEXT:       }
 // CHECK-NEXT:      ]
@@ -841,7 +839,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "void"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
 // CHECK-NEXT:        "id": "0x{{.*}}",
@@ -861,7 +859,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "<bound member function type>"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
 // CHECK-NEXT:          "id": "0x{{.*}}",
@@ -881,7 +879,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "qualType": "<bound member function type>"
 // CHECK-NEXT:          },
-// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "valueCategory": "prvalue",
 // CHECK-NEXT:          "opcode": "->*",
 // CHECK-NEXT:          "inner": [
 // CHECK-NEXT:           {
@@ -902,7 +900,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "qualType": "S *"
 // CHECK-NEXT:            },
-// CHECK-NEXT:            "valueCategory": "rvalue",
+// CHECK-NEXT:            "valueCategory": "prvalue",
 // CHECK-NEXT:            "castKind": "LValueToRValue",
 // CHECK-NEXT:            "inner": [
 // CHECK-NEXT:             {
@@ -953,7 +951,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "qualType": "void (S::*)(int)"
 // CHECK-NEXT:            },
-// CHECK-NEXT:            "valueCategory": "rvalue",
+// CHECK-NEXT:            "valueCategory": "prvalue",
 // CHECK-NEXT:            "castKind": "LValueToRValue",
 // CHECK-NEXT:            "inner": [
 // CHECK-NEXT:             {
@@ -1008,7 +1006,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "value": "12"
 // CHECK-NEXT:       }
 // CHECK-NEXT:      ]
@@ -1018,7 +1016,6 @@ void TestNonADLCall3() {
 // CHECK-NEXT:  ]
 // CHECK-NEXT: }
 
-
 // CHECK:  "kind": "FunctionDecl",
 // CHECK-NEXT:  "loc": {
 // CHECK-NEXT:   "offset": 1149,
@@ -1110,7 +1107,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "S *"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "castKind": "NoOp",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
@@ -1131,7 +1128,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "const S *"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "castKind": "LValueToRValue",
 // CHECK-NEXT:        "isPartOfExplicitCast": true,
 // CHECK-NEXT:        "inner": [
@@ -1186,7 +1183,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "const T *"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "castKind": "BaseToDerived",
 // CHECK-NEXT:      "path": [
 // CHECK-NEXT:       {
@@ -1212,7 +1209,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "const S *"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "castKind": "LValueToRValue",
 // CHECK-NEXT:        "isPartOfExplicitCast": true,
 // CHECK-NEXT:        "inner": [
@@ -1267,7 +1264,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "const T *"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "castKind": "Dynamic",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
@@ -1288,7 +1285,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "const S *"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "castKind": "LValueToRValue",
 // CHECK-NEXT:        "isPartOfExplicitCast": true,
 // CHECK-NEXT:        "inner": [
@@ -1343,7 +1340,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "const int *"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "castKind": "BitCast",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
@@ -1364,7 +1361,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "const S *"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "castKind": "LValueToRValue",
 // CHECK-NEXT:        "isPartOfExplicitCast": true,
 // CHECK-NEXT:        "inner": [
@@ -1405,7 +1402,6 @@ void TestNonADLCall3() {
 // CHECK-NEXT:  ]
 // CHECK-NEXT: }
 
-
 // CHECK:  "kind": "FunctionTemplateDecl",
 // CHECK-NEXT:  "loc": {
 // CHECK-NEXT:   "offset": 1326,
@@ -1549,7 +1545,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "unsigned long"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "name": "Ts"
 // CHECK-NEXT:       },
 // CHECK-NEXT:       {
@@ -1571,7 +1567,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "bool"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
 // CHECK-NEXT:          "id": "0x{{.*}}",
@@ -1591,7 +1587,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "qualType": "long"
 // CHECK-NEXT:          },
-// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "valueCategory": "prvalue",
 // CHECK-NEXT:          "opcode": "-",
 // CHECK-NEXT:          "inner": [
 // CHECK-NEXT:           {
@@ -1612,7 +1608,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "qualType": "int *"
 // CHECK-NEXT:            },
-// CHECK-NEXT:            "valueCategory": "rvalue",
+// CHECK-NEXT:            "valueCategory": "prvalue",
 // CHECK-NEXT:            "castKind": "LValueToRValue",
 // CHECK-NEXT:            "inner": [
 // CHECK-NEXT:             {
@@ -1664,7 +1660,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "qualType": "int *"
 // CHECK-NEXT:            },
-// CHECK-NEXT:            "valueCategory": "rvalue",
+// CHECK-NEXT:            "valueCategory": "prvalue",
 // CHECK-NEXT:            "castKind": "LValueToRValue",
 // CHECK-NEXT:            "inner": [
 // CHECK-NEXT:             {
@@ -1721,7 +1717,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int *"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "isGlobal": true,
 // CHECK-NEXT:        "operatorNewDecl": {
 // CHECK-NEXT:         "id": "0x{{.*}}",
@@ -1751,7 +1747,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int *"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "operatorNewDecl": {
 // CHECK-NEXT:         "id": "0x{{.*}}",
 // CHECK-NEXT:         "kind": "FunctionDecl",
@@ -1780,7 +1776,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int *"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "initStyle": "list",
 // CHECK-NEXT:        "operatorNewDecl": {
 // CHECK-NEXT:         "id": "0x{{.*}}",
@@ -1809,7 +1805,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "qualType": "int"
 // CHECK-NEXT:          },
-// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "valueCategory": "prvalue",
 // CHECK-NEXT:          "inner": [
 // CHECK-NEXT:           {
 // CHECK-NEXT:            "id": "0x{{.*}}",
@@ -1829,7 +1825,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "qualType": "int"
 // CHECK-NEXT:            },
-// CHECK-NEXT:            "valueCategory": "rvalue",
+// CHECK-NEXT:            "valueCategory": "prvalue",
 // CHECK-NEXT:            "value": "12"
 // CHECK-NEXT:           }
 // CHECK-NEXT:          ]
@@ -1855,7 +1851,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int *"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "isArray": true,
 // CHECK-NEXT:        "operatorNewDecl": {
 // CHECK-NEXT:         "id": "0x{{.*}}",
@@ -1884,7 +1880,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "qualType": "unsigned long"
 // CHECK-NEXT:          },
-// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "valueCategory": "prvalue",
 // CHECK-NEXT:          "castKind": "IntegralCast",
 // CHECK-NEXT:          "inner": [
 // CHECK-NEXT:           {
@@ -1905,7 +1901,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "qualType": "int"
 // CHECK-NEXT:            },
-// CHECK-NEXT:            "valueCategory": "rvalue",
+// CHECK-NEXT:            "valueCategory": "prvalue",
 // CHECK-NEXT:            "value": "2"
 // CHECK-NEXT:           }
 // CHECK-NEXT:          ]
@@ -1931,7 +1927,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int *"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "isArray": true,
 // CHECK-NEXT:        "initStyle": "list",
 // CHECK-NEXT:        "operatorNewDecl": {
@@ -1961,7 +1957,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "qualType": "unsigned long"
 // CHECK-NEXT:          },
-// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "valueCategory": "prvalue",
 // CHECK-NEXT:          "castKind": "IntegralCast",
 // CHECK-NEXT:          "inner": [
 // CHECK-NEXT:           {
@@ -1982,7 +1978,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "qualType": "int"
 // CHECK-NEXT:            },
-// CHECK-NEXT:            "valueCategory": "rvalue",
+// CHECK-NEXT:            "valueCategory": "prvalue",
 // CHECK-NEXT:            "value": "2"
 // CHECK-NEXT:           }
 // CHECK-NEXT:          ]
@@ -2005,7 +2001,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "qualType": "int [2]"
 // CHECK-NEXT:          },
-// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "valueCategory": "prvalue",
 // CHECK-NEXT:          "inner": [
 // CHECK-NEXT:           {
 // CHECK-NEXT:            "id": "0x{{.*}}",
@@ -2025,7 +2021,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "qualType": "int"
 // CHECK-NEXT:            },
-// CHECK-NEXT:            "valueCategory": "rvalue",
+// CHECK-NEXT:            "valueCategory": "prvalue",
 // CHECK-NEXT:            "value": "1"
 // CHECK-NEXT:           },
 // CHECK-NEXT:           {
@@ -2046,7 +2042,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "qualType": "int"
 // CHECK-NEXT:            },
-// CHECK-NEXT:            "valueCategory": "rvalue",
+// CHECK-NEXT:            "valueCategory": "prvalue",
 // CHECK-NEXT:            "value": "2"
 // CHECK-NEXT:           }
 // CHECK-NEXT:          ]
@@ -2072,7 +2068,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int *"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "isPlacement": true,
 // CHECK-NEXT:        "operatorNewDecl": {
 // CHECK-NEXT:         "id": "0x{{.*}}",
@@ -2101,7 +2097,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "qualType": "void *"
 // CHECK-NEXT:          },
-// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "valueCategory": "prvalue",
 // CHECK-NEXT:          "castKind": "BitCast",
 // CHECK-NEXT:          "inner": [
 // CHECK-NEXT:           {
@@ -2122,7 +2118,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "qualType": "int *"
 // CHECK-NEXT:            },
-// CHECK-NEXT:            "valueCategory": "rvalue",
+// CHECK-NEXT:            "valueCategory": "prvalue",
 // CHECK-NEXT:            "castKind": "LValueToRValue",
 // CHECK-NEXT:            "inner": [
 // CHECK-NEXT:             {
@@ -2178,7 +2174,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int *"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "isPlacement": true,
 // CHECK-NEXT:        "initStyle": "list",
 // CHECK-NEXT:        "operatorNewDecl": {
@@ -2208,7 +2204,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "qualType": "int"
 // CHECK-NEXT:          },
-// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "valueCategory": "prvalue",
 // CHECK-NEXT:          "inner": [
 // CHECK-NEXT:           {
 // CHECK-NEXT:            "id": "0x{{.*}}",
@@ -2228,7 +2224,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "qualType": "int"
 // CHECK-NEXT:            },
-// CHECK-NEXT:            "valueCategory": "rvalue",
+// CHECK-NEXT:            "valueCategory": "prvalue",
 // CHECK-NEXT:            "value": "12"
 // CHECK-NEXT:           }
 // CHECK-NEXT:          ]
@@ -2251,7 +2247,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "qualType": "void *"
 // CHECK-NEXT:          },
-// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "valueCategory": "prvalue",
 // CHECK-NEXT:          "castKind": "BitCast",
 // CHECK-NEXT:          "inner": [
 // CHECK-NEXT:           {
@@ -2272,7 +2268,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "qualType": "int *"
 // CHECK-NEXT:            },
-// CHECK-NEXT:            "valueCategory": "rvalue",
+// CHECK-NEXT:            "valueCategory": "prvalue",
 // CHECK-NEXT:            "castKind": "LValueToRValue",
 // CHECK-NEXT:            "inner": [
 // CHECK-NEXT:             {
@@ -2328,7 +2324,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "void"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "isGlobal": true,
 // CHECK-NEXT:        "operatorDeleteDecl": {
 // CHECK-NEXT:         "id": "0x{{.*}}",
@@ -2357,7 +2353,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "qualType": "int *"
 // CHECK-NEXT:          },
-// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "valueCategory": "prvalue",
 // CHECK-NEXT:          "castKind": "LValueToRValue",
 // CHECK-NEXT:          "inner": [
 // CHECK-NEXT:           {
@@ -2411,7 +2407,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "void"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "isArray": true,
 // CHECK-NEXT:        "isArrayAsWritten": true,
 // CHECK-NEXT:        "operatorDeleteDecl": {
@@ -2441,7 +2437,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "qualType": "int *"
 // CHECK-NEXT:          },
-// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "valueCategory": "prvalue",
 // CHECK-NEXT:          "castKind": "LValueToRValue",
 // CHECK-NEXT:          "inner": [
 // CHECK-NEXT:           {
@@ -2483,7 +2479,6 @@ void TestNonADLCall3() {
 // CHECK-NEXT:  ]
 // CHECK-NEXT: }
 
-
 // CHECK:  "kind": "FunctionDecl",
 // CHECK-NEXT:  "loc": {
 // CHECK-NEXT:   "offset": 1541,
@@ -2629,7 +2624,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "void"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
 // CHECK-NEXT:        "id": "0x{{.*}}",
@@ -2649,7 +2644,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "<bound member function type>"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "name": "func",
 // CHECK-NEXT:        "isArrow": false,
 // CHECK-NEXT:        "referencedMemberDecl": "0x{{.*}}",
@@ -2702,7 +2697,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "value": "0"
 // CHECK-NEXT:       }
 // CHECK-NEXT:      ]
@@ -2726,7 +2721,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "void"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
 // CHECK-NEXT:        "id": "0x{{.*}}",
@@ -2746,7 +2741,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "<bound member function type>"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "name": "func",
 // CHECK-NEXT:        "isArrow": true,
 // CHECK-NEXT:        "referencedMemberDecl": "0x{{.*}}",
@@ -2769,7 +2764,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "qualType": "S *"
 // CHECK-NEXT:          },
-// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "valueCategory": "prvalue",
 // CHECK-NEXT:          "castKind": "LValueToRValue",
 // CHECK-NEXT:          "inner": [
 // CHECK-NEXT:           {
@@ -2822,7 +2817,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "value": "0"
 // CHECK-NEXT:       }
 // CHECK-NEXT:      ]
@@ -2847,7 +2842,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:       "desugaredQualType": "int",
 // CHECK-NEXT:       "qualType": "int"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
 // CHECK-NEXT:        "id": "0x{{.*}}",
@@ -2867,7 +2862,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "<bound member function type>"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "name": "foo",
 // CHECK-NEXT:        "isArrow": true,
 // CHECK-NEXT:        "referencedMemberDecl": "0x{{.*}}",
@@ -2890,7 +2885,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "qualType": "S *"
 // CHECK-NEXT:          },
-// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "valueCategory": "prvalue",
 // CHECK-NEXT:          "castKind": "LValueToRValue",
 // CHECK-NEXT:          "inner": [
 // CHECK-NEXT:           {
@@ -2947,7 +2942,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:       "desugaredQualType": "float",
 // CHECK-NEXT:       "qualType": "float"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
 // CHECK-NEXT:        "id": "0x{{.*}}",
@@ -2967,7 +2962,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "<bound member function type>"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "name": "foo",
 // CHECK-NEXT:        "isArrow": false,
 // CHECK-NEXT:        "referencedMemberDecl": "0x{{.*}}",
@@ -3023,7 +3018,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "void"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
 // CHECK-NEXT:        "id": "0x{{.*}}",
@@ -3043,7 +3038,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "<bound member function type>"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "name": "~S",
 // CHECK-NEXT:        "isArrow": true,
 // CHECK-NEXT:        "referencedMemberDecl": "0x{{.*}}",
@@ -3066,7 +3061,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "qualType": "S *"
 // CHECK-NEXT:          },
-// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "valueCategory": "prvalue",
 // CHECK-NEXT:          "castKind": "LValueToRValue",
 // CHECK-NEXT:          "inner": [
 // CHECK-NEXT:           {
@@ -3122,7 +3117,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "void"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
 // CHECK-NEXT:        "id": "0x{{.*}}",
@@ -3142,7 +3137,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "<bound member function type>"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "name": "~S",
 // CHECK-NEXT:        "isArrow": false,
 // CHECK-NEXT:        "referencedMemberDecl": "0x{{.*}}",
@@ -3198,7 +3193,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "void"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
 // CHECK-NEXT:        "id": "0x{{.*}}",
@@ -3218,7 +3213,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "<bound member function type>"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "name": "~S",
 // CHECK-NEXT:        "isArrow": false,
 // CHECK-NEXT:        "referencedMemberDecl": "0x{{.*}}",
@@ -3274,7 +3269,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "void"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
 // CHECK-NEXT:        "id": "0x{{.*}}",
@@ -3294,7 +3289,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "<bound member function type>"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "name": "~S",
 // CHECK-NEXT:        "isArrow": true,
 // CHECK-NEXT:        "referencedMemberDecl": "0x{{.*}}",
@@ -3317,7 +3312,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "qualType": "S *"
 // CHECK-NEXT:          },
-// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "valueCategory": "prvalue",
 // CHECK-NEXT:          "castKind": "LValueToRValue",
 // CHECK-NEXT:          "inner": [
 // CHECK-NEXT:           {
@@ -3373,7 +3368,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "void"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
 // CHECK-NEXT:        "id": "0x{{.*}}",
@@ -3393,7 +3388,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "<bound member function type>"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "name": "~U",
 // CHECK-NEXT:        "isArrow": true,
 // CHECK-NEXT:        "referencedMemberDecl": "0x{{.*}}",
@@ -3416,7 +3411,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "qualType": "U<int> *"
 // CHECK-NEXT:          },
-// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "valueCategory": "prvalue",
 // CHECK-NEXT:          "castKind": "LValueToRValue",
 // CHECK-NEXT:          "inner": [
 // CHECK-NEXT:           {
@@ -3560,7 +3555,6 @@ void TestNonADLCall3() {
 // CHECK-NEXT:  ]
 // CHECK-NEXT: }
 
-
 // CHECK:  "kind": "FunctionTemplateDecl",
 // CHECK-NEXT:  "loc": {
 // CHECK-NEXT:   "offset": 1841,
@@ -3869,7 +3863,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:                "type": {
 // CHECK-NEXT:                 "qualType": "V *"
 // CHECK-NEXT:                },
-// CHECK-NEXT:                "valueCategory": "rvalue"
+// CHECK-NEXT:                "valueCategory": "prvalue"
 // CHECK-NEXT:               },
 // CHECK-NEXT:               {
 // CHECK-NEXT:                "id": "0x{{.*}}",
@@ -3890,7 +3884,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:                "type": {
 // CHECK-NEXT:                 "qualType": "(lambda at {{.*}}:98:7)"
 // CHECK-NEXT:                },
-// CHECK-NEXT:                "valueCategory": "rvalue",
+// CHECK-NEXT:                "valueCategory": "prvalue",
 // CHECK-NEXT:                "inner": [
 // CHECK-NEXT:                 {
 // CHECK-NEXT:                  "id": "0x{{.*}}",
@@ -4038,7 +4032,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:                  "type": {
 // CHECK-NEXT:                   "qualType": "NULL TYPE"
 // CHECK-NEXT:                  },
-// CHECK-NEXT:                  "valueCategory": "rvalue",
+// CHECK-NEXT:                  "valueCategory": "prvalue",
 // CHECK-NEXT:                  "inner": [
 // CHECK-NEXT:                   {
 // CHECK-NEXT:                    "id": "0x{{.*}}",
@@ -4058,7 +4052,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:                    "type": {
 // CHECK-NEXT:                     "qualType": "V *"
 // CHECK-NEXT:                    },
-// CHECK-NEXT:                    "valueCategory": "rvalue"
+// CHECK-NEXT:                    "valueCategory": "prvalue"
 // CHECK-NEXT:                   }
 // CHECK-NEXT:                  ]
 // CHECK-NEXT:                 },
@@ -4099,7 +4093,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:                "type": {
 // CHECK-NEXT:                 "qualType": "(lambda at {{.*}}:99:7)"
 // CHECK-NEXT:                },
-// CHECK-NEXT:                "valueCategory": "rvalue",
+// CHECK-NEXT:                "valueCategory": "prvalue",
 // CHECK-NEXT:                "inner": [
 // CHECK-NEXT:                 {
 // CHECK-NEXT:                  "id": "0x{{.*}}",
@@ -4249,7 +4243,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:                  "type": {
 // CHECK-NEXT:                   "qualType": "NULL TYPE"
 // CHECK-NEXT:                  },
-// CHECK-NEXT:                  "valueCategory": "rvalue",
+// CHECK-NEXT:                  "valueCategory": "prvalue",
 // CHECK-NEXT:                  "inner": [
 // CHECK-NEXT:                   {
 // CHECK-NEXT:                    "id": "0x{{.*}}",
@@ -4269,7 +4263,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:                    "type": {
 // CHECK-NEXT:                     "qualType": "<dependent type>"
 // CHECK-NEXT:                    },
-// CHECK-NEXT:                    "valueCategory": "rvalue",
+// CHECK-NEXT:                    "valueCategory": "prvalue",
 // CHECK-NEXT:                    "isPostfix": false,
 // CHECK-NEXT:                    "opcode": "*",
 // CHECK-NEXT:                    "canOverflow": false,
@@ -4292,7 +4286,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:                      "type": {
 // CHECK-NEXT:                       "qualType": "V *"
 // CHECK-NEXT:                      },
-// CHECK-NEXT:                      "valueCategory": "rvalue"
+// CHECK-NEXT:                      "valueCategory": "prvalue"
 // CHECK-NEXT:                     }
 // CHECK-NEXT:                    ]
 // CHECK-NEXT:                   }
@@ -4416,7 +4410,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "(lambda at {{.*}}:105:3)"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
 // CHECK-NEXT:          "id": "0x{{.*}}",
@@ -4618,7 +4612,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "(lambda at {{.*}}:106:3)"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
 // CHECK-NEXT:          "id": "0x{{.*}}",
@@ -4876,7 +4870,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "(lambda at {{.*}}:107:3)"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
 // CHECK-NEXT:          "id": "0x{{.*}}",
@@ -5024,7 +5018,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "qualType": "NULL TYPE"
 // CHECK-NEXT:          },
-// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "valueCategory": "prvalue",
 // CHECK-NEXT:          "inner": [
 // CHECK-NEXT:           {
 // CHECK-NEXT:            "id": "0x{{.*}}",
@@ -5093,7 +5087,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "(lambda at {{.*}}:108:3)"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
 // CHECK-NEXT:          "id": "0x{{.*}}",
@@ -5239,7 +5233,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "(lambda at {{.*}}:109:3)"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
 // CHECK-NEXT:          "id": "0x{{.*}}",
@@ -5481,7 +5475,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "(lambda at {{.*}}:110:3)"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
 // CHECK-NEXT:          "id": "0x{{.*}}",
@@ -5627,7 +5621,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "(lambda at {{.*}}:111:3)"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
 // CHECK-NEXT:          "id": "0x{{.*}}",
@@ -5869,7 +5863,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "(lambda at {{.*}}:112:3)"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
 // CHECK-NEXT:          "id": "0x{{.*}}",
@@ -6004,7 +5998,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:                  "type": {
 // CHECK-NEXT:                   "qualType": "int"
 // CHECK-NEXT:                  },
-// CHECK-NEXT:                  "valueCategory": "rvalue",
+// CHECK-NEXT:                  "valueCategory": "prvalue",
 // CHECK-NEXT:                  "opcode": "+",
 // CHECK-NEXT:                  "inner": [
 // CHECK-NEXT:                   {
@@ -6025,7 +6019,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:                    "type": {
 // CHECK-NEXT:                     "qualType": "int"
 // CHECK-NEXT:                    },
-// CHECK-NEXT:                    "valueCategory": "rvalue",
+// CHECK-NEXT:                    "valueCategory": "prvalue",
 // CHECK-NEXT:                    "castKind": "LValueToRValue",
 // CHECK-NEXT:                    "inner": [
 // CHECK-NEXT:                     {
@@ -6076,7 +6070,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:                    "type": {
 // CHECK-NEXT:                     "qualType": "int"
 // CHECK-NEXT:                    },
-// CHECK-NEXT:                    "valueCategory": "rvalue",
+// CHECK-NEXT:                    "valueCategory": "prvalue",
 // CHECK-NEXT:                    "castKind": "LValueToRValue",
 // CHECK-NEXT:                    "inner": [
 // CHECK-NEXT:                     {
@@ -6187,7 +6181,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "qualType": "int"
 // CHECK-NEXT:          },
-// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "valueCategory": "prvalue",
 // CHECK-NEXT:          "castKind": "LValueToRValue",
 // CHECK-NEXT:          "inner": [
 // CHECK-NEXT:           {
@@ -6298,7 +6292,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:              "type": {
 // CHECK-NEXT:               "qualType": "int"
 // CHECK-NEXT:              },
-// CHECK-NEXT:              "valueCategory": "rvalue",
+// CHECK-NEXT:              "valueCategory": "prvalue",
 // CHECK-NEXT:              "opcode": "+",
 // CHECK-NEXT:              "inner": [
 // CHECK-NEXT:               {
@@ -6319,7 +6313,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:                "type": {
 // CHECK-NEXT:                 "qualType": "int"
 // CHECK-NEXT:                },
-// CHECK-NEXT:                "valueCategory": "rvalue",
+// CHECK-NEXT:                "valueCategory": "prvalue",
 // CHECK-NEXT:                "castKind": "LValueToRValue",
 // CHECK-NEXT:                "inner": [
 // CHECK-NEXT:                 {
@@ -6370,7 +6364,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:                "type": {
 // CHECK-NEXT:                 "qualType": "int"
 // CHECK-NEXT:                },
-// CHECK-NEXT:                "valueCategory": "rvalue",
+// CHECK-NEXT:                "valueCategory": "prvalue",
 // CHECK-NEXT:                "castKind": "LValueToRValue",
 // CHECK-NEXT:                "inner": [
 // CHECK-NEXT:                 {
@@ -6430,7 +6424,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "(lambda at {{.*}}:113:3)"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
 // CHECK-NEXT:          "id": "0x{{.*}}",
@@ -6604,7 +6598,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "qualType": "NULL TYPE"
 // CHECK-NEXT:          },
-// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "valueCategory": "prvalue",
 // CHECK-NEXT:          "inner": [
 // CHECK-NEXT:           {
 // CHECK-NEXT:            "id": "0x{{.*}}",
@@ -6654,7 +6648,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "qualType": "int"
 // CHECK-NEXT:          },
-// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "valueCategory": "prvalue",
 // CHECK-NEXT:          "value": "12"
 // CHECK-NEXT:         },
 // CHECK-NEXT:         {
@@ -6694,7 +6688,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "(lambda at {{.*}}:114:3)"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
 // CHECK-NEXT:          "id": "0x{{.*}}",
@@ -6897,7 +6891,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "(lambda at {{.*}}:115:3)"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
 // CHECK-NEXT:          "id": "0x{{.*}}",
@@ -7099,7 +7093,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "(lambda at {{.*}}:116:3)"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
 // CHECK-NEXT:          "id": "0x{{.*}}",
@@ -7301,7 +7295,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "(lambda at {{.*}}:117:3)"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
 // CHECK-NEXT:          "id": "0x{{.*}}",
@@ -7440,7 +7434,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:                  "type": {
 // CHECK-NEXT:                   "qualType": "int"
 // CHECK-NEXT:                  },
-// CHECK-NEXT:                  "valueCategory": "rvalue",
+// CHECK-NEXT:                  "valueCategory": "prvalue",
 // CHECK-NEXT:                  "value": "0"
 // CHECK-NEXT:                 }
 // CHECK-NEXT:                ]
@@ -7557,7 +7551,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:              "type": {
 // CHECK-NEXT:               "qualType": "int"
 // CHECK-NEXT:              },
-// CHECK-NEXT:              "valueCategory": "rvalue",
+// CHECK-NEXT:              "valueCategory": "prvalue",
 // CHECK-NEXT:              "value": "0"
 // CHECK-NEXT:             }
 // CHECK-NEXT:            ]
@@ -7585,7 +7579,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "<dependent type>"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {},
 // CHECK-NEXT:         {
@@ -7638,7 +7632,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "<dependent type>"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {},
 // CHECK-NEXT:         {},
@@ -7691,7 +7685,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "<dependent type>"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {},
 // CHECK-NEXT:         {
@@ -7759,7 +7753,6 @@ void TestNonADLCall3() {
 // CHECK-NEXT:  ]
 // CHECK-NEXT: }
 
-
 // CHECK:  "kind": "FunctionDecl",
 // CHECK-NEXT:  "loc": {
 // CHECK-NEXT:   "offset": 2336,
@@ -7870,7 +7863,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:           "desugaredQualType": "NS::X",
 // CHECK-NEXT:           "qualType": "NS::X"
 // CHECK-NEXT:          },
-// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "valueCategory": "prvalue",
 // CHECK-NEXT:          "ctorType": {
 // CHECK-NEXT:           "qualType": "void () noexcept"
 // CHECK-NEXT:          },
@@ -7900,7 +7893,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "void"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "adl": true,
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
@@ -7921,7 +7914,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "void (*)(NS::X)"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "castKind": "FunctionToPointerDecay",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
@@ -7972,7 +7965,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "NS::X"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "ctorType": {
 // CHECK-NEXT:         "qualType": "void (const NS::X &) noexcept"
 // CHECK-NEXT:        },
@@ -8055,7 +8048,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "void"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "adl": true,
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
@@ -8076,7 +8069,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "void (*)(...)"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "castKind": "FunctionToPointerDecay",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
@@ -8128,7 +8121,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:         "desugaredQualType": "NS::X",
 // CHECK-NEXT:         "qualType": "NS::X"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "ctorType": {
 // CHECK-NEXT:         "qualType": "void (const NS::X &) noexcept"
 // CHECK-NEXT:        },
@@ -8197,7 +8190,6 @@ void TestNonADLCall3() {
 // CHECK-NEXT:  ]
 // CHECK-NEXT: }
 
-
 // CHECK:  "kind": "FunctionDecl",
 // CHECK-NEXT:  "loc": {
 // CHECK-NEXT:   "offset": 2387,
@@ -8308,7 +8300,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:           "desugaredQualType": "NS::X",
 // CHECK-NEXT:           "qualType": "NS::X"
 // CHECK-NEXT:          },
-// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "valueCategory": "prvalue",
 // CHECK-NEXT:          "ctorType": {
 // CHECK-NEXT:           "qualType": "void () noexcept"
 // CHECK-NEXT:          },
@@ -8338,7 +8330,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "void"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
 // CHECK-NEXT:        "id": "0x{{.*}}",
@@ -8358,7 +8350,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "void (*)(NS::X)"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "castKind": "FunctionToPointerDecay",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
@@ -8409,7 +8401,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "NS::X"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "ctorType": {
 // CHECK-NEXT:         "qualType": "void (const NS::X &) noexcept"
 // CHECK-NEXT:        },
@@ -8478,7 +8470,6 @@ void TestNonADLCall3() {
 // CHECK-NEXT:  ]
 // CHECK-NEXT: }
 
-
 // CHECK:  "kind": "FunctionDecl",
 // CHECK-NEXT:  "loc": {
 // CHECK-NEXT:   "offset": 2437,
@@ -8589,7 +8580,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:           "desugaredQualType": "NS::X",
 // CHECK-NEXT:           "qualType": "NS::X"
 // CHECK-NEXT:          },
-// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "valueCategory": "prvalue",
 // CHECK-NEXT:          "ctorType": {
 // CHECK-NEXT:           "qualType": "void () noexcept"
 // CHECK-NEXT:          },
@@ -8660,7 +8651,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "void"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
 // CHECK-NEXT:        "id": "0x{{.*}}",
@@ -8680,7 +8671,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "void (*)(NS::X)"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "castKind": "FunctionToPointerDecay",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
@@ -8736,7 +8727,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "NS::X"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "ctorType": {
 // CHECK-NEXT:         "qualType": "void (const NS::X &) noexcept"
 // CHECK-NEXT:        },
@@ -8819,7 +8810,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "void"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "adl": true,
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
@@ -8840,7 +8831,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "void (*)(...)"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "castKind": "FunctionToPointerDecay",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
@@ -8892,7 +8883,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:         "desugaredQualType": "NS::X",
 // CHECK-NEXT:         "qualType": "NS::X"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "ctorType": {
 // CHECK-NEXT:         "qualType": "void (const NS::X &) noexcept"
 // CHECK-NEXT:        },
@@ -8961,7 +8952,6 @@ void TestNonADLCall3() {
 // CHECK-NEXT:  ]
 // CHECK-NEXT: }
 
-
 // CHECK:  "kind": "FunctionDecl",
 // CHECK-NEXT:  "loc": {
 // CHECK-NEXT:   "offset": 2559,
@@ -9070,7 +9060,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "qualType": "NS::X"
 // CHECK-NEXT:          },
-// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "valueCategory": "prvalue",
 // CHECK-NEXT:          "ctorType": {
 // CHECK-NEXT:           "qualType": "void () noexcept"
 // CHECK-NEXT:          },
@@ -9100,7 +9090,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "void"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
 // CHECK-NEXT:        "id": "0x{{.*}}",
@@ -9120,7 +9110,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "void (*)(NS::X)"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "castKind": "FunctionToPointerDecay",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
@@ -9171,7 +9161,7 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "NS::X"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "ctorType": {
 // CHECK-NEXT:         "qualType": "void (const NS::X &) noexcept"
 // CHECK-NEXT:        },

diff  --git a/clang/test/AST/ast-dump-expr-json.m b/clang/test/AST/ast-dump-expr-json.m
index 6b6e51fe59767..9004a33c1ae94 100644
--- a/clang/test/AST/ast-dump-expr-json.m
+++ b/clang/test/AST/ast-dump-expr-json.m
@@ -97,7 +97,6 @@ void TestObjCBoolLiteral() {
 
 // NOTE: CHECK lines have been autogenerated by gen_ast_dump_json_test.py
 
-
 // CHECK:  "kind": "FunctionDecl",
 // CHECK-NEXT:  "loc": {
 // CHECK-NEXT:   "offset": 1506,
@@ -162,7 +161,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "char *"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "castKind": "ArrayToPointerDecay",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
@@ -209,7 +208,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "char *"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "castKind": "ArrayToPointerDecay",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
@@ -243,7 +242,6 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:  ]
 // CHECK-NEXT: }
 
-
 // CHECK:  "kind": "FunctionDecl",
 // CHECK-NEXT:  "loc": {
 // CHECK-NEXT:   "offset": 1574,
@@ -335,7 +333,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "void"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "selector": "method1",
 // CHECK-NEXT:      "receiverKind": "instance",
 // CHECK-NEXT:      "inner": [
@@ -357,7 +355,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "I *"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "castKind": "LValueToRValue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
@@ -411,7 +409,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "void"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "selector": "method2",
 // CHECK-NEXT:      "receiverKind": "class",
 // CHECK-NEXT:      "classType": {
@@ -423,7 +421,6 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:  ]
 // CHECK-NEXT: }
 
-
 // CHECK:  "kind": "FunctionDecl",
 // CHECK-NEXT:  "loc": {
 // CHECK-NEXT:   "offset": 1640,
@@ -488,7 +485,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "NSNumber *"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "selector": "numberWithInt:",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
@@ -509,7 +506,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
 // CHECK-NEXT:          "id": "0x{{.*}}",
@@ -529,7 +526,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "qualType": "int"
 // CHECK-NEXT:          },
-// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "valueCategory": "prvalue",
 // CHECK-NEXT:          "opcode": "+",
 // CHECK-NEXT:          "inner": [
 // CHECK-NEXT:           {
@@ -550,7 +547,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "qualType": "int"
 // CHECK-NEXT:            },
-// CHECK-NEXT:            "valueCategory": "rvalue",
+// CHECK-NEXT:            "valueCategory": "prvalue",
 // CHECK-NEXT:            "value": "1"
 // CHECK-NEXT:           },
 // CHECK-NEXT:           {
@@ -571,7 +568,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "qualType": "int"
 // CHECK-NEXT:            },
-// CHECK-NEXT:            "valueCategory": "rvalue",
+// CHECK-NEXT:            "valueCategory": "prvalue",
 // CHECK-NEXT:            "value": "1"
 // CHECK-NEXT:           }
 // CHECK-NEXT:          ]
@@ -585,7 +582,6 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:  ]
 // CHECK-NEXT: }
 
-
 // CHECK:  "kind": "FunctionDecl",
 // CHECK-NEXT:  "loc": {
 // CHECK-NEXT:   "offset": 1678,
@@ -697,7 +693,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:           "qualType": "SEL",
 // CHECK-NEXT:           "typeAliasDeclId": "0x{{.*}}"
 // CHECK-NEXT:          },
-// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "valueCategory": "prvalue",
 // CHECK-NEXT:          "selector": "dealloc"
 // CHECK-NEXT:         }
 // CHECK-NEXT:        ]
@@ -709,7 +705,6 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:  ]
 // CHECK-NEXT: }
 
-
 // CHECK:  "kind": "FunctionDecl",
 // CHECK-NEXT:  "loc": {
 // CHECK-NEXT:   "offset": 1737,
@@ -803,7 +798,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "int"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "selector": "conformsToProtocol:",
 // CHECK-NEXT:      "receiverKind": "instance",
 // CHECK-NEXT:      "inner": [
@@ -827,7 +822,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:         "qualType": "id",
 // CHECK-NEXT:         "typeAliasDeclId": "0x{{.*}}"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "castKind": "LValueToRValue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
@@ -882,7 +877,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "Protocol *"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "protocol": {
 // CHECK-NEXT:         "id": "0x{{.*}}",
 // CHECK-NEXT:         "kind": "ObjCProtocolDecl",
@@ -896,7 +891,6 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:  ]
 // CHECK-NEXT: }
 
-
 // CHECK:  "kind": "FunctionDecl",
 // CHECK-NEXT:  "loc": {
 // CHECK-NEXT:   "offset": 1817,
@@ -988,7 +982,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "unsigned int"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
 // CHECK-NEXT:        "id": "0x{{.*}}",
@@ -1008,7 +1002,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "opcode": "=",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
@@ -1056,7 +1050,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "qualType": "J *"
 // CHECK-NEXT:            },
-// CHECK-NEXT:            "valueCategory": "rvalue",
+// CHECK-NEXT:            "valueCategory": "prvalue",
 // CHECK-NEXT:            "inner": [
 // CHECK-NEXT:             {
 // CHECK-NEXT:              "id": "0x{{.*}}",
@@ -1076,7 +1070,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:              "type": {
 // CHECK-NEXT:               "qualType": "J *"
 // CHECK-NEXT:              },
-// CHECK-NEXT:              "valueCategory": "rvalue",
+// CHECK-NEXT:              "valueCategory": "prvalue",
 // CHECK-NEXT:              "castKind": "LValueToRValue",
 // CHECK-NEXT:              "inner": [
 // CHECK-NEXT:               {
@@ -1131,7 +1125,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "qualType": "int"
 // CHECK-NEXT:          },
-// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "valueCategory": "prvalue",
 // CHECK-NEXT:          "inner": [
 // CHECK-NEXT:           {
 // CHECK-NEXT:            "id": "0x{{.*}}",
@@ -1151,7 +1145,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "qualType": "int"
 // CHECK-NEXT:            },
-// CHECK-NEXT:            "valueCategory": "rvalue",
+// CHECK-NEXT:            "valueCategory": "prvalue",
 // CHECK-NEXT:            "value": "12"
 // CHECK-NEXT:           }
 // CHECK-NEXT:          ]
@@ -1176,7 +1170,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "J *"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
 // CHECK-NEXT:          "id": "0x{{.*}}",
@@ -1196,7 +1190,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "qualType": "J *"
 // CHECK-NEXT:          },
-// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "valueCategory": "prvalue",
 // CHECK-NEXT:          "castKind": "LValueToRValue",
 // CHECK-NEXT:          "inner": [
 // CHECK-NEXT:           {
@@ -1249,7 +1243,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
 // CHECK-NEXT:          "id": "0x{{.*}}",
@@ -1269,7 +1263,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "qualType": "int"
 // CHECK-NEXT:          },
-// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "valueCategory": "prvalue",
 // CHECK-NEXT:          "value": "12"
 // CHECK-NEXT:         }
 // CHECK-NEXT:        ]
@@ -1292,7 +1286,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "unsigned int"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
 // CHECK-NEXT:          "id": "0x{{.*}}",
@@ -1312,7 +1306,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "qualType": "unsigned int"
 // CHECK-NEXT:          },
-// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "valueCategory": "prvalue",
 // CHECK-NEXT:          "castKind": "IntegralCast",
 // CHECK-NEXT:          "inner": [
 // CHECK-NEXT:           {
@@ -1333,7 +1327,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "qualType": "int"
 // CHECK-NEXT:            },
-// CHECK-NEXT:            "valueCategory": "rvalue",
+// CHECK-NEXT:            "valueCategory": "prvalue",
 // CHECK-NEXT:            "inner": [
 // CHECK-NEXT:             {
 // CHECK-NEXT:              "id": "0x{{.*}}",
@@ -1353,7 +1347,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:              "type": {
 // CHECK-NEXT:               "qualType": "int"
 // CHECK-NEXT:              },
-// CHECK-NEXT:              "valueCategory": "rvalue",
+// CHECK-NEXT:              "valueCategory": "prvalue",
 // CHECK-NEXT:              "value": "12"
 // CHECK-NEXT:             }
 // CHECK-NEXT:            ]
@@ -1380,7 +1374,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "void"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "selector": "setProp:",
 // CHECK-NEXT:        "receiverKind": "instance",
 // CHECK-NEXT:        "inner": [
@@ -1402,7 +1396,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "qualType": "J *"
 // CHECK-NEXT:          },
-// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "valueCategory": "prvalue",
 // CHECK-NEXT:          "inner": [
 // CHECK-NEXT:           {
 // CHECK-NEXT:            "id": "0x{{.*}}",
@@ -1422,7 +1416,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "qualType": "J *"
 // CHECK-NEXT:            },
-// CHECK-NEXT:            "valueCategory": "rvalue",
+// CHECK-NEXT:            "valueCategory": "prvalue",
 // CHECK-NEXT:            "castKind": "LValueToRValue",
 // CHECK-NEXT:            "inner": [
 // CHECK-NEXT:             {
@@ -1475,7 +1469,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "qualType": "unsigned int"
 // CHECK-NEXT:          },
-// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "valueCategory": "prvalue",
 // CHECK-NEXT:          "inner": [
 // CHECK-NEXT:           {
 // CHECK-NEXT:            "id": "0x{{.*}}",
@@ -1495,7 +1489,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "qualType": "unsigned int"
 // CHECK-NEXT:            },
-// CHECK-NEXT:            "valueCategory": "rvalue",
+// CHECK-NEXT:            "valueCategory": "prvalue",
 // CHECK-NEXT:            "castKind": "IntegralCast",
 // CHECK-NEXT:            "inner": [
 // CHECK-NEXT:             {
@@ -1516,7 +1510,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:              "type": {
 // CHECK-NEXT:               "qualType": "int"
 // CHECK-NEXT:              },
-// CHECK-NEXT:              "valueCategory": "rvalue",
+// CHECK-NEXT:              "valueCategory": "prvalue",
 // CHECK-NEXT:              "inner": [
 // CHECK-NEXT:               {
 // CHECK-NEXT:                "id": "0x{{.*}}",
@@ -1536,7 +1530,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:                "type": {
 // CHECK-NEXT:                 "qualType": "int"
 // CHECK-NEXT:                },
-// CHECK-NEXT:                "valueCategory": "rvalue",
+// CHECK-NEXT:                "valueCategory": "prvalue",
 // CHECK-NEXT:                "value": "12"
 // CHECK-NEXT:               }
 // CHECK-NEXT:              ]
@@ -1611,7 +1605,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "qualType": "int"
 // CHECK-NEXT:          },
-// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "valueCategory": "prvalue",
 // CHECK-NEXT:          "castKind": "IntegralCast",
 // CHECK-NEXT:          "inner": [
 // CHECK-NEXT:           {
@@ -1632,7 +1626,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "qualType": "unsigned int"
 // CHECK-NEXT:            },
-// CHECK-NEXT:            "valueCategory": "rvalue",
+// CHECK-NEXT:            "valueCategory": "prvalue",
 // CHECK-NEXT:            "inner": [
 // CHECK-NEXT:             {
 // CHECK-NEXT:              "id": "0x{{.*}}",
@@ -1679,7 +1673,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:                "type": {
 // CHECK-NEXT:                 "qualType": "J *"
 // CHECK-NEXT:                },
-// CHECK-NEXT:                "valueCategory": "rvalue",
+// CHECK-NEXT:                "valueCategory": "prvalue",
 // CHECK-NEXT:                "inner": [
 // CHECK-NEXT:                 {
 // CHECK-NEXT:                  "id": "0x{{.*}}",
@@ -1699,7 +1693,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:                  "type": {
 // CHECK-NEXT:                   "qualType": "J *"
 // CHECK-NEXT:                  },
-// CHECK-NEXT:                  "valueCategory": "rvalue",
+// CHECK-NEXT:                  "valueCategory": "prvalue",
 // CHECK-NEXT:                  "castKind": "LValueToRValue",
 // CHECK-NEXT:                  "inner": [
 // CHECK-NEXT:                   {
@@ -1754,7 +1748,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:              "type": {
 // CHECK-NEXT:               "qualType": "J *"
 // CHECK-NEXT:              },
-// CHECK-NEXT:              "valueCategory": "rvalue",
+// CHECK-NEXT:              "valueCategory": "prvalue",
 // CHECK-NEXT:              "inner": [
 // CHECK-NEXT:               {
 // CHECK-NEXT:                "id": "0x{{.*}}",
@@ -1774,7 +1768,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:                "type": {
 // CHECK-NEXT:                 "qualType": "J *"
 // CHECK-NEXT:                },
-// CHECK-NEXT:                "valueCategory": "rvalue",
+// CHECK-NEXT:                "valueCategory": "prvalue",
 // CHECK-NEXT:                "castKind": "LValueToRValue",
 // CHECK-NEXT:                "inner": [
 // CHECK-NEXT:                 {
@@ -1827,7 +1821,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:              "type": {
 // CHECK-NEXT:               "qualType": "unsigned int"
 // CHECK-NEXT:              },
-// CHECK-NEXT:              "valueCategory": "rvalue",
+// CHECK-NEXT:              "valueCategory": "prvalue",
 // CHECK-NEXT:              "selector": "prop",
 // CHECK-NEXT:              "receiverKind": "instance",
 // CHECK-NEXT:              "inner": [
@@ -1849,7 +1843,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:                "type": {
 // CHECK-NEXT:                 "qualType": "J *"
 // CHECK-NEXT:                },
-// CHECK-NEXT:                "valueCategory": "rvalue",
+// CHECK-NEXT:                "valueCategory": "prvalue",
 // CHECK-NEXT:                "inner": [
 // CHECK-NEXT:                 {
 // CHECK-NEXT:                  "id": "0x{{.*}}",
@@ -1869,7 +1863,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:                  "type": {
 // CHECK-NEXT:                   "qualType": "J *"
 // CHECK-NEXT:                  },
-// CHECK-NEXT:                  "valueCategory": "rvalue",
+// CHECK-NEXT:                  "valueCategory": "prvalue",
 // CHECK-NEXT:                  "castKind": "LValueToRValue",
 // CHECK-NEXT:                  "inner": [
 // CHECK-NEXT:                   {
@@ -1919,7 +1913,6 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:  ]
 // CHECK-NEXT: }
 
-
 // CHECK:  "kind": "FunctionDecl",
 // CHECK-NEXT:  "loc": {
 // CHECK-NEXT:   "offset": 1892,
@@ -2040,7 +2033,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:       "qualType": "id",
 // CHECK-NEXT:       "typeAliasDeclId": "0x{{.*}}"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
 // CHECK-NEXT:        "id": "0x{{.*}}",
@@ -2060,7 +2053,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "void *"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "opcode": "=",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
@@ -2102,7 +2095,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "qualType": "NSMutableArray *"
 // CHECK-NEXT:            },
-// CHECK-NEXT:            "valueCategory": "rvalue",
+// CHECK-NEXT:            "valueCategory": "prvalue",
 // CHECK-NEXT:            "inner": [
 // CHECK-NEXT:             {
 // CHECK-NEXT:              "id": "0x{{.*}}",
@@ -2122,7 +2115,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:              "type": {
 // CHECK-NEXT:               "qualType": "NSMutableArray *"
 // CHECK-NEXT:              },
-// CHECK-NEXT:              "valueCategory": "rvalue",
+// CHECK-NEXT:              "valueCategory": "prvalue",
 // CHECK-NEXT:              "castKind": "LValueToRValue",
 // CHECK-NEXT:              "inner": [
 // CHECK-NEXT:               {
@@ -2175,7 +2168,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "qualType": "int"
 // CHECK-NEXT:            },
-// CHECK-NEXT:            "valueCategory": "rvalue",
+// CHECK-NEXT:            "valueCategory": "prvalue",
 // CHECK-NEXT:            "inner": [
 // CHECK-NEXT:             {
 // CHECK-NEXT:              "id": "0x{{.*}}",
@@ -2195,7 +2188,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:              "type": {
 // CHECK-NEXT:               "qualType": "int"
 // CHECK-NEXT:              },
-// CHECK-NEXT:              "valueCategory": "rvalue",
+// CHECK-NEXT:              "valueCategory": "prvalue",
 // CHECK-NEXT:              "value": "0"
 // CHECK-NEXT:             }
 // CHECK-NEXT:            ]
@@ -2220,7 +2213,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "qualType": "void *"
 // CHECK-NEXT:          },
-// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "valueCategory": "prvalue",
 // CHECK-NEXT:          "inner": [
 // CHECK-NEXT:           {
 // CHECK-NEXT:            "id": "0x{{.*}}",
@@ -2240,7 +2233,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "qualType": "void *"
 // CHECK-NEXT:            },
-// CHECK-NEXT:            "valueCategory": "rvalue",
+// CHECK-NEXT:            "valueCategory": "prvalue",
 // CHECK-NEXT:            "castKind": "NullToPointer",
 // CHECK-NEXT:            "inner": [
 // CHECK-NEXT:             {
@@ -2261,7 +2254,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:              "type": {
 // CHECK-NEXT:               "qualType": "int"
 // CHECK-NEXT:              },
-// CHECK-NEXT:              "valueCategory": "rvalue",
+// CHECK-NEXT:              "valueCategory": "prvalue",
 // CHECK-NEXT:              "value": "0"
 // CHECK-NEXT:             }
 // CHECK-NEXT:            ]
@@ -2288,7 +2281,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "NSMutableArray *"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
 // CHECK-NEXT:          "id": "0x{{.*}}",
@@ -2308,7 +2301,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "qualType": "NSMutableArray *"
 // CHECK-NEXT:          },
-// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "valueCategory": "prvalue",
 // CHECK-NEXT:          "castKind": "LValueToRValue",
 // CHECK-NEXT:          "inner": [
 // CHECK-NEXT:           {
@@ -2361,7 +2354,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
 // CHECK-NEXT:          "id": "0x{{.*}}",
@@ -2381,7 +2374,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "qualType": "int"
 // CHECK-NEXT:          },
-// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "valueCategory": "prvalue",
 // CHECK-NEXT:          "value": "0"
 // CHECK-NEXT:         }
 // CHECK-NEXT:        ]
@@ -2404,7 +2397,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "void *"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
 // CHECK-NEXT:          "id": "0x{{.*}}",
@@ -2424,7 +2417,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "qualType": "void *"
 // CHECK-NEXT:          },
-// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "valueCategory": "prvalue",
 // CHECK-NEXT:          "castKind": "NullToPointer",
 // CHECK-NEXT:          "inner": [
 // CHECK-NEXT:           {
@@ -2445,7 +2438,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "qualType": "int"
 // CHECK-NEXT:            },
-// CHECK-NEXT:            "valueCategory": "rvalue",
+// CHECK-NEXT:            "valueCategory": "prvalue",
 // CHECK-NEXT:            "value": "0"
 // CHECK-NEXT:           }
 // CHECK-NEXT:          ]
@@ -2472,7 +2465,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:         "qualType": "id",
 // CHECK-NEXT:         "typeAliasDeclId": "0x{{.*}}"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
 // CHECK-NEXT:          "id": "0x{{.*}}",
@@ -2494,7 +2487,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:           "qualType": "id",
 // CHECK-NEXT:           "typeAliasDeclId": "0x{{.*}}"
 // CHECK-NEXT:          },
-// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "valueCategory": "prvalue",
 // CHECK-NEXT:          "castKind": "NullToPointer",
 // CHECK-NEXT:          "inner": [
 // CHECK-NEXT:           {
@@ -2515,7 +2508,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "qualType": "void *"
 // CHECK-NEXT:            },
-// CHECK-NEXT:            "valueCategory": "rvalue",
+// CHECK-NEXT:            "valueCategory": "prvalue",
 // CHECK-NEXT:            "inner": [
 // CHECK-NEXT:             {
 // CHECK-NEXT:              "id": "0x{{.*}}",
@@ -2535,7 +2528,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:              "type": {
 // CHECK-NEXT:               "qualType": "void *"
 // CHECK-NEXT:              },
-// CHECK-NEXT:              "valueCategory": "rvalue",
+// CHECK-NEXT:              "valueCategory": "prvalue",
 // CHECK-NEXT:              "castKind": "NullToPointer",
 // CHECK-NEXT:              "inner": [
 // CHECK-NEXT:               {
@@ -2556,7 +2549,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:                "type": {
 // CHECK-NEXT:                 "qualType": "int"
 // CHECK-NEXT:                },
-// CHECK-NEXT:                "valueCategory": "rvalue",
+// CHECK-NEXT:                "valueCategory": "prvalue",
 // CHECK-NEXT:                "value": "0"
 // CHECK-NEXT:               }
 // CHECK-NEXT:              ]
@@ -2585,7 +2578,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "void"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "selector": "setObject:atIndexedSubscript:",
 // CHECK-NEXT:        "receiverKind": "instance",
 // CHECK-NEXT:        "inner": [
@@ -2607,7 +2600,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "qualType": "NSMutableArray *"
 // CHECK-NEXT:          },
-// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "valueCategory": "prvalue",
 // CHECK-NEXT:          "inner": [
 // CHECK-NEXT:           {
 // CHECK-NEXT:            "id": "0x{{.*}}",
@@ -2627,7 +2620,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "qualType": "NSMutableArray *"
 // CHECK-NEXT:            },
-// CHECK-NEXT:            "valueCategory": "rvalue",
+// CHECK-NEXT:            "valueCategory": "prvalue",
 // CHECK-NEXT:            "castKind": "LValueToRValue",
 // CHECK-NEXT:            "inner": [
 // CHECK-NEXT:             {
@@ -2682,7 +2675,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:           "qualType": "id",
 // CHECK-NEXT:           "typeAliasDeclId": "0x{{.*}}"
 // CHECK-NEXT:          },
-// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "valueCategory": "prvalue",
 // CHECK-NEXT:          "inner": [
 // CHECK-NEXT:           {
 // CHECK-NEXT:            "id": "0x{{.*}}",
@@ -2704,7 +2697,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:             "qualType": "id",
 // CHECK-NEXT:             "typeAliasDeclId": "0x{{.*}}"
 // CHECK-NEXT:            },
-// CHECK-NEXT:            "valueCategory": "rvalue",
+// CHECK-NEXT:            "valueCategory": "prvalue",
 // CHECK-NEXT:            "castKind": "NullToPointer",
 // CHECK-NEXT:            "inner": [
 // CHECK-NEXT:             {
@@ -2725,7 +2718,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:              "type": {
 // CHECK-NEXT:               "qualType": "void *"
 // CHECK-NEXT:              },
-// CHECK-NEXT:              "valueCategory": "rvalue",
+// CHECK-NEXT:              "valueCategory": "prvalue",
 // CHECK-NEXT:              "inner": [
 // CHECK-NEXT:               {
 // CHECK-NEXT:                "id": "0x{{.*}}",
@@ -2745,7 +2738,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:                "type": {
 // CHECK-NEXT:                 "qualType": "void *"
 // CHECK-NEXT:                },
-// CHECK-NEXT:                "valueCategory": "rvalue",
+// CHECK-NEXT:                "valueCategory": "prvalue",
 // CHECK-NEXT:                "castKind": "NullToPointer",
 // CHECK-NEXT:                "inner": [
 // CHECK-NEXT:                 {
@@ -2766,7 +2759,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:                  "type": {
 // CHECK-NEXT:                   "qualType": "int"
 // CHECK-NEXT:                  },
-// CHECK-NEXT:                  "valueCategory": "rvalue",
+// CHECK-NEXT:                  "valueCategory": "prvalue",
 // CHECK-NEXT:                  "value": "0"
 // CHECK-NEXT:                 }
 // CHECK-NEXT:                ]
@@ -2795,7 +2788,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "qualType": "int"
 // CHECK-NEXT:          },
-// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "valueCategory": "prvalue",
 // CHECK-NEXT:          "inner": [
 // CHECK-NEXT:           {
 // CHECK-NEXT:            "id": "0x{{.*}}",
@@ -2815,7 +2808,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "qualType": "int"
 // CHECK-NEXT:            },
-// CHECK-NEXT:            "valueCategory": "rvalue",
+// CHECK-NEXT:            "valueCategory": "prvalue",
 // CHECK-NEXT:            "value": "0"
 // CHECK-NEXT:           }
 // CHECK-NEXT:          ]
@@ -2891,7 +2884,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:           "qualType": "id",
 // CHECK-NEXT:           "typeAliasDeclId": "0x{{.*}}"
 // CHECK-NEXT:          },
-// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "valueCategory": "prvalue",
 // CHECK-NEXT:          "inner": [
 // CHECK-NEXT:           {
 // CHECK-NEXT:            "id": "0x{{.*}}",
@@ -2932,7 +2925,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:              "type": {
 // CHECK-NEXT:               "qualType": "NSMutableArray *"
 // CHECK-NEXT:              },
-// CHECK-NEXT:              "valueCategory": "rvalue",
+// CHECK-NEXT:              "valueCategory": "prvalue",
 // CHECK-NEXT:              "inner": [
 // CHECK-NEXT:               {
 // CHECK-NEXT:                "id": "0x{{.*}}",
@@ -2952,7 +2945,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:                "type": {
 // CHECK-NEXT:                 "qualType": "NSMutableArray *"
 // CHECK-NEXT:                },
-// CHECK-NEXT:                "valueCategory": "rvalue",
+// CHECK-NEXT:                "valueCategory": "prvalue",
 // CHECK-NEXT:                "castKind": "LValueToRValue",
 // CHECK-NEXT:                "inner": [
 // CHECK-NEXT:                 {
@@ -3005,7 +2998,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:              "type": {
 // CHECK-NEXT:               "qualType": "int"
 // CHECK-NEXT:              },
-// CHECK-NEXT:              "valueCategory": "rvalue",
+// CHECK-NEXT:              "valueCategory": "prvalue",
 // CHECK-NEXT:              "inner": [
 // CHECK-NEXT:               {
 // CHECK-NEXT:                "id": "0x{{.*}}",
@@ -3025,7 +3018,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:                "type": {
 // CHECK-NEXT:                 "qualType": "int"
 // CHECK-NEXT:                },
-// CHECK-NEXT:                "valueCategory": "rvalue",
+// CHECK-NEXT:                "valueCategory": "prvalue",
 // CHECK-NEXT:                "value": "0"
 // CHECK-NEXT:               }
 // CHECK-NEXT:              ]
@@ -3050,7 +3043,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "qualType": "NSMutableArray *"
 // CHECK-NEXT:            },
-// CHECK-NEXT:            "valueCategory": "rvalue",
+// CHECK-NEXT:            "valueCategory": "prvalue",
 // CHECK-NEXT:            "inner": [
 // CHECK-NEXT:             {
 // CHECK-NEXT:              "id": "0x{{.*}}",
@@ -3070,7 +3063,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:              "type": {
 // CHECK-NEXT:               "qualType": "NSMutableArray *"
 // CHECK-NEXT:              },
-// CHECK-NEXT:              "valueCategory": "rvalue",
+// CHECK-NEXT:              "valueCategory": "prvalue",
 // CHECK-NEXT:              "castKind": "LValueToRValue",
 // CHECK-NEXT:              "inner": [
 // CHECK-NEXT:               {
@@ -3123,7 +3116,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "qualType": "int"
 // CHECK-NEXT:            },
-// CHECK-NEXT:            "valueCategory": "rvalue",
+// CHECK-NEXT:            "valueCategory": "prvalue",
 // CHECK-NEXT:            "inner": [
 // CHECK-NEXT:             {
 // CHECK-NEXT:              "id": "0x{{.*}}",
@@ -3143,7 +3136,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:              "type": {
 // CHECK-NEXT:               "qualType": "int"
 // CHECK-NEXT:              },
-// CHECK-NEXT:              "valueCategory": "rvalue",
+// CHECK-NEXT:              "valueCategory": "prvalue",
 // CHECK-NEXT:              "value": "0"
 // CHECK-NEXT:             }
 // CHECK-NEXT:            ]
@@ -3168,7 +3161,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:             "qualType": "id",
 // CHECK-NEXT:             "typeAliasDeclId": "0x{{.*}}"
 // CHECK-NEXT:            },
-// CHECK-NEXT:            "valueCategory": "rvalue",
+// CHECK-NEXT:            "valueCategory": "prvalue",
 // CHECK-NEXT:            "selector": "objectAtIndexedSubscript:",
 // CHECK-NEXT:            "receiverKind": "instance",
 // CHECK-NEXT:            "inner": [
@@ -3190,7 +3183,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:              "type": {
 // CHECK-NEXT:               "qualType": "NSMutableArray *"
 // CHECK-NEXT:              },
-// CHECK-NEXT:              "valueCategory": "rvalue",
+// CHECK-NEXT:              "valueCategory": "prvalue",
 // CHECK-NEXT:              "inner": [
 // CHECK-NEXT:               {
 // CHECK-NEXT:                "id": "0x{{.*}}",
@@ -3210,7 +3203,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:                "type": {
 // CHECK-NEXT:                 "qualType": "NSMutableArray *"
 // CHECK-NEXT:                },
-// CHECK-NEXT:                "valueCategory": "rvalue",
+// CHECK-NEXT:                "valueCategory": "prvalue",
 // CHECK-NEXT:                "castKind": "LValueToRValue",
 // CHECK-NEXT:                "inner": [
 // CHECK-NEXT:                 {
@@ -3263,7 +3256,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:              "type": {
 // CHECK-NEXT:               "qualType": "int"
 // CHECK-NEXT:              },
-// CHECK-NEXT:              "valueCategory": "rvalue",
+// CHECK-NEXT:              "valueCategory": "prvalue",
 // CHECK-NEXT:              "inner": [
 // CHECK-NEXT:               {
 // CHECK-NEXT:                "id": "0x{{.*}}",
@@ -3283,7 +3276,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:                "type": {
 // CHECK-NEXT:                 "qualType": "int"
 // CHECK-NEXT:                },
-// CHECK-NEXT:                "valueCategory": "rvalue",
+// CHECK-NEXT:                "valueCategory": "prvalue",
 // CHECK-NEXT:                "value": "0"
 // CHECK-NEXT:               }
 // CHECK-NEXT:              ]
@@ -3317,7 +3310,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:       "qualType": "id",
 // CHECK-NEXT:       "typeAliasDeclId": "0x{{.*}}"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
 // CHECK-NEXT:        "id": "0x{{.*}}",
@@ -3337,7 +3330,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "void *"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "opcode": "=",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
@@ -3379,7 +3372,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "qualType": "NSMutableDictionary *"
 // CHECK-NEXT:            },
-// CHECK-NEXT:            "valueCategory": "rvalue",
+// CHECK-NEXT:            "valueCategory": "prvalue",
 // CHECK-NEXT:            "inner": [
 // CHECK-NEXT:             {
 // CHECK-NEXT:              "id": "0x{{.*}}",
@@ -3399,7 +3392,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:              "type": {
 // CHECK-NEXT:               "qualType": "NSMutableDictionary *"
 // CHECK-NEXT:              },
-// CHECK-NEXT:              "valueCategory": "rvalue",
+// CHECK-NEXT:              "valueCategory": "prvalue",
 // CHECK-NEXT:              "castKind": "LValueToRValue",
 // CHECK-NEXT:              "inner": [
 // CHECK-NEXT:               {
@@ -3452,7 +3445,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "qualType": "NSString *"
 // CHECK-NEXT:            },
-// CHECK-NEXT:            "valueCategory": "rvalue",
+// CHECK-NEXT:            "valueCategory": "prvalue",
 // CHECK-NEXT:            "inner": [
 // CHECK-NEXT:             {
 // CHECK-NEXT:              "id": "0x{{.*}}",
@@ -3472,7 +3465,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:              "type": {
 // CHECK-NEXT:               "qualType": "NSString *"
 // CHECK-NEXT:              },
-// CHECK-NEXT:              "valueCategory": "rvalue",
+// CHECK-NEXT:              "valueCategory": "prvalue",
 // CHECK-NEXT:              "inner": [
 // CHECK-NEXT:               {
 // CHECK-NEXT:                "id": "0x{{.*}}",
@@ -3519,7 +3512,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "qualType": "void *"
 // CHECK-NEXT:          },
-// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "valueCategory": "prvalue",
 // CHECK-NEXT:          "inner": [
 // CHECK-NEXT:           {
 // CHECK-NEXT:            "id": "0x{{.*}}",
@@ -3539,7 +3532,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "qualType": "void *"
 // CHECK-NEXT:            },
-// CHECK-NEXT:            "valueCategory": "rvalue",
+// CHECK-NEXT:            "valueCategory": "prvalue",
 // CHECK-NEXT:            "castKind": "NullToPointer",
 // CHECK-NEXT:            "inner": [
 // CHECK-NEXT:             {
@@ -3560,7 +3553,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:              "type": {
 // CHECK-NEXT:               "qualType": "int"
 // CHECK-NEXT:              },
-// CHECK-NEXT:              "valueCategory": "rvalue",
+// CHECK-NEXT:              "valueCategory": "prvalue",
 // CHECK-NEXT:              "value": "0"
 // CHECK-NEXT:             }
 // CHECK-NEXT:            ]
@@ -3587,7 +3580,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "NSMutableDictionary *"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
 // CHECK-NEXT:          "id": "0x{{.*}}",
@@ -3607,7 +3600,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "qualType": "NSMutableDictionary *"
 // CHECK-NEXT:          },
-// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "valueCategory": "prvalue",
 // CHECK-NEXT:          "castKind": "LValueToRValue",
 // CHECK-NEXT:          "inner": [
 // CHECK-NEXT:           {
@@ -3660,7 +3653,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "NSString *"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
 // CHECK-NEXT:          "id": "0x{{.*}}",
@@ -3680,7 +3673,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "qualType": "NSString *"
 // CHECK-NEXT:          },
-// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "valueCategory": "prvalue",
 // CHECK-NEXT:          "inner": [
 // CHECK-NEXT:           {
 // CHECK-NEXT:            "id": "0x{{.*}}",
@@ -3725,7 +3718,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "void *"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
 // CHECK-NEXT:          "id": "0x{{.*}}",
@@ -3745,7 +3738,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "qualType": "void *"
 // CHECK-NEXT:          },
-// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "valueCategory": "prvalue",
 // CHECK-NEXT:          "castKind": "NullToPointer",
 // CHECK-NEXT:          "inner": [
 // CHECK-NEXT:           {
@@ -3766,7 +3759,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "qualType": "int"
 // CHECK-NEXT:            },
-// CHECK-NEXT:            "valueCategory": "rvalue",
+// CHECK-NEXT:            "valueCategory": "prvalue",
 // CHECK-NEXT:            "value": "0"
 // CHECK-NEXT:           }
 // CHECK-NEXT:          ]
@@ -3793,7 +3786,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:         "qualType": "id",
 // CHECK-NEXT:         "typeAliasDeclId": "0x{{.*}}"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
 // CHECK-NEXT:          "id": "0x{{.*}}",
@@ -3815,7 +3808,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:           "qualType": "id",
 // CHECK-NEXT:           "typeAliasDeclId": "0x{{.*}}"
 // CHECK-NEXT:          },
-// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "valueCategory": "prvalue",
 // CHECK-NEXT:          "castKind": "NullToPointer",
 // CHECK-NEXT:          "inner": [
 // CHECK-NEXT:           {
@@ -3836,7 +3829,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "qualType": "void *"
 // CHECK-NEXT:            },
-// CHECK-NEXT:            "valueCategory": "rvalue",
+// CHECK-NEXT:            "valueCategory": "prvalue",
 // CHECK-NEXT:            "inner": [
 // CHECK-NEXT:             {
 // CHECK-NEXT:              "id": "0x{{.*}}",
@@ -3856,7 +3849,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:              "type": {
 // CHECK-NEXT:               "qualType": "void *"
 // CHECK-NEXT:              },
-// CHECK-NEXT:              "valueCategory": "rvalue",
+// CHECK-NEXT:              "valueCategory": "prvalue",
 // CHECK-NEXT:              "castKind": "NullToPointer",
 // CHECK-NEXT:              "inner": [
 // CHECK-NEXT:               {
@@ -3877,7 +3870,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:                "type": {
 // CHECK-NEXT:                 "qualType": "int"
 // CHECK-NEXT:                },
-// CHECK-NEXT:                "valueCategory": "rvalue",
+// CHECK-NEXT:                "valueCategory": "prvalue",
 // CHECK-NEXT:                "value": "0"
 // CHECK-NEXT:               }
 // CHECK-NEXT:              ]
@@ -3906,7 +3899,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "void"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "selector": "setObject:forKeyedSubscript:",
 // CHECK-NEXT:        "receiverKind": "instance",
 // CHECK-NEXT:        "inner": [
@@ -3928,7 +3921,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "qualType": "NSMutableDictionary *"
 // CHECK-NEXT:          },
-// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "valueCategory": "prvalue",
 // CHECK-NEXT:          "inner": [
 // CHECK-NEXT:           {
 // CHECK-NEXT:            "id": "0x{{.*}}",
@@ -3948,7 +3941,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "qualType": "NSMutableDictionary *"
 // CHECK-NEXT:            },
-// CHECK-NEXT:            "valueCategory": "rvalue",
+// CHECK-NEXT:            "valueCategory": "prvalue",
 // CHECK-NEXT:            "castKind": "LValueToRValue",
 // CHECK-NEXT:            "inner": [
 // CHECK-NEXT:             {
@@ -4003,7 +3996,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:           "qualType": "id",
 // CHECK-NEXT:           "typeAliasDeclId": "0x{{.*}}"
 // CHECK-NEXT:          },
-// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "valueCategory": "prvalue",
 // CHECK-NEXT:          "inner": [
 // CHECK-NEXT:           {
 // CHECK-NEXT:            "id": "0x{{.*}}",
@@ -4025,7 +4018,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:             "qualType": "id",
 // CHECK-NEXT:             "typeAliasDeclId": "0x{{.*}}"
 // CHECK-NEXT:            },
-// CHECK-NEXT:            "valueCategory": "rvalue",
+// CHECK-NEXT:            "valueCategory": "prvalue",
 // CHECK-NEXT:            "castKind": "NullToPointer",
 // CHECK-NEXT:            "inner": [
 // CHECK-NEXT:             {
@@ -4046,7 +4039,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:              "type": {
 // CHECK-NEXT:               "qualType": "void *"
 // CHECK-NEXT:              },
-// CHECK-NEXT:              "valueCategory": "rvalue",
+// CHECK-NEXT:              "valueCategory": "prvalue",
 // CHECK-NEXT:              "inner": [
 // CHECK-NEXT:               {
 // CHECK-NEXT:                "id": "0x{{.*}}",
@@ -4066,7 +4059,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:                "type": {
 // CHECK-NEXT:                 "qualType": "void *"
 // CHECK-NEXT:                },
-// CHECK-NEXT:                "valueCategory": "rvalue",
+// CHECK-NEXT:                "valueCategory": "prvalue",
 // CHECK-NEXT:                "castKind": "NullToPointer",
 // CHECK-NEXT:                "inner": [
 // CHECK-NEXT:                 {
@@ -4087,7 +4080,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:                  "type": {
 // CHECK-NEXT:                   "qualType": "int"
 // CHECK-NEXT:                  },
-// CHECK-NEXT:                  "valueCategory": "rvalue",
+// CHECK-NEXT:                  "valueCategory": "prvalue",
 // CHECK-NEXT:                  "value": "0"
 // CHECK-NEXT:                 }
 // CHECK-NEXT:                ]
@@ -4118,7 +4111,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:           "qualType": "id",
 // CHECK-NEXT:           "typeAliasDeclId": "0x{{.*}}"
 // CHECK-NEXT:          },
-// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "valueCategory": "prvalue",
 // CHECK-NEXT:          "castKind": "BitCast",
 // CHECK-NEXT:          "inner": [
 // CHECK-NEXT:           {
@@ -4139,7 +4132,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "qualType": "NSString *"
 // CHECK-NEXT:            },
-// CHECK-NEXT:            "valueCategory": "rvalue",
+// CHECK-NEXT:            "valueCategory": "prvalue",
 // CHECK-NEXT:            "inner": [
 // CHECK-NEXT:             {
 // CHECK-NEXT:              "id": "0x{{.*}}",
@@ -4159,7 +4152,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:              "type": {
 // CHECK-NEXT:               "qualType": "NSString *"
 // CHECK-NEXT:              },
-// CHECK-NEXT:              "valueCategory": "rvalue",
+// CHECK-NEXT:              "valueCategory": "prvalue",
 // CHECK-NEXT:              "inner": [
 // CHECK-NEXT:               {
 // CHECK-NEXT:                "id": "0x{{.*}}",
@@ -4213,7 +4206,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:       "qualType": "id",
 // CHECK-NEXT:       "typeAliasDeclId": "0x{{.*}}"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "opcode": "=",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
@@ -4268,7 +4261,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:         "qualType": "id",
 // CHECK-NEXT:         "typeAliasDeclId": "0x{{.*}}"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
 // CHECK-NEXT:          "id": "0x{{.*}}",
@@ -4309,7 +4302,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "qualType": "NSMutableDictionary *"
 // CHECK-NEXT:            },
-// CHECK-NEXT:            "valueCategory": "rvalue",
+// CHECK-NEXT:            "valueCategory": "prvalue",
 // CHECK-NEXT:            "inner": [
 // CHECK-NEXT:             {
 // CHECK-NEXT:              "id": "0x{{.*}}",
@@ -4329,7 +4322,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:              "type": {
 // CHECK-NEXT:               "qualType": "NSMutableDictionary *"
 // CHECK-NEXT:              },
-// CHECK-NEXT:              "valueCategory": "rvalue",
+// CHECK-NEXT:              "valueCategory": "prvalue",
 // CHECK-NEXT:              "castKind": "LValueToRValue",
 // CHECK-NEXT:              "inner": [
 // CHECK-NEXT:               {
@@ -4382,7 +4375,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "qualType": "NSString *"
 // CHECK-NEXT:            },
-// CHECK-NEXT:            "valueCategory": "rvalue",
+// CHECK-NEXT:            "valueCategory": "prvalue",
 // CHECK-NEXT:            "inner": [
 // CHECK-NEXT:             {
 // CHECK-NEXT:              "id": "0x{{.*}}",
@@ -4402,7 +4395,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:              "type": {
 // CHECK-NEXT:               "qualType": "NSString *"
 // CHECK-NEXT:              },
-// CHECK-NEXT:              "valueCategory": "rvalue",
+// CHECK-NEXT:              "valueCategory": "prvalue",
 // CHECK-NEXT:              "inner": [
 // CHECK-NEXT:               {
 // CHECK-NEXT:                "id": "0x{{.*}}",
@@ -4449,7 +4442,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "qualType": "NSMutableDictionary *"
 // CHECK-NEXT:          },
-// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "valueCategory": "prvalue",
 // CHECK-NEXT:          "inner": [
 // CHECK-NEXT:           {
 // CHECK-NEXT:            "id": "0x{{.*}}",
@@ -4469,7 +4462,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "qualType": "NSMutableDictionary *"
 // CHECK-NEXT:            },
-// CHECK-NEXT:            "valueCategory": "rvalue",
+// CHECK-NEXT:            "valueCategory": "prvalue",
 // CHECK-NEXT:            "castKind": "LValueToRValue",
 // CHECK-NEXT:            "inner": [
 // CHECK-NEXT:             {
@@ -4522,7 +4515,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "qualType": "NSString *"
 // CHECK-NEXT:          },
-// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "valueCategory": "prvalue",
 // CHECK-NEXT:          "inner": [
 // CHECK-NEXT:           {
 // CHECK-NEXT:            "id": "0x{{.*}}",
@@ -4542,7 +4535,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "qualType": "NSString *"
 // CHECK-NEXT:            },
-// CHECK-NEXT:            "valueCategory": "rvalue",
+// CHECK-NEXT:            "valueCategory": "prvalue",
 // CHECK-NEXT:            "inner": [
 // CHECK-NEXT:             {
 // CHECK-NEXT:              "id": "0x{{.*}}",
@@ -4589,7 +4582,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:           "qualType": "id",
 // CHECK-NEXT:           "typeAliasDeclId": "0x{{.*}}"
 // CHECK-NEXT:          },
-// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "valueCategory": "prvalue",
 // CHECK-NEXT:          "selector": "objectForKeyedSubscript:",
 // CHECK-NEXT:          "receiverKind": "instance",
 // CHECK-NEXT:          "inner": [
@@ -4611,7 +4604,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "qualType": "NSMutableDictionary *"
 // CHECK-NEXT:            },
-// CHECK-NEXT:            "valueCategory": "rvalue",
+// CHECK-NEXT:            "valueCategory": "prvalue",
 // CHECK-NEXT:            "inner": [
 // CHECK-NEXT:             {
 // CHECK-NEXT:              "id": "0x{{.*}}",
@@ -4631,7 +4624,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:              "type": {
 // CHECK-NEXT:               "qualType": "NSMutableDictionary *"
 // CHECK-NEXT:              },
-// CHECK-NEXT:              "valueCategory": "rvalue",
+// CHECK-NEXT:              "valueCategory": "prvalue",
 // CHECK-NEXT:              "castKind": "LValueToRValue",
 // CHECK-NEXT:              "inner": [
 // CHECK-NEXT:               {
@@ -4686,7 +4679,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:             "qualType": "id",
 // CHECK-NEXT:             "typeAliasDeclId": "0x{{.*}}"
 // CHECK-NEXT:            },
-// CHECK-NEXT:            "valueCategory": "rvalue",
+// CHECK-NEXT:            "valueCategory": "prvalue",
 // CHECK-NEXT:            "castKind": "BitCast",
 // CHECK-NEXT:            "inner": [
 // CHECK-NEXT:             {
@@ -4707,7 +4700,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:              "type": {
 // CHECK-NEXT:               "qualType": "NSString *"
 // CHECK-NEXT:              },
-// CHECK-NEXT:              "valueCategory": "rvalue",
+// CHECK-NEXT:              "valueCategory": "prvalue",
 // CHECK-NEXT:              "inner": [
 // CHECK-NEXT:               {
 // CHECK-NEXT:                "id": "0x{{.*}}",
@@ -4727,7 +4720,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:                "type": {
 // CHECK-NEXT:                 "qualType": "NSString *"
 // CHECK-NEXT:                },
-// CHECK-NEXT:                "valueCategory": "rvalue",
+// CHECK-NEXT:                "valueCategory": "prvalue",
 // CHECK-NEXT:                "inner": [
 // CHECK-NEXT:                 {
 // CHECK-NEXT:                  "id": "0x{{.*}}",
@@ -4767,7 +4760,6 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:  ]
 // CHECK-NEXT: }
 
-
 // CHECK:  "kind": "FunctionDecl",
 // CHECK-NEXT:  "loc": {
 // CHECK-NEXT:   "offset": 2060,
@@ -4859,7 +4851,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "int"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "opcode": "=",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
@@ -4909,7 +4901,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "qualType": "I *"
 // CHECK-NEXT:          },
-// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "valueCategory": "prvalue",
 // CHECK-NEXT:          "castKind": "LValueToRValue",
 // CHECK-NEXT:          "inner": [
 // CHECK-NEXT:           {
@@ -4962,7 +4954,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "value": "0"
 // CHECK-NEXT:       }
 // CHECK-NEXT:      ]
@@ -4972,7 +4964,6 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:  ]
 // CHECK-NEXT: }
 
-
 // CHECK:  "kind": "FunctionDecl",
 // CHECK-NEXT:  "loc": {
 // CHECK-NEXT:   "offset": 2113,
@@ -5039,7 +5030,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:       "qualType": "BOOL",
 // CHECK-NEXT:       "typeAliasDeclId": "0x{{.*}}"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "value": "__objc_yes"
 // CHECK-NEXT:     },
 // CHECK-NEXT:     {
@@ -5063,7 +5054,7 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:       "qualType": "BOOL",
 // CHECK-NEXT:       "typeAliasDeclId": "0x{{.*}}"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "value": "__objc_no"
 // CHECK-NEXT:     }
 // CHECK-NEXT:    ]

diff  --git a/clang/test/AST/ast-dump-funcs-json.cpp b/clang/test/AST/ast-dump-funcs-json.cpp
index cb6789260d8db..1e266938a3802 100644
--- a/clang/test/AST/ast-dump-funcs-json.cpp
+++ b/clang/test/AST/ast-dump-funcs-json.cpp
@@ -183,7 +183,6 @@ int main() {
 // CHECK-NEXT:  }
 // CHECK-NEXT: }
 
-
 // CHECK:  "kind": "CXXMethodDecl",
 // CHECK-NEXT:  "loc": {
 // CHECK-NEXT:   "offset": 232,
@@ -278,7 +277,7 @@ int main() {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "int"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "value": "12"
 // CHECK-NEXT:     }
 // CHECK-NEXT:    ]
@@ -286,7 +285,6 @@ int main() {
 // CHECK-NEXT:  ]
 // CHECK-NEXT: }
 
-
 // CHECK:  "kind": "CXXMethodDecl",
 // CHECK-NEXT:  "loc": {
 // CHECK-NEXT:   "offset": 271,
@@ -316,7 +314,6 @@ int main() {
 // CHECK-NEXT:  "pure": true
 // CHECK-NEXT: }
 
-
 // CHECK:  "kind": "CXXMethodDecl",
 // CHECK-NEXT:  "loc": {
 // CHECK-NEXT:   "offset": 343,
@@ -410,7 +407,7 @@ int main() {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "int"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "value": "100"
 // CHECK-NEXT:     }
 // CHECK-NEXT:    ]
@@ -434,7 +431,6 @@ int main() {
 // CHECK-NEXT:  ]
 // CHECK-NEXT: }
 
-
 // CHECK:  "kind": "CXXMethodDecl",
 // CHECK-NEXT:  "loc": {
 // CHECK-NEXT:   "offset": 399,
@@ -649,7 +645,6 @@ int main() {
 // CHECK-NEXT:  ]
 // CHECK-NEXT: }
 
-
 // CHECK:  "kind": "FunctionDecl",
 // CHECK-NEXT:  "loc": {
 // CHECK-NEXT:   "offset": 504,
@@ -747,7 +742,7 @@ int main() {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "int"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "value": "12"
 // CHECK-NEXT:     }
 // CHECK-NEXT:    ]
@@ -755,7 +750,6 @@ int main() {
 // CHECK-NEXT:  ]
 // CHECK-NEXT: }
 
-
 // CHECK:  "kind": "FunctionDecl",
 // CHECK-NEXT:  "loc": {
 // CHECK-NEXT:   "offset": 545,

diff  --git a/clang/test/AST/ast-dump-if-json.cpp b/clang/test/AST/ast-dump-if-json.cpp
index 3d1bff74361c8..ee5a27cff8d00 100644
--- a/clang/test/AST/ast-dump-if-json.cpp
+++ b/clang/test/AST/ast-dump-if-json.cpp
@@ -29,7 +29,6 @@ void func(int val) {
 // NOTE: CHECK lines have been autogenerated by gen_ast_dump_json_test.py
 // using --filters=IfStmt
 
-
 // CHECK:  "kind": "IfStmt",
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
@@ -65,7 +64,7 @@ void func(int val) {
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "bool"
 // CHECK-NEXT:    },
-// CHECK-NEXT:    "valueCategory": "rvalue",
+// CHECK-NEXT:    "valueCategory": "prvalue",
 // CHECK-NEXT:    "castKind": "IntegralToBoolean",
 // CHECK-NEXT:    "inner": [
 // CHECK-NEXT:     {
@@ -86,7 +85,7 @@ void func(int val) {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "int"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "castKind": "LValueToRValue",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
@@ -141,7 +140,6 @@ void func(int val) {
 // CHECK-NEXT:  ]
 // CHECK-NEXT: }
 
-
 // CHECK:  "kind": "IfStmt",
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
@@ -178,7 +176,7 @@ void func(int val) {
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "bool"
 // CHECK-NEXT:    },
-// CHECK-NEXT:    "valueCategory": "rvalue",
+// CHECK-NEXT:    "valueCategory": "prvalue",
 // CHECK-NEXT:    "castKind": "IntegralToBoolean",
 // CHECK-NEXT:    "inner": [
 // CHECK-NEXT:     {
@@ -199,7 +197,7 @@ void func(int val) {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "int"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "castKind": "LValueToRValue",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
@@ -271,7 +269,6 @@ void func(int val) {
 // CHECK-NEXT:  ]
 // CHECK-NEXT: }
 
-
 // CHECK:  "kind": "IfStmt",
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
@@ -308,7 +305,7 @@ void func(int val) {
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "bool"
 // CHECK-NEXT:    },
-// CHECK-NEXT:    "valueCategory": "rvalue",
+// CHECK-NEXT:    "valueCategory": "prvalue",
 // CHECK-NEXT:    "castKind": "IntegralToBoolean",
 // CHECK-NEXT:    "inner": [
 // CHECK-NEXT:     {
@@ -329,7 +326,7 @@ void func(int val) {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "int"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "castKind": "LValueToRValue",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
@@ -419,7 +416,7 @@ void func(int val) {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "bool"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "castKind": "IntegralToBoolean",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
@@ -440,7 +437,7 @@ void func(int val) {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "castKind": "LValueToRValue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
@@ -514,7 +511,6 @@ void func(int val) {
 // CHECK-NEXT:  ]
 // CHECK-NEXT: }
 
-
 // CHECK:  "kind": "IfStmt",
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
@@ -551,7 +547,7 @@ void func(int val) {
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "bool"
 // CHECK-NEXT:    },
-// CHECK-NEXT:    "valueCategory": "rvalue",
+// CHECK-NEXT:    "valueCategory": "prvalue",
 // CHECK-NEXT:    "value": "true",
 // CHECK-NEXT:    "inner": [
 // CHECK-NEXT:     {
@@ -572,7 +568,7 @@ void func(int val) {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "bool"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "opcode": "==",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
@@ -593,7 +589,7 @@ void func(int val) {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "value": "10"
 // CHECK-NEXT:       },
 // CHECK-NEXT:       {
@@ -614,7 +610,7 @@ void func(int val) {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "value": "10"
 // CHECK-NEXT:       }
 // CHECK-NEXT:      ]
@@ -641,7 +637,6 @@ void func(int val) {
 // CHECK-NEXT:  ]
 // CHECK-NEXT: }
 
-
 // CHECK:  "kind": "IfStmt",
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
@@ -722,7 +717,7 @@ void func(int val) {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "value": "12"
 // CHECK-NEXT:       }
 // CHECK-NEXT:      ]
@@ -747,7 +742,7 @@ void func(int val) {
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "bool"
 // CHECK-NEXT:    },
-// CHECK-NEXT:    "valueCategory": "rvalue",
+// CHECK-NEXT:    "valueCategory": "prvalue",
 // CHECK-NEXT:    "castKind": "IntegralToBoolean",
 // CHECK-NEXT:    "inner": [
 // CHECK-NEXT:     {
@@ -768,7 +763,7 @@ void func(int val) {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "int"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "castKind": "LValueToRValue",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
@@ -823,7 +818,6 @@ void func(int val) {
 // CHECK-NEXT:  ]
 // CHECK-NEXT: }
 
-
 // CHECK:  "kind": "IfStmt",
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
@@ -904,7 +898,7 @@ void func(int val) {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "value": "12"
 // CHECK-NEXT:       }
 // CHECK-NEXT:      ]
@@ -929,7 +923,7 @@ void func(int val) {
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "bool"
 // CHECK-NEXT:    },
-// CHECK-NEXT:    "valueCategory": "rvalue",
+// CHECK-NEXT:    "valueCategory": "prvalue",
 // CHECK-NEXT:    "castKind": "IntegralToBoolean",
 // CHECK-NEXT:    "inner": [
 // CHECK-NEXT:     {
@@ -950,7 +944,7 @@ void func(int val) {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "int"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "castKind": "LValueToRValue",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {

diff  --git a/clang/test/AST/ast-dump-objc-arc-json.m b/clang/test/AST/ast-dump-objc-arc-json.m
index bb9268b28ef65..8cc1b6ca26011 100644
--- a/clang/test/AST/ast-dump-objc-arc-json.m
+++ b/clang/test/AST/ast-dump-objc-arc-json.m
@@ -26,7 +26,7 @@ id TestCompoundLiteral(id a) {
 // CHECK-NEXT:   "qualType": "id",
 // CHECK-NEXT:   "typeAliasDeclId": "0x{{.*}}"
 // CHECK-NEXT:  },
-// CHECK-NEXT:  "valueCategory": "rvalue",
+// CHECK-NEXT:  "valueCategory": "prvalue",
 // CHECK-NEXT:  "cleanupsHaveSideEffects": true,
 // CHECK-NEXT:  "cleanups": [
 // CHECK-NEXT:   {

diff  --git a/clang/test/AST/ast-dump-record-definition-data-json.cpp b/clang/test/AST/ast-dump-record-definition-data-json.cpp
index 6e29085ee7d59..aeaa02c1afb41 100644
--- a/clang/test/AST/ast-dump-record-definition-data-json.cpp
+++ b/clang/test/AST/ast-dump-record-definition-data-json.cpp
@@ -5012,7 +5012,6 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:  ]
 // CHECK-NEXT: }
 
-
 // CHECK:  "kind": "CXXRecordDecl",
 // CHECK-NEXT:  "loc": {
 // CHECK-NEXT:   "offset": 1675,
@@ -5155,7 +5154,7 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "int"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "value": "12"
 // CHECK-NEXT:     }
 // CHECK-NEXT:    ]
@@ -5163,7 +5162,6 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:  ]
 // CHECK-NEXT: }
 
-
 // CHECK:  "kind": "CXXRecordDecl",
 // CHECK-NEXT:  "loc": {
 // CHECK-NEXT:   "offset": 1725,

diff  --git a/clang/test/AST/ast-dump-records-json.cpp b/clang/test/AST/ast-dump-records-json.cpp
index 9f707685005e8..1024bfe4053f6 100644
--- a/clang/test/AST/ast-dump-records-json.cpp
+++ b/clang/test/AST/ast-dump-records-json.cpp
@@ -147,7 +147,6 @@ struct Derived6 : virtual public Bases... {
 // CHECK-NEXT:  "tagUsed": "struct"
 // CHECK-NEXT: }
 
-
 // CHECK:  "kind": "CXXRecordDecl",
 // CHECK-NEXT:  "loc": {
 // CHECK-NEXT:   "offset": 123,
@@ -366,7 +365,7 @@ struct Derived6 : virtual public Bases... {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "int"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "value": "12",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
@@ -387,7 +386,7 @@ struct Derived6 : virtual public Bases... {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "value": "12"
 // CHECK-NEXT:       }
 // CHECK-NEXT:      ]
@@ -438,7 +437,7 @@ struct Derived6 : virtual public Bases... {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "int"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "value": "0",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
@@ -459,7 +458,7 @@ struct Derived6 : virtual public Bases... {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "value": "0"
 // CHECK-NEXT:       }
 // CHECK-NEXT:      ]
@@ -511,7 +510,7 @@ struct Derived6 : virtual public Bases... {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "int"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "value": "10",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
@@ -532,7 +531,7 @@ struct Derived6 : virtual public Bases... {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "value": "10"
 // CHECK-NEXT:       }
 // CHECK-NEXT:      ]
@@ -568,7 +567,6 @@ struct Derived6 : virtual public Bases... {
 // CHECK-NEXT:  ]
 // CHECK-NEXT: }
 
-
 // CHECK:  "kind": "CXXRecordDecl",
 // CHECK-NEXT:  "loc": {
 // CHECK-NEXT:   "offset": 206,
@@ -1418,7 +1416,6 @@ struct Derived6 : virtual public Bases... {
 // CHECK-NEXT:  "tagUsed": "union"
 // CHECK-NEXT: }
 
-
 // CHECK:  "kind": "CXXRecordDecl",
 // CHECK-NEXT:  "loc": {
 // CHECK-NEXT:   "offset": 388,
@@ -1638,7 +1635,7 @@ struct Derived6 : virtual public Bases... {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "int"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "value": "12",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
@@ -1659,7 +1656,7 @@ struct Derived6 : virtual public Bases... {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "value": "12"
 // CHECK-NEXT:       }
 // CHECK-NEXT:      ]
@@ -1710,7 +1707,7 @@ struct Derived6 : virtual public Bases... {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "int"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "value": "0",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
@@ -1731,7 +1728,7 @@ struct Derived6 : virtual public Bases... {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "value": "0"
 // CHECK-NEXT:       }
 // CHECK-NEXT:      ]
@@ -1783,7 +1780,7 @@ struct Derived6 : virtual public Bases... {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "int"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "value": "10",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
@@ -1804,7 +1801,7 @@ struct Derived6 : virtual public Bases... {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "value": "10"
 // CHECK-NEXT:       }
 // CHECK-NEXT:      ]
@@ -1840,7 +1837,6 @@ struct Derived6 : virtual public Bases... {
 // CHECK-NEXT:  ]
 // CHECK-NEXT: }
 
-
 // CHECK:  "kind": "CXXRecordDecl",
 // CHECK-NEXT:  "loc": {
 // CHECK-NEXT:   "offset": 470,

diff  --git a/clang/test/AST/ast-dump-stmt-json.c b/clang/test/AST/ast-dump-stmt-json.c
index 8afb9b1ccde9d..85e625549384f 100644
--- a/clang/test/AST/ast-dump-stmt-json.c
+++ b/clang/test/AST/ast-dump-stmt-json.c
@@ -150,7 +150,6 @@ void TestLineNumbers(void) {
 // NOTE: CHECK lines have been autogenerated by gen_ast_dump_json_test.py
 // using --filters=VarDecl,CompoundStmt
 
-
 // CHECK:  "kind": "VarDecl",
 // CHECK-NEXT:  "loc": {
 // CHECK-NEXT:   "offset": 99,
@@ -196,13 +195,12 @@ void TestLineNumbers(void) {
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "int"
 // CHECK-NEXT:    },
-// CHECK-NEXT:    "valueCategory": "rvalue",
+// CHECK-NEXT:    "valueCategory": "prvalue",
 // CHECK-NEXT:    "value": "0"
 // CHECK-NEXT:   }
 // CHECK-NEXT:  ]
 // CHECK-NEXT: }
 
-
 // CHECK:  "kind": "VarDecl",
 // CHECK-NEXT:  "loc": {
 // CHECK-NEXT:   "offset": 121,
@@ -247,7 +245,7 @@ void TestLineNumbers(void) {
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "int"
 // CHECK-NEXT:    },
-// CHECK-NEXT:    "valueCategory": "rvalue",
+// CHECK-NEXT:    "valueCategory": "prvalue",
 // CHECK-NEXT:    "opcode": "+",
 // CHECK-NEXT:    "inner": [
 // CHECK-NEXT:     {
@@ -268,7 +266,7 @@ void TestLineNumbers(void) {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "int"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "value": "1"
 // CHECK-NEXT:     },
 // CHECK-NEXT:     {
@@ -289,7 +287,7 @@ void TestLineNumbers(void) {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "int"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
 // CHECK-NEXT:        "id": "0x{{.*}}",
@@ -309,7 +307,7 @@ void TestLineNumbers(void) {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "value": "1"
 // CHECK-NEXT:       }
 // CHECK-NEXT:      ]
@@ -319,7 +317,6 @@ void TestLineNumbers(void) {
 // CHECK-NEXT:  ]
 // CHECK-NEXT: }
 
-
 // CHECK:  "kind": "CompoundStmt",
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
@@ -398,7 +395,7 @@ void TestLineNumbers(void) {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "value": "0"
 // CHECK-NEXT:       }
 // CHECK-NEXT:      ]
@@ -479,7 +476,6 @@ void TestLineNumbers(void) {
 // CHECK-NEXT:  ]
 // CHECK-NEXT: }
 
-
 // CHECK:  "kind": "VarDecl",
 // CHECK-NEXT:  "loc": {
 // CHECK-NEXT:   "offset": 198,
@@ -524,7 +520,7 @@ void TestLineNumbers(void) {
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "int"
 // CHECK-NEXT:    },
-// CHECK-NEXT:    "valueCategory": "rvalue",
+// CHECK-NEXT:    "valueCategory": "prvalue",
 // CHECK-NEXT:    "inner": [
 // CHECK-NEXT:     {
 // CHECK-NEXT:      "id": "0x{{.*}}",
@@ -544,7 +540,7 @@ void TestLineNumbers(void) {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "int"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "value": "0"
 // CHECK-NEXT:     },
 // CHECK-NEXT:     {
@@ -565,7 +561,7 @@ void TestLineNumbers(void) {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "int"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
 // CHECK-NEXT:        "id": "0x{{.*}}",
@@ -585,7 +581,7 @@ void TestLineNumbers(void) {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "value": "0"
 // CHECK-NEXT:       }
 // CHECK-NEXT:      ]
@@ -608,7 +604,7 @@ void TestLineNumbers(void) {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "int"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
 // CHECK-NEXT:        "id": "0x{{.*}}",
@@ -628,7 +624,7 @@ void TestLineNumbers(void) {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "value": "0"
 // CHECK-NEXT:       }
 // CHECK-NEXT:      ]
@@ -651,7 +647,7 @@ void TestLineNumbers(void) {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "int"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "value": "1"
 // CHECK-NEXT:     }
 // CHECK-NEXT:    ]
@@ -659,7 +655,6 @@ void TestLineNumbers(void) {
 // CHECK-NEXT:  ]
 // CHECK-NEXT: }
 
-
 // CHECK:  "kind": "CompoundStmt",
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
@@ -739,7 +734,7 @@ void TestLineNumbers(void) {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "char"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "castKind": "IntegralCast",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
@@ -760,7 +755,7 @@ void TestLineNumbers(void) {
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "qualType": "int"
 // CHECK-NEXT:          },
-// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "valueCategory": "prvalue",
 // CHECK-NEXT:          "value": "1"
 // CHECK-NEXT:         }
 // CHECK-NEXT:        ]
@@ -832,7 +827,7 @@ void TestLineNumbers(void) {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "value": "1"
 // CHECK-NEXT:       }
 // CHECK-NEXT:      ]
@@ -858,7 +853,7 @@ void TestLineNumbers(void) {
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "char"
 // CHECK-NEXT:    },
-// CHECK-NEXT:    "valueCategory": "rvalue",
+// CHECK-NEXT:    "valueCategory": "prvalue",
 // CHECK-NEXT:    "isPostfix": true,
 // CHECK-NEXT:    "opcode": "++",
 // CHECK-NEXT:    "canOverflow": false,
@@ -912,7 +907,7 @@ void TestLineNumbers(void) {
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "int"
 // CHECK-NEXT:    },
-// CHECK-NEXT:    "valueCategory": "rvalue",
+// CHECK-NEXT:    "valueCategory": "prvalue",
 // CHECK-NEXT:    "isPostfix": true,
 // CHECK-NEXT:    "opcode": "++",
 // CHECK-NEXT:    "inner": [
@@ -965,7 +960,7 @@ void TestLineNumbers(void) {
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "int"
 // CHECK-NEXT:    },
-// CHECK-NEXT:    "valueCategory": "rvalue",
+// CHECK-NEXT:    "valueCategory": "prvalue",
 // CHECK-NEXT:    "isPostfix": false,
 // CHECK-NEXT:    "opcode": "-",
 // CHECK-NEXT:    "canOverflow": false,
@@ -988,7 +983,7 @@ void TestLineNumbers(void) {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "int"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "castKind": "IntegralCast",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
@@ -1009,7 +1004,7 @@ void TestLineNumbers(void) {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "char"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "castKind": "LValueToRValue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
@@ -1065,7 +1060,7 @@ void TestLineNumbers(void) {
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "int"
 // CHECK-NEXT:    },
-// CHECK-NEXT:    "valueCategory": "rvalue",
+// CHECK-NEXT:    "valueCategory": "prvalue",
 // CHECK-NEXT:    "isPostfix": false,
 // CHECK-NEXT:    "opcode": "-",
 // CHECK-NEXT:    "inner": [
@@ -1087,7 +1082,7 @@ void TestLineNumbers(void) {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "int"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "castKind": "LValueToRValue",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
@@ -1141,7 +1136,7 @@ void TestLineNumbers(void) {
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "int"
 // CHECK-NEXT:    },
-// CHECK-NEXT:    "valueCategory": "rvalue",
+// CHECK-NEXT:    "valueCategory": "prvalue",
 // CHECK-NEXT:    "isPostfix": false,
 // CHECK-NEXT:    "opcode": "~",
 // CHECK-NEXT:    "canOverflow": false,
@@ -1164,7 +1159,7 @@ void TestLineNumbers(void) {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "int"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "castKind": "IntegralCast",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
@@ -1185,7 +1180,7 @@ void TestLineNumbers(void) {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "char"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "castKind": "LValueToRValue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
@@ -1241,7 +1236,7 @@ void TestLineNumbers(void) {
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "int"
 // CHECK-NEXT:    },
-// CHECK-NEXT:    "valueCategory": "rvalue",
+// CHECK-NEXT:    "valueCategory": "prvalue",
 // CHECK-NEXT:    "isPostfix": false,
 // CHECK-NEXT:    "opcode": "~",
 // CHECK-NEXT:    "canOverflow": false,
@@ -1264,7 +1259,7 @@ void TestLineNumbers(void) {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "int"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "castKind": "LValueToRValue",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
@@ -1302,7 +1297,6 @@ void TestLineNumbers(void) {
 // CHECK-NEXT:  ]
 // CHECK-NEXT: }
 
-
 // CHECK:  "kind": "CompoundStmt",
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
@@ -1337,7 +1331,7 @@ void TestLineNumbers(void) {
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "int"
 // CHECK-NEXT:    },
-// CHECK-NEXT:    "valueCategory": "rvalue",
+// CHECK-NEXT:    "valueCategory": "prvalue",
 // CHECK-NEXT:    "inner": [
 // CHECK-NEXT:     {
 // CHECK-NEXT:      "id": "0x{{.*}}",
@@ -1357,7 +1351,7 @@ void TestLineNumbers(void) {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "int"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "castKind": "LValueToRValue",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
@@ -1427,7 +1421,7 @@ void TestLineNumbers(void) {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "value": "12"
 // CHECK-NEXT:       }
 // CHECK-NEXT:      ]
@@ -1453,7 +1447,7 @@ void TestLineNumbers(void) {
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "int"
 // CHECK-NEXT:    },
-// CHECK-NEXT:    "valueCategory": "rvalue",
+// CHECK-NEXT:    "valueCategory": "prvalue",
 // CHECK-NEXT:    "inner": [
 // CHECK-NEXT:     {
 // CHECK-NEXT:      "id": "0x{{.*}}",
@@ -1473,7 +1467,7 @@ void TestLineNumbers(void) {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "int"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "castKind": "LValueToRValue",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
@@ -1543,7 +1537,7 @@ void TestLineNumbers(void) {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "value": "12"
 // CHECK-NEXT:       }
 // CHECK-NEXT:      ]
@@ -1569,7 +1563,7 @@ void TestLineNumbers(void) {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "value": "0"
 // CHECK-NEXT:       }
 // CHECK-NEXT:      ]
@@ -1595,7 +1589,7 @@ void TestLineNumbers(void) {
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "int"
 // CHECK-NEXT:    },
-// CHECK-NEXT:    "valueCategory": "rvalue",
+// CHECK-NEXT:    "valueCategory": "prvalue",
 // CHECK-NEXT:    "inner": [
 // CHECK-NEXT:     {
 // CHECK-NEXT:      "id": "0x{{.*}}",
@@ -1615,7 +1609,7 @@ void TestLineNumbers(void) {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "int"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "castKind": "LValueToRValue",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
@@ -1677,7 +1671,7 @@ void TestLineNumbers(void) {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "value": "0"
 // CHECK-NEXT:       }
 // CHECK-NEXT:      ]
@@ -1711,7 +1705,7 @@ void TestLineNumbers(void) {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "value": "12"
 // CHECK-NEXT:       }
 // CHECK-NEXT:      ]
@@ -1737,7 +1731,7 @@ void TestLineNumbers(void) {
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "int"
 // CHECK-NEXT:    },
-// CHECK-NEXT:    "valueCategory": "rvalue",
+// CHECK-NEXT:    "valueCategory": "prvalue",
 // CHECK-NEXT:    "inner": [
 // CHECK-NEXT:     {
 // CHECK-NEXT:      "id": "0x{{.*}}",
@@ -1757,7 +1751,7 @@ void TestLineNumbers(void) {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "int"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "castKind": "LValueToRValue",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
@@ -1827,7 +1821,7 @@ void TestLineNumbers(void) {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "value": "12"
 // CHECK-NEXT:       }
 // CHECK-NEXT:      ]
@@ -1860,7 +1854,7 @@ void TestLineNumbers(void) {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "value": "10"
 // CHECK-NEXT:       }
 // CHECK-NEXT:      ]
@@ -1886,7 +1880,7 @@ void TestLineNumbers(void) {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "value": "100"
 // CHECK-NEXT:       }
 // CHECK-NEXT:      ]
@@ -1955,7 +1949,7 @@ void TestLineNumbers(void) {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
 // CHECK-NEXT:          "id": "0x{{.*}}",
@@ -1975,7 +1969,7 @@ void TestLineNumbers(void) {
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "qualType": "int"
 // CHECK-NEXT:          },
-// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "valueCategory": "prvalue",
 // CHECK-NEXT:          "castKind": "LValueToRValue",
 // CHECK-NEXT:          "inner": [
 // CHECK-NEXT:           {
@@ -2045,7 +2039,7 @@ void TestLineNumbers(void) {
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "qualType": "int"
 // CHECK-NEXT:            },
-// CHECK-NEXT:            "valueCategory": "rvalue",
+// CHECK-NEXT:            "valueCategory": "prvalue",
 // CHECK-NEXT:            "value": "12"
 // CHECK-NEXT:           }
 // CHECK-NEXT:          ]
@@ -2059,7 +2053,6 @@ void TestLineNumbers(void) {
 // CHECK-NEXT:  ]
 // CHECK-NEXT: }
 
-
 // CHECK:  "kind": "CompoundStmt",
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
@@ -2170,7 +2163,7 @@ void TestLineNumbers(void) {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "int"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "value": "0"
 // CHECK-NEXT:     }
 // CHECK-NEXT:    ]
@@ -2238,7 +2231,7 @@ void TestLineNumbers(void) {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "void *"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "name": "label1",
 // CHECK-NEXT:        "labelDeclId": "0x{{.*}}"
 // CHECK-NEXT:       }
@@ -2281,7 +2274,7 @@ void TestLineNumbers(void) {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "const void *"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "castKind": "NoOp",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
@@ -2302,7 +2295,7 @@ void TestLineNumbers(void) {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "void *"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "castKind": "LValueToRValue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
@@ -2342,7 +2335,6 @@ void TestLineNumbers(void) {
 // CHECK-NEXT:  ]
 // CHECK-NEXT: }
 
-
 // CHECK:  "kind": "CompoundStmt",
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
@@ -2395,7 +2387,7 @@ void TestLineNumbers(void) {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "int"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "castKind": "LValueToRValue",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
@@ -2482,7 +2474,7 @@ void TestLineNumbers(void) {
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "qualType": "int"
 // CHECK-NEXT:          },
-// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "valueCategory": "prvalue",
 // CHECK-NEXT:          "inner": [
 // CHECK-NEXT:           {
 // CHECK-NEXT:            "id": "0x{{.*}}",
@@ -2502,7 +2494,7 @@ void TestLineNumbers(void) {
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "qualType": "int"
 // CHECK-NEXT:            },
-// CHECK-NEXT:            "valueCategory": "rvalue",
+// CHECK-NEXT:            "valueCategory": "prvalue",
 // CHECK-NEXT:            "value": "0"
 // CHECK-NEXT:           }
 // CHECK-NEXT:          ]
@@ -2563,7 +2555,7 @@ void TestLineNumbers(void) {
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "qualType": "int"
 // CHECK-NEXT:          },
-// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "valueCategory": "prvalue",
 // CHECK-NEXT:          "inner": [
 // CHECK-NEXT:           {
 // CHECK-NEXT:            "id": "0x{{.*}}",
@@ -2583,7 +2575,7 @@ void TestLineNumbers(void) {
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "qualType": "int"
 // CHECK-NEXT:            },
-// CHECK-NEXT:            "valueCategory": "rvalue",
+// CHECK-NEXT:            "valueCategory": "prvalue",
 // CHECK-NEXT:            "value": "1"
 // CHECK-NEXT:           }
 // CHECK-NEXT:          ]
@@ -2625,7 +2617,7 @@ void TestLineNumbers(void) {
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "qualType": "int"
 // CHECK-NEXT:            },
-// CHECK-NEXT:            "valueCategory": "rvalue",
+// CHECK-NEXT:            "valueCategory": "prvalue",
 // CHECK-NEXT:            "inner": [
 // CHECK-NEXT:             {
 // CHECK-NEXT:              "id": "0x{{.*}}",
@@ -2645,7 +2637,7 @@ void TestLineNumbers(void) {
 // CHECK-NEXT:              "type": {
 // CHECK-NEXT:               "qualType": "int"
 // CHECK-NEXT:              },
-// CHECK-NEXT:              "valueCategory": "rvalue",
+// CHECK-NEXT:              "valueCategory": "prvalue",
 // CHECK-NEXT:              "value": "2"
 // CHECK-NEXT:             }
 // CHECK-NEXT:            ]
@@ -2745,7 +2737,7 @@ void TestLineNumbers(void) {
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "qualType": "int"
 // CHECK-NEXT:          },
-// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "valueCategory": "prvalue",
 // CHECK-NEXT:          "inner": [
 // CHECK-NEXT:           {
 // CHECK-NEXT:            "id": "0x{{.*}}",
@@ -2765,7 +2757,7 @@ void TestLineNumbers(void) {
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "qualType": "int"
 // CHECK-NEXT:            },
-// CHECK-NEXT:            "valueCategory": "rvalue",
+// CHECK-NEXT:            "valueCategory": "prvalue",
 // CHECK-NEXT:            "value": "3"
 // CHECK-NEXT:           }
 // CHECK-NEXT:          ]
@@ -2788,7 +2780,7 @@ void TestLineNumbers(void) {
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "qualType": "int"
 // CHECK-NEXT:          },
-// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "valueCategory": "prvalue",
 // CHECK-NEXT:          "inner": [
 // CHECK-NEXT:           {
 // CHECK-NEXT:            "id": "0x{{.*}}",
@@ -2808,7 +2800,7 @@ void TestLineNumbers(void) {
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "qualType": "int"
 // CHECK-NEXT:            },
-// CHECK-NEXT:            "valueCategory": "rvalue",
+// CHECK-NEXT:            "valueCategory": "prvalue",
 // CHECK-NEXT:            "value": "5"
 // CHECK-NEXT:           }
 // CHECK-NEXT:          ]
@@ -2839,7 +2831,6 @@ void TestLineNumbers(void) {
 // CHECK-NEXT:  ]
 // CHECK-NEXT: }
 
-
 // CHECK:  "kind": "CompoundStmt",
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
@@ -2892,7 +2883,7 @@ void TestLineNumbers(void) {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "_Bool"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "castKind": "LValueToRValue",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
@@ -2979,7 +2970,7 @@ void TestLineNumbers(void) {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "_Bool"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "castKind": "LValueToRValue",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
@@ -3068,7 +3059,7 @@ void TestLineNumbers(void) {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "_Bool"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "castKind": "LValueToRValue",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
@@ -3175,7 +3166,7 @@ void TestLineNumbers(void) {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "_Bool"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "castKind": "LValueToRValue",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
@@ -3281,7 +3272,7 @@ void TestLineNumbers(void) {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "_Bool"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "castKind": "LValueToRValue",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
@@ -3368,7 +3359,7 @@ void TestLineNumbers(void) {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "_Bool"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "castKind": "LValueToRValue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
@@ -3460,7 +3451,7 @@ void TestLineNumbers(void) {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "_Bool"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "castKind": "LValueToRValue",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
@@ -3548,7 +3539,7 @@ void TestLineNumbers(void) {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "_Bool"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "castKind": "LValueToRValue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
@@ -3622,7 +3613,6 @@ void TestLineNumbers(void) {
 // CHECK-NEXT:  ]
 // CHECK-NEXT: }
 
-
 // CHECK:  "kind": "CompoundStmt",
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
@@ -3675,7 +3665,7 @@ void TestLineNumbers(void) {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "_Bool"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "castKind": "LValueToRValue",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
@@ -3781,7 +3771,7 @@ void TestLineNumbers(void) {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "_Bool"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "castKind": "LValueToRValue",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
@@ -3897,7 +3887,7 @@ void TestLineNumbers(void) {
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "qualType": "int"
 // CHECK-NEXT:          },
-// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "valueCategory": "prvalue",
 // CHECK-NEXT:          "value": "0"
 // CHECK-NEXT:         }
 // CHECK-NEXT:        ]
@@ -3923,7 +3913,7 @@ void TestLineNumbers(void) {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "int"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "opcode": "<",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
@@ -3944,7 +3934,7 @@ void TestLineNumbers(void) {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "castKind": "LValueToRValue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
@@ -3995,7 +3985,7 @@ void TestLineNumbers(void) {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "value": "10"
 // CHECK-NEXT:       }
 // CHECK-NEXT:      ]
@@ -4018,7 +4008,7 @@ void TestLineNumbers(void) {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "int"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "isPostfix": false,
 // CHECK-NEXT:      "opcode": "++",
 // CHECK-NEXT:      "inner": [
@@ -4108,7 +4098,7 @@ void TestLineNumbers(void) {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "_Bool"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "castKind": "LValueToRValue",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
@@ -4160,7 +4150,7 @@ void TestLineNumbers(void) {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "_Bool"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "castKind": "LValueToRValue",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
@@ -4211,7 +4201,7 @@ void TestLineNumbers(void) {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "_Bool"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "castKind": "LValueToRValue",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
@@ -4302,7 +4292,7 @@ void TestLineNumbers(void) {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "_Bool"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "castKind": "LValueToRValue",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
@@ -4353,7 +4343,7 @@ void TestLineNumbers(void) {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "_Bool"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "opcode": "=",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
@@ -4402,7 +4392,7 @@ void TestLineNumbers(void) {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "_Bool"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "castKind": "IntegralToBoolean",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
@@ -4423,7 +4413,7 @@ void TestLineNumbers(void) {
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "qualType": "int"
 // CHECK-NEXT:          },
-// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "valueCategory": "prvalue",
 // CHECK-NEXT:          "isPostfix": false,
 // CHECK-NEXT:          "opcode": "!",
 // CHECK-NEXT:          "canOverflow": false,
@@ -4446,7 +4436,7 @@ void TestLineNumbers(void) {
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "qualType": "_Bool"
 // CHECK-NEXT:            },
-// CHECK-NEXT:            "valueCategory": "rvalue",
+// CHECK-NEXT:            "valueCategory": "prvalue",
 // CHECK-NEXT:            "castKind": "LValueToRValue",
 // CHECK-NEXT:            "inner": [
 // CHECK-NEXT:             {
@@ -4543,7 +4533,7 @@ void TestLineNumbers(void) {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "_Bool"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "castKind": "LValueToRValue",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
@@ -4636,7 +4626,7 @@ void TestLineNumbers(void) {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "_Bool"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "opcode": "=",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
@@ -4685,7 +4675,7 @@ void TestLineNumbers(void) {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "_Bool"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "castKind": "IntegralToBoolean",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
@@ -4706,7 +4696,7 @@ void TestLineNumbers(void) {
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "qualType": "int"
 // CHECK-NEXT:          },
-// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "valueCategory": "prvalue",
 // CHECK-NEXT:          "isPostfix": false,
 // CHECK-NEXT:          "opcode": "!",
 // CHECK-NEXT:          "canOverflow": false,
@@ -4729,7 +4719,7 @@ void TestLineNumbers(void) {
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "qualType": "_Bool"
 // CHECK-NEXT:            },
-// CHECK-NEXT:            "valueCategory": "rvalue",
+// CHECK-NEXT:            "valueCategory": "prvalue",
 // CHECK-NEXT:            "castKind": "LValueToRValue",
 // CHECK-NEXT:            "inner": [
 // CHECK-NEXT:             {
@@ -4830,7 +4820,6 @@ void TestLineNumbers(void) {
 // CHECK-NEXT:  ]
 // CHECK-NEXT: }
 
-
 // CHECK:  "kind": "CompoundStmt",
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
@@ -4884,7 +4873,7 @@ void TestLineNumbers(void) {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "int"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "value": "1"
 // CHECK-NEXT:     },
 // CHECK-NEXT:     {
@@ -4994,7 +4983,7 @@ void TestLineNumbers(void) {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "void"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
 // CHECK-NEXT:        "id": "0x{{.*}}",
@@ -5014,7 +5003,7 @@ void TestLineNumbers(void) {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "void (*)(int)"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "castKind": "FunctionToPointerDecay",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
@@ -5035,7 +5024,7 @@ void TestLineNumbers(void) {
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "qualType": "void (int)"
 // CHECK-NEXT:          },
-// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "valueCategory": "prvalue",
 // CHECK-NEXT:          "referencedDecl": {
 // CHECK-NEXT:           "id": "0x{{.*}}",
 // CHECK-NEXT:           "kind": "FunctionDecl",
@@ -5065,7 +5054,7 @@ void TestLineNumbers(void) {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "value": "1"
 // CHECK-NEXT:       }
 // CHECK-NEXT:      ]
@@ -5075,7 +5064,6 @@ void TestLineNumbers(void) {
 // CHECK-NEXT:  ]
 // CHECK-NEXT: }
 
-
 // CHECK:  "kind": "CompoundStmt",
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
@@ -5111,7 +5099,7 @@ void TestLineNumbers(void) {
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "int"
 // CHECK-NEXT:    },
-// CHECK-NEXT:    "valueCategory": "rvalue",
+// CHECK-NEXT:    "valueCategory": "prvalue",
 // CHECK-NEXT:    "inner": [
 // CHECK-NEXT:     {
 // CHECK-NEXT:      "id": "0x{{.*}}",
@@ -5191,7 +5179,7 @@ void TestLineNumbers(void) {
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "qualType": "int"
 // CHECK-NEXT:            },
-// CHECK-NEXT:            "valueCategory": "rvalue",
+// CHECK-NEXT:            "valueCategory": "prvalue",
 // CHECK-NEXT:            "value": "10"
 // CHECK-NEXT:           }
 // CHECK-NEXT:          ]
@@ -5216,7 +5204,7 @@ void TestLineNumbers(void) {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "castKind": "LValueToRValue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
@@ -5256,7 +5244,6 @@ void TestLineNumbers(void) {
 // CHECK-NEXT:  ]
 // CHECK-NEXT: }
 
-
 // CHECK:  "kind": "CompoundStmt",
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
@@ -5401,7 +5388,7 @@ void TestLineNumbers(void) {
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "int"
 // CHECK-NEXT:    },
-// CHECK-NEXT:    "valueCategory": "rvalue",
+// CHECK-NEXT:    "valueCategory": "prvalue",
 // CHECK-NEXT:    "value": "1"
 // CHECK-NEXT:   }
 // CHECK-NEXT:  ]

diff  --git a/clang/test/AST/ast-dump-stmt-json.cpp b/clang/test/AST/ast-dump-stmt-json.cpp
index f7f3a2c55a5e5..c2ccc9acb7a89 100644
--- a/clang/test/AST/ast-dump-stmt-json.cpp
+++ b/clang/test/AST/ast-dump-stmt-json.cpp
@@ -277,7 +277,6 @@ void TestDependentGenericSelectionExpr(Ty T) {
 // CHECK-NEXT:  }
 // CHECK-NEXT: }
 
-
 // CHECK:  "kind": "FunctionDecl",
 // CHECK-NEXT:  "loc": {
 // CHECK-NEXT:   "offset": 198,
@@ -384,7 +383,7 @@ void TestDependentGenericSelectionExpr(Ty T) {
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "qualType": "void (*)()"
 // CHECK-NEXT:          },
-// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "valueCategory": "prvalue",
 // CHECK-NEXT:          "isPostfix": false,
 // CHECK-NEXT:          "opcode": "&",
 // CHECK-NEXT:          "canOverflow": false,
@@ -501,7 +500,7 @@ void TestDependentGenericSelectionExpr(Ty T) {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "value": "4"
 // CHECK-NEXT:       }
 // CHECK-NEXT:      ]
@@ -511,7 +510,6 @@ void TestDependentGenericSelectionExpr(Ty T) {
 // CHECK-NEXT:  ]
 // CHECK-NEXT: }
 
-
 // CHECK:  "kind": "FunctionDecl",
 // CHECK-NEXT:  "loc": {
 // CHECK-NEXT:   "offset": 266,
@@ -792,7 +790,6 @@ void TestDependentGenericSelectionExpr(Ty T) {
 // CHECK-NEXT:  ]
 // CHECK-NEXT: }
 
-
 // CHECK:  "kind": "FunctionDecl",
 // CHECK-NEXT:  "loc": {
 // CHECK-NEXT:   "offset": 378,
@@ -951,7 +948,7 @@ void TestDependentGenericSelectionExpr(Ty T) {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int *"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "operatorNewDecl": {
 // CHECK-NEXT:         "id": "0x{{.*}}",
 // CHECK-NEXT:         "kind": "FunctionDecl",
@@ -982,7 +979,7 @@ void TestDependentGenericSelectionExpr(Ty T) {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "void"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "operatorDeleteDecl": {
 // CHECK-NEXT:       "id": "0x{{.*}}",
 // CHECK-NEXT:       "kind": "FunctionDecl",
@@ -1010,7 +1007,7 @@ void TestDependentGenericSelectionExpr(Ty T) {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int *"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "castKind": "LValueToRValue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
@@ -1113,7 +1110,7 @@ void TestDependentGenericSelectionExpr(Ty T) {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int *"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "isArray": true,
 // CHECK-NEXT:        "operatorNewDecl": {
 // CHECK-NEXT:         "id": "0x{{.*}}",
@@ -1142,7 +1139,7 @@ void TestDependentGenericSelectionExpr(Ty T) {
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "qualType": "unsigned long"
 // CHECK-NEXT:          },
-// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "valueCategory": "prvalue",
 // CHECK-NEXT:          "castKind": "IntegralCast",
 // CHECK-NEXT:          "inner": [
 // CHECK-NEXT:           {
@@ -1163,7 +1160,7 @@ void TestDependentGenericSelectionExpr(Ty T) {
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "qualType": "int"
 // CHECK-NEXT:            },
-// CHECK-NEXT:            "valueCategory": "rvalue",
+// CHECK-NEXT:            "valueCategory": "prvalue",
 // CHECK-NEXT:            "value": "2"
 // CHECK-NEXT:           }
 // CHECK-NEXT:          ]
@@ -1191,7 +1188,7 @@ void TestDependentGenericSelectionExpr(Ty T) {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "void"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "isArray": true,
 // CHECK-NEXT:      "isArrayAsWritten": true,
 // CHECK-NEXT:      "operatorDeleteDecl": {
@@ -1221,7 +1218,7 @@ void TestDependentGenericSelectionExpr(Ty T) {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int *"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "castKind": "LValueToRValue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
@@ -1324,7 +1321,7 @@ void TestDependentGenericSelectionExpr(Ty T) {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int *"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "isGlobal": true,
 // CHECK-NEXT:        "operatorNewDecl": {
 // CHECK-NEXT:         "id": "0x{{.*}}",
@@ -1356,7 +1353,7 @@ void TestDependentGenericSelectionExpr(Ty T) {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "void"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "isGlobal": true,
 // CHECK-NEXT:      "operatorDeleteDecl": {
 // CHECK-NEXT:       "id": "0x{{.*}}",
@@ -1385,7 +1382,7 @@ void TestDependentGenericSelectionExpr(Ty T) {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int *"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "castKind": "LValueToRValue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
@@ -1425,7 +1422,6 @@ void TestDependentGenericSelectionExpr(Ty T) {
 // CHECK-NEXT:  ]
 // CHECK-NEXT: }
 
-
 // CHECK:  "kind": "FunctionDecl",
 // CHECK-NEXT:  "loc": {},
 // CHECK-NEXT:  "range": {
@@ -1883,7 +1879,6 @@ void TestDependentGenericSelectionExpr(Ty T) {
 // CHECK-NEXT:  ]
 // CHECK-NEXT: }
 
-
 // CHECK:  "kind": "FunctionTemplateDecl",
 // CHECK-NEXT:  "loc": {
 // CHECK-NEXT:   "offset": 598,
@@ -2042,7 +2037,7 @@ void TestDependentGenericSelectionExpr(Ty T) {
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "qualType": "T *"
 // CHECK-NEXT:            },
-// CHECK-NEXT:            "valueCategory": "rvalue"
+// CHECK-NEXT:            "valueCategory": "prvalue"
 // CHECK-NEXT:           }
 // CHECK-NEXT:          ]
 // CHECK-NEXT:         }
@@ -2067,7 +2062,7 @@ void TestDependentGenericSelectionExpr(Ty T) {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "void"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
 // CHECK-NEXT:          "id": "0x{{.*}}",
@@ -2106,7 +2101,6 @@ void TestDependentGenericSelectionExpr(Ty T) {
 // CHECK-NEXT:  ]
 // CHECK-NEXT: }
 
-
 // CHECK:  "kind": "FunctionTemplateDecl",
 // CHECK-NEXT:  "loc": {
 // CHECK-NEXT:   "offset": 766,
@@ -2267,7 +2261,7 @@ void TestDependentGenericSelectionExpr(Ty T) {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "<dependent type>"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "opcode": "=",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
@@ -2340,7 +2334,7 @@ void TestDependentGenericSelectionExpr(Ty T) {
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "qualType": "T"
 // CHECK-NEXT:          },
-// CHECK-NEXT:          "valueCategory": "rvalue"
+// CHECK-NEXT:          "valueCategory": "prvalue"
 // CHECK-NEXT:         }
 // CHECK-NEXT:        ]
 // CHECK-NEXT:       },
@@ -2363,7 +2357,7 @@ void TestDependentGenericSelectionExpr(Ty T) {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "<dependent type>"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "opcode": "=",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
@@ -2436,7 +2430,7 @@ void TestDependentGenericSelectionExpr(Ty T) {
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "qualType": "T"
 // CHECK-NEXT:          },
-// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "valueCategory": "prvalue",
 // CHECK-NEXT:          "list": true,
 // CHECK-NEXT:          "inner": [
 // CHECK-NEXT:           {
@@ -2457,7 +2451,7 @@ void TestDependentGenericSelectionExpr(Ty T) {
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "qualType": "void"
 // CHECK-NEXT:            },
-// CHECK-NEXT:            "valueCategory": "rvalue"
+// CHECK-NEXT:            "valueCategory": "prvalue"
 // CHECK-NEXT:           }
 // CHECK-NEXT:          ]
 // CHECK-NEXT:         }
@@ -2482,7 +2476,7 @@ void TestDependentGenericSelectionExpr(Ty T) {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "<dependent type>"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "opcode": "=",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
@@ -2525,7 +2519,7 @@ void TestDependentGenericSelectionExpr(Ty T) {
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "qualType": "<dependent type>"
 // CHECK-NEXT:            },
-// CHECK-NEXT:            "valueCategory": "rvalue",
+// CHECK-NEXT:            "valueCategory": "prvalue",
 // CHECK-NEXT:            "inner": [
 // CHECK-NEXT:             {
 // CHECK-NEXT:              "id": "0x{{.*}}",
@@ -2545,7 +2539,7 @@ void TestDependentGenericSelectionExpr(Ty T) {
 // CHECK-NEXT:              "type": {
 // CHECK-NEXT:               "qualType": "<dependent type>"
 // CHECK-NEXT:              },
-// CHECK-NEXT:              "valueCategory": "rvalue",
+// CHECK-NEXT:              "valueCategory": "prvalue",
 // CHECK-NEXT:              "isPostfix": false,
 // CHECK-NEXT:              "opcode": "&",
 // CHECK-NEXT:              "canOverflow": false,
@@ -2602,7 +2596,7 @@ void TestDependentGenericSelectionExpr(Ty T) {
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "qualType": "T"
 // CHECK-NEXT:          },
-// CHECK-NEXT:          "valueCategory": "rvalue"
+// CHECK-NEXT:          "valueCategory": "prvalue"
 // CHECK-NEXT:         }
 // CHECK-NEXT:        ]
 // CHECK-NEXT:       }
@@ -2613,7 +2607,6 @@ void TestDependentGenericSelectionExpr(Ty T) {
 // CHECK-NEXT:  ]
 // CHECK-NEXT: }
 
-
 // CHECK:  "kind": "FunctionTemplateDecl",
 // CHECK-NEXT:  "loc": {
 // CHECK-NEXT:   "offset": 1049,
@@ -2774,7 +2767,7 @@ void TestDependentGenericSelectionExpr(Ty T) {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "<dependent type>"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "opcode": "=",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
@@ -2869,7 +2862,7 @@ void TestDependentGenericSelectionExpr(Ty T) {
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "qualType": "int"
 // CHECK-NEXT:          },
-// CHECK-NEXT:          "valueCategory": "rvalue"
+// CHECK-NEXT:          "valueCategory": "prvalue"
 // CHECK-NEXT:         }
 // CHECK-NEXT:        ]
 // CHECK-NEXT:       }
@@ -2880,7 +2873,6 @@ void TestDependentGenericSelectionExpr(Ty T) {
 // CHECK-NEXT:  ]
 // CHECK-NEXT: }
 
-
 // CHECK:  "kind": "FunctionDecl",
 // CHECK-NEXT:  "loc": {
 // CHECK-NEXT:   "offset": 1214,
@@ -2987,7 +2979,7 @@ void TestDependentGenericSelectionExpr(Ty T) {
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "qualType": "U [3]"
 // CHECK-NEXT:          },
-// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "valueCategory": "prvalue",
 // CHECK-NEXT:          "array_filler": [
 // CHECK-NEXT:           {
 // CHECK-NEXT:            "id": "0x{{.*}}",
@@ -3007,7 +2999,7 @@ void TestDependentGenericSelectionExpr(Ty T) {
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "qualType": "U"
 // CHECK-NEXT:            },
-// CHECK-NEXT:            "valueCategory": "rvalue",
+// CHECK-NEXT:            "valueCategory": "prvalue",
 // CHECK-NEXT:            "field": {
 // CHECK-NEXT:             "id": "0x{{.*}}",
 // CHECK-NEXT:             "kind": "FieldDecl",
@@ -3035,7 +3027,7 @@ void TestDependentGenericSelectionExpr(Ty T) {
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "qualType": "U"
 // CHECK-NEXT:            },
-// CHECK-NEXT:            "valueCategory": "rvalue",
+// CHECK-NEXT:            "valueCategory": "prvalue",
 // CHECK-NEXT:            "field": {
 // CHECK-NEXT:             "id": "0x{{.*}}",
 // CHECK-NEXT:             "kind": "FieldDecl",
@@ -3063,7 +3055,7 @@ void TestDependentGenericSelectionExpr(Ty T) {
 // CHECK-NEXT:              "type": {
 // CHECK-NEXT:               "qualType": "int"
 // CHECK-NEXT:              },
-// CHECK-NEXT:              "valueCategory": "rvalue",
+// CHECK-NEXT:              "valueCategory": "prvalue",
 // CHECK-NEXT:              "value": "1"
 // CHECK-NEXT:             }
 // CHECK-NEXT:            ]
@@ -3079,7 +3071,6 @@ void TestDependentGenericSelectionExpr(Ty T) {
 // CHECK-NEXT:  ]
 // CHECK-NEXT: }
 
-
 // CHECK:  "kind": "FunctionDecl",
 // CHECK-NEXT:  "loc": {
 // CHECK-NEXT:   "offset": 1261,
@@ -3233,7 +3224,7 @@ void TestDependentGenericSelectionExpr(Ty T) {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "castKind": "LValueToRValue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
@@ -3290,7 +3281,6 @@ void TestDependentGenericSelectionExpr(Ty T) {
 // CHECK-NEXT:  ]
 // CHECK-NEXT: }
 
-
 // CHECK:  "kind": "FunctionDecl",
 // CHECK-NEXT:  "loc": {
 // CHECK-NEXT:   "offset": 1315,
@@ -3444,7 +3434,7 @@ void TestDependentGenericSelectionExpr(Ty T) {
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "qualType": "int"
 // CHECK-NEXT:            },
-// CHECK-NEXT:            "valueCategory": "rvalue",
+// CHECK-NEXT:            "valueCategory": "prvalue",
 // CHECK-NEXT:            "value": "12"
 // CHECK-NEXT:           }
 // CHECK-NEXT:          ]
@@ -3469,7 +3459,7 @@ void TestDependentGenericSelectionExpr(Ty T) {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "bool"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "castKind": "IntegralToBoolean",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
@@ -3490,7 +3480,7 @@ void TestDependentGenericSelectionExpr(Ty T) {
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "qualType": "int"
 // CHECK-NEXT:          },
-// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "valueCategory": "prvalue",
 // CHECK-NEXT:          "castKind": "LValueToRValue",
 // CHECK-NEXT:          "inner": [
 // CHECK-NEXT:           {
@@ -3583,7 +3573,7 @@ void TestDependentGenericSelectionExpr(Ty T) {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "bool"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "value": "true",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
@@ -3604,7 +3594,7 @@ void TestDependentGenericSelectionExpr(Ty T) {
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "qualType": "bool"
 // CHECK-NEXT:          },
-// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "valueCategory": "prvalue",
 // CHECK-NEXT:          "opcode": "==",
 // CHECK-NEXT:          "inner": [
 // CHECK-NEXT:           {
@@ -3625,7 +3615,7 @@ void TestDependentGenericSelectionExpr(Ty T) {
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "qualType": "unsigned long"
 // CHECK-NEXT:            },
-// CHECK-NEXT:            "valueCategory": "rvalue",
+// CHECK-NEXT:            "valueCategory": "prvalue",
 // CHECK-NEXT:            "name": "sizeof",
 // CHECK-NEXT:            "inner": [
 // CHECK-NEXT:             {
@@ -3699,7 +3689,7 @@ void TestDependentGenericSelectionExpr(Ty T) {
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "qualType": "unsigned long"
 // CHECK-NEXT:            },
-// CHECK-NEXT:            "valueCategory": "rvalue",
+// CHECK-NEXT:            "valueCategory": "prvalue",
 // CHECK-NEXT:            "castKind": "IntegralCast",
 // CHECK-NEXT:            "inner": [
 // CHECK-NEXT:             {
@@ -3720,7 +3710,7 @@ void TestDependentGenericSelectionExpr(Ty T) {
 // CHECK-NEXT:              "type": {
 // CHECK-NEXT:               "qualType": "int"
 // CHECK-NEXT:              },
-// CHECK-NEXT:              "valueCategory": "rvalue",
+// CHECK-NEXT:              "valueCategory": "prvalue",
 // CHECK-NEXT:              "value": "1"
 // CHECK-NEXT:             }
 // CHECK-NEXT:            ]
@@ -3787,7 +3777,7 @@ void TestDependentGenericSelectionExpr(Ty T) {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "bool"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "value": "true",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
@@ -3808,7 +3798,7 @@ void TestDependentGenericSelectionExpr(Ty T) {
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "qualType": "bool"
 // CHECK-NEXT:          },
-// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "valueCategory": "prvalue",
 // CHECK-NEXT:          "opcode": "==",
 // CHECK-NEXT:          "inner": [
 // CHECK-NEXT:           {
@@ -3829,7 +3819,7 @@ void TestDependentGenericSelectionExpr(Ty T) {
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "qualType": "unsigned long"
 // CHECK-NEXT:            },
-// CHECK-NEXT:            "valueCategory": "rvalue",
+// CHECK-NEXT:            "valueCategory": "prvalue",
 // CHECK-NEXT:            "name": "sizeof",
 // CHECK-NEXT:            "inner": [
 // CHECK-NEXT:             {
@@ -3903,7 +3893,7 @@ void TestDependentGenericSelectionExpr(Ty T) {
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "qualType": "unsigned long"
 // CHECK-NEXT:            },
-// CHECK-NEXT:            "valueCategory": "rvalue",
+// CHECK-NEXT:            "valueCategory": "prvalue",
 // CHECK-NEXT:            "castKind": "IntegralCast",
 // CHECK-NEXT:            "inner": [
 // CHECK-NEXT:             {
@@ -3924,7 +3914,7 @@ void TestDependentGenericSelectionExpr(Ty T) {
 // CHECK-NEXT:              "type": {
 // CHECK-NEXT:               "qualType": "int"
 // CHECK-NEXT:              },
-// CHECK-NEXT:              "valueCategory": "rvalue",
+// CHECK-NEXT:              "valueCategory": "prvalue",
 // CHECK-NEXT:              "value": "1"
 // CHECK-NEXT:             }
 // CHECK-NEXT:            ]
@@ -3974,7 +3964,6 @@ void TestDependentGenericSelectionExpr(Ty T) {
 // CHECK-NEXT:  ]
 // CHECK-NEXT: }
 
-
 // CHECK:  "kind": "FunctionDecl",
 // CHECK-NEXT:  "loc": {
 // CHECK-NEXT:   "offset": 1529,
@@ -4100,7 +4089,7 @@ void TestDependentGenericSelectionExpr(Ty T) {
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "qualType": "int"
 // CHECK-NEXT:            },
-// CHECK-NEXT:            "valueCategory": "rvalue",
+// CHECK-NEXT:            "valueCategory": "prvalue",
 // CHECK-NEXT:            "value": "0"
 // CHECK-NEXT:           }
 // CHECK-NEXT:          ]
@@ -4169,7 +4158,7 @@ void TestDependentGenericSelectionExpr(Ty T) {
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "qualType": "int"
 // CHECK-NEXT:            },
-// CHECK-NEXT:            "valueCategory": "rvalue",
+// CHECK-NEXT:            "valueCategory": "prvalue",
 // CHECK-NEXT:            "castKind": "LValueToRValue",
 // CHECK-NEXT:            "inner": [
 // CHECK-NEXT:             {
@@ -4224,7 +4213,7 @@ void TestDependentGenericSelectionExpr(Ty T) {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "bool"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "castKind": "IntegralToBoolean",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
@@ -4245,7 +4234,7 @@ void TestDependentGenericSelectionExpr(Ty T) {
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "qualType": "int"
 // CHECK-NEXT:          },
-// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "valueCategory": "prvalue",
 // CHECK-NEXT:          "castKind": "LValueToRValue",
 // CHECK-NEXT:          "inner": [
 // CHECK-NEXT:           {
@@ -4558,7 +4547,7 @@ void TestDependentGenericSelectionExpr(Ty T) {
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "qualType": "int *"
 // CHECK-NEXT:            },
-// CHECK-NEXT:            "valueCategory": "rvalue",
+// CHECK-NEXT:            "valueCategory": "prvalue",
 // CHECK-NEXT:            "castKind": "ArrayToPointerDecay",
 // CHECK-NEXT:            "inner": [
 // CHECK-NEXT:             {
@@ -4659,7 +4648,7 @@ void TestDependentGenericSelectionExpr(Ty T) {
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "qualType": "int *"
 // CHECK-NEXT:            },
-// CHECK-NEXT:            "valueCategory": "rvalue",
+// CHECK-NEXT:            "valueCategory": "prvalue",
 // CHECK-NEXT:            "opcode": "+",
 // CHECK-NEXT:            "inner": [
 // CHECK-NEXT:             {
@@ -4680,7 +4669,7 @@ void TestDependentGenericSelectionExpr(Ty T) {
 // CHECK-NEXT:              "type": {
 // CHECK-NEXT:               "qualType": "int *"
 // CHECK-NEXT:              },
-// CHECK-NEXT:              "valueCategory": "rvalue",
+// CHECK-NEXT:              "valueCategory": "prvalue",
 // CHECK-NEXT:              "castKind": "ArrayToPointerDecay",
 // CHECK-NEXT:              "inner": [
 // CHECK-NEXT:               {
@@ -4731,7 +4720,7 @@ void TestDependentGenericSelectionExpr(Ty T) {
 // CHECK-NEXT:              "type": {
 // CHECK-NEXT:               "qualType": "long"
 // CHECK-NEXT:              },
-// CHECK-NEXT:              "valueCategory": "rvalue",
+// CHECK-NEXT:              "valueCategory": "prvalue",
 // CHECK-NEXT:              "value": "10"
 // CHECK-NEXT:             }
 // CHECK-NEXT:            ]
@@ -4758,7 +4747,7 @@ void TestDependentGenericSelectionExpr(Ty T) {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "bool"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "opcode": "!=",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
@@ -4780,7 +4769,7 @@ void TestDependentGenericSelectionExpr(Ty T) {
 // CHECK-NEXT:           "desugaredQualType": "int *",
 // CHECK-NEXT:           "qualType": "int *"
 // CHECK-NEXT:          },
-// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "valueCategory": "prvalue",
 // CHECK-NEXT:          "castKind": "LValueToRValue",
 // CHECK-NEXT:          "inner": [
 // CHECK-NEXT:           {
@@ -4834,7 +4823,7 @@ void TestDependentGenericSelectionExpr(Ty T) {
 // CHECK-NEXT:           "desugaredQualType": "int *",
 // CHECK-NEXT:           "qualType": "int *"
 // CHECK-NEXT:          },
-// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "valueCategory": "prvalue",
 // CHECK-NEXT:          "castKind": "LValueToRValue",
 // CHECK-NEXT:          "inner": [
 // CHECK-NEXT:           {
@@ -4987,7 +4976,7 @@ void TestDependentGenericSelectionExpr(Ty T) {
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "qualType": "int"
 // CHECK-NEXT:            },
-// CHECK-NEXT:            "valueCategory": "rvalue",
+// CHECK-NEXT:            "valueCategory": "prvalue",
 // CHECK-NEXT:            "castKind": "LValueToRValue",
 // CHECK-NEXT:            "inner": [
 // CHECK-NEXT:             {
@@ -5032,7 +5021,7 @@ void TestDependentGenericSelectionExpr(Ty T) {
 // CHECK-NEXT:                 "desugaredQualType": "int *",
 // CHECK-NEXT:                 "qualType": "int *"
 // CHECK-NEXT:                },
-// CHECK-NEXT:                "valueCategory": "rvalue",
+// CHECK-NEXT:                "valueCategory": "prvalue",
 // CHECK-NEXT:                "castKind": "LValueToRValue",
 // CHECK-NEXT:                "inner": [
 // CHECK-NEXT:                 {
@@ -5157,7 +5146,7 @@ void TestDependentGenericSelectionExpr(Ty T) {
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "qualType": "Container"
 // CHECK-NEXT:          },
-// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "valueCategory": "prvalue",
 // CHECK-NEXT:          "ctorType": {
 // CHECK-NEXT:           "qualType": "void () noexcept"
 // CHECK-NEXT:          },
@@ -5329,7 +5318,7 @@ void TestDependentGenericSelectionExpr(Ty T) {
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "qualType": "int *"
 // CHECK-NEXT:            },
-// CHECK-NEXT:            "valueCategory": "rvalue",
+// CHECK-NEXT:            "valueCategory": "prvalue",
 // CHECK-NEXT:            "inner": [
 // CHECK-NEXT:             {
 // CHECK-NEXT:              "id": "0x{{.*}}",
@@ -5349,7 +5338,7 @@ void TestDependentGenericSelectionExpr(Ty T) {
 // CHECK-NEXT:              "type": {
 // CHECK-NEXT:               "qualType": "<bound member function type>"
 // CHECK-NEXT:              },
-// CHECK-NEXT:              "valueCategory": "rvalue",
+// CHECK-NEXT:              "valueCategory": "prvalue",
 // CHECK-NEXT:              "name": "begin",
 // CHECK-NEXT:              "isArrow": false,
 // CHECK-NEXT:              "referencedMemberDecl": "0x{{.*}}",
@@ -5477,7 +5466,7 @@ void TestDependentGenericSelectionExpr(Ty T) {
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "qualType": "int *"
 // CHECK-NEXT:            },
-// CHECK-NEXT:            "valueCategory": "rvalue",
+// CHECK-NEXT:            "valueCategory": "prvalue",
 // CHECK-NEXT:            "inner": [
 // CHECK-NEXT:             {
 // CHECK-NEXT:              "id": "0x{{.*}}",
@@ -5497,7 +5486,7 @@ void TestDependentGenericSelectionExpr(Ty T) {
 // CHECK-NEXT:              "type": {
 // CHECK-NEXT:               "qualType": "<bound member function type>"
 // CHECK-NEXT:              },
-// CHECK-NEXT:              "valueCategory": "rvalue",
+// CHECK-NEXT:              "valueCategory": "prvalue",
 // CHECK-NEXT:              "name": "end",
 // CHECK-NEXT:              "isArrow": false,
 // CHECK-NEXT:              "referencedMemberDecl": "0x{{.*}}",
@@ -5579,7 +5568,7 @@ void TestDependentGenericSelectionExpr(Ty T) {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "bool"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "opcode": "!=",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
@@ -5601,7 +5590,7 @@ void TestDependentGenericSelectionExpr(Ty T) {
 // CHECK-NEXT:           "desugaredQualType": "int *",
 // CHECK-NEXT:           "qualType": "int *"
 // CHECK-NEXT:          },
-// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "valueCategory": "prvalue",
 // CHECK-NEXT:          "castKind": "LValueToRValue",
 // CHECK-NEXT:          "inner": [
 // CHECK-NEXT:           {
@@ -5655,7 +5644,7 @@ void TestDependentGenericSelectionExpr(Ty T) {
 // CHECK-NEXT:           "desugaredQualType": "int *",
 // CHECK-NEXT:           "qualType": "int *"
 // CHECK-NEXT:          },
-// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "valueCategory": "prvalue",
 // CHECK-NEXT:          "castKind": "LValueToRValue",
 // CHECK-NEXT:          "inner": [
 // CHECK-NEXT:           {
@@ -5808,7 +5797,7 @@ void TestDependentGenericSelectionExpr(Ty T) {
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "qualType": "int"
 // CHECK-NEXT:            },
-// CHECK-NEXT:            "valueCategory": "rvalue",
+// CHECK-NEXT:            "valueCategory": "prvalue",
 // CHECK-NEXT:            "castKind": "LValueToRValue",
 // CHECK-NEXT:            "inner": [
 // CHECK-NEXT:             {
@@ -5853,7 +5842,7 @@ void TestDependentGenericSelectionExpr(Ty T) {
 // CHECK-NEXT:                 "desugaredQualType": "int *",
 // CHECK-NEXT:                 "qualType": "int *"
 // CHECK-NEXT:                },
-// CHECK-NEXT:                "valueCategory": "rvalue",
+// CHECK-NEXT:                "valueCategory": "prvalue",
 // CHECK-NEXT:                "castKind": "LValueToRValue",
 // CHECK-NEXT:                "inner": [
 // CHECK-NEXT:                 {
@@ -6119,7 +6108,7 @@ void TestDependentGenericSelectionExpr(Ty T) {
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "qualType": "int *"
 // CHECK-NEXT:            },
-// CHECK-NEXT:            "valueCategory": "rvalue",
+// CHECK-NEXT:            "valueCategory": "prvalue",
 // CHECK-NEXT:            "castKind": "ArrayToPointerDecay",
 // CHECK-NEXT:            "inner": [
 // CHECK-NEXT:             {
@@ -6220,7 +6209,7 @@ void TestDependentGenericSelectionExpr(Ty T) {
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "qualType": "int *"
 // CHECK-NEXT:            },
-// CHECK-NEXT:            "valueCategory": "rvalue",
+// CHECK-NEXT:            "valueCategory": "prvalue",
 // CHECK-NEXT:            "opcode": "+",
 // CHECK-NEXT:            "inner": [
 // CHECK-NEXT:             {
@@ -6241,7 +6230,7 @@ void TestDependentGenericSelectionExpr(Ty T) {
 // CHECK-NEXT:              "type": {
 // CHECK-NEXT:               "qualType": "int *"
 // CHECK-NEXT:              },
-// CHECK-NEXT:              "valueCategory": "rvalue",
+// CHECK-NEXT:              "valueCategory": "prvalue",
 // CHECK-NEXT:              "castKind": "ArrayToPointerDecay",
 // CHECK-NEXT:              "inner": [
 // CHECK-NEXT:               {
@@ -6292,7 +6281,7 @@ void TestDependentGenericSelectionExpr(Ty T) {
 // CHECK-NEXT:              "type": {
 // CHECK-NEXT:               "qualType": "long"
 // CHECK-NEXT:              },
-// CHECK-NEXT:              "valueCategory": "rvalue",
+// CHECK-NEXT:              "valueCategory": "prvalue",
 // CHECK-NEXT:              "value": "10"
 // CHECK-NEXT:             }
 // CHECK-NEXT:            ]
@@ -6319,7 +6308,7 @@ void TestDependentGenericSelectionExpr(Ty T) {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "bool"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "opcode": "!=",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
@@ -6341,7 +6330,7 @@ void TestDependentGenericSelectionExpr(Ty T) {
 // CHECK-NEXT:           "desugaredQualType": "int *",
 // CHECK-NEXT:           "qualType": "int *"
 // CHECK-NEXT:          },
-// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "valueCategory": "prvalue",
 // CHECK-NEXT:          "castKind": "LValueToRValue",
 // CHECK-NEXT:          "inner": [
 // CHECK-NEXT:           {
@@ -6395,7 +6384,7 @@ void TestDependentGenericSelectionExpr(Ty T) {
 // CHECK-NEXT:           "desugaredQualType": "int *",
 // CHECK-NEXT:           "qualType": "int *"
 // CHECK-NEXT:          },
-// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "valueCategory": "prvalue",
 // CHECK-NEXT:          "castKind": "LValueToRValue",
 // CHECK-NEXT:          "inner": [
 // CHECK-NEXT:           {
@@ -6548,7 +6537,7 @@ void TestDependentGenericSelectionExpr(Ty T) {
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "qualType": "int"
 // CHECK-NEXT:            },
-// CHECK-NEXT:            "valueCategory": "rvalue",
+// CHECK-NEXT:            "valueCategory": "prvalue",
 // CHECK-NEXT:            "castKind": "LValueToRValue",
 // CHECK-NEXT:            "inner": [
 // CHECK-NEXT:             {
@@ -6593,7 +6582,7 @@ void TestDependentGenericSelectionExpr(Ty T) {
 // CHECK-NEXT:                 "desugaredQualType": "int *",
 // CHECK-NEXT:                 "qualType": "int *"
 // CHECK-NEXT:                },
-// CHECK-NEXT:                "valueCategory": "rvalue",
+// CHECK-NEXT:                "valueCategory": "prvalue",
 // CHECK-NEXT:                "castKind": "LValueToRValue",
 // CHECK-NEXT:                "inner": [
 // CHECK-NEXT:                 {
@@ -6660,7 +6649,6 @@ void TestDependentGenericSelectionExpr(Ty T) {
 // CHECK-NEXT:  ]
 // CHECK-NEXT: }
 
-
 // CHECK:  "kind": "FunctionTemplateDecl",
 // CHECK-NEXT:  "loc": {
 // CHECK-NEXT:   "offset": 1737,
@@ -6802,7 +6790,7 @@ void TestDependentGenericSelectionExpr(Ty T) {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "<dependent type>"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "resultDependent": true,
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
@@ -6878,7 +6866,7 @@ void TestDependentGenericSelectionExpr(Ty T) {
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "qualType": "int"
 // CHECK-NEXT:            },
-// CHECK-NEXT:            "valueCategory": "rvalue",
+// CHECK-NEXT:            "valueCategory": "prvalue",
 // CHECK-NEXT:            "value": "1"
 // CHECK-NEXT:           }
 // CHECK-NEXT:          ]
@@ -6904,7 +6892,7 @@ void TestDependentGenericSelectionExpr(Ty T) {
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "qualType": "int"
 // CHECK-NEXT:            },
-// CHECK-NEXT:            "valueCategory": "rvalue",
+// CHECK-NEXT:            "valueCategory": "prvalue",
 // CHECK-NEXT:            "value": "0"
 // CHECK-NEXT:           }
 // CHECK-NEXT:          ]
@@ -6930,7 +6918,7 @@ void TestDependentGenericSelectionExpr(Ty T) {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "<dependent type>"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "resultDependent": true,
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
@@ -6999,7 +6987,7 @@ void TestDependentGenericSelectionExpr(Ty T) {
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "qualType": "int"
 // CHECK-NEXT:            },
-// CHECK-NEXT:            "valueCategory": "rvalue",
+// CHECK-NEXT:            "valueCategory": "prvalue",
 // CHECK-NEXT:            "value": "0"
 // CHECK-NEXT:           }
 // CHECK-NEXT:          ]

diff  --git a/clang/test/AST/ast-dump-stmt-json.m b/clang/test/AST/ast-dump-stmt-json.m
index 6c83dcbfc238e..d35faacc6e141 100644
--- a/clang/test/AST/ast-dump-stmt-json.m
+++ b/clang/test/AST/ast-dump-stmt-json.m
@@ -21,7 +21,6 @@ void TestObjCAtCatchStmt() {
 
 // NOTE: CHECK lines have been autogenerated by gen_ast_dump_json_test.py
 
-
 // CHECK:  "kind": "FunctionDecl",
 // CHECK-NEXT:  "loc": {
 // CHECK-NEXT:   "offset": 143,
@@ -113,7 +112,7 @@ void TestObjCAtCatchStmt() {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "void (^)(void)"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "cleanupsHaveSideEffects": true,
 // CHECK-NEXT:      "cleanups": [
 // CHECK-NEXT:       {
@@ -140,7 +139,7 @@ void TestObjCAtCatchStmt() {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "void (^)(void)"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
 // CHECK-NEXT:          "id": "0x{{.*}}",
@@ -208,7 +207,7 @@ void TestObjCAtCatchStmt() {
 // CHECK-NEXT:              "type": {
 // CHECK-NEXT:               "qualType": "int"
 // CHECK-NEXT:              },
-// CHECK-NEXT:              "valueCategory": "rvalue",
+// CHECK-NEXT:              "valueCategory": "prvalue",
 // CHECK-NEXT:              "castKind": "LValueToRValue",
 // CHECK-NEXT:              "inner": [
 // CHECK-NEXT:               {
@@ -254,7 +253,6 @@ void TestObjCAtCatchStmt() {
 // CHECK-NEXT:  ]
 // CHECK-NEXT: }
 
-
 // CHECK:  "kind": "FunctionDecl",
 // CHECK-NEXT:  "loc": {
 // CHECK-NEXT:   "offset": 185,
@@ -346,7 +344,7 @@ void TestObjCAtCatchStmt() {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "void (^)(void)"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "cleanupsHaveSideEffects": true,
 // CHECK-NEXT:      "cleanups": [
 // CHECK-NEXT:       {
@@ -373,7 +371,7 @@ void TestObjCAtCatchStmt() {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "void (^)(void)"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
 // CHECK-NEXT:          "id": "0x{{.*}}",
@@ -441,7 +439,7 @@ void TestObjCAtCatchStmt() {
 // CHECK-NEXT:              "type": {
 // CHECK-NEXT:               "qualType": "int"
 // CHECK-NEXT:              },
-// CHECK-NEXT:              "valueCategory": "rvalue",
+// CHECK-NEXT:              "valueCategory": "prvalue",
 // CHECK-NEXT:              "castKind": "LValueToRValue",
 // CHECK-NEXT:              "inner": [
 // CHECK-NEXT:               {
@@ -487,7 +485,6 @@ void TestObjCAtCatchStmt() {
 // CHECK-NEXT:  ]
 // CHECK-NEXT: }
 
-
 // CHECK:  "kind": "FunctionDecl",
 // CHECK-NEXT:  "loc": {
 // CHECK-NEXT:   "offset": 252,

diff  --git a/clang/test/AST/ast-dump-template-decls-json.cpp b/clang/test/AST/ast-dump-template-decls-json.cpp
index 81b308e4fb747..388acfa42a55b 100644
--- a/clang/test/AST/ast-dump-template-decls-json.cpp
+++ b/clang/test/AST/ast-dump-template-decls-json.cpp
@@ -60,7 +60,6 @@ void i();
 
 // NOTE: CHECK lines have been autogenerated by gen_ast_dump_json_test.py
 
-
 // CHECK:  "kind": "TranslationUnitDecl",
 // CHECK-NEXT:  "loc": {},
 // CHECK-NEXT:  "range": {
@@ -1063,7 +1062,7 @@ void i();
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "qualType": "int"
 // CHECK-NEXT:          },
-// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "valueCategory": "prvalue",
 // CHECK-NEXT:          "referencedDecl": {
 // CHECK-NEXT:           "id": "0x{{.*}}",
 // CHECK-NEXT:           "kind": "NonTypeTemplateParmDecl",

diff  --git a/clang/test/AST/ast-dump-temporaries-json.cpp b/clang/test/AST/ast-dump-temporaries-json.cpp
index 520d6f9e2b0cd..e0d9768a2cb10 100644
--- a/clang/test/AST/ast-dump-temporaries-json.cpp
+++ b/clang/test/AST/ast-dump-temporaries-json.cpp
@@ -21,7 +21,6 @@ void MaterializeTemp() {
 // NOTE: CHECK lines have been autogenerated by gen_ast_dump_json_test.py
 // using --filters=ExprWithCleanups
 
-
 // CHECK:  "kind": "ExprWithCleanups",
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
@@ -89,7 +88,7 @@ void MaterializeTemp() {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "const S"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "castKind": "NoOp",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
@@ -110,7 +109,7 @@ void MaterializeTemp() {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "S"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "temp": "0x{{.*}}",
 // CHECK-NEXT:        "dtor": {
 // CHECK-NEXT:         "id": "0x{{.*}}",
@@ -139,7 +138,7 @@ void MaterializeTemp() {
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "qualType": "S"
 // CHECK-NEXT:          },
-// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "valueCategory": "prvalue",
 // CHECK-NEXT:          "ctorType": {
 // CHECK-NEXT:           "qualType": "void ()"
 // CHECK-NEXT:          },
@@ -155,7 +154,6 @@ void MaterializeTemp() {
 // CHECK-NEXT:  ]
 // CHECK-NEXT: }
 
-
 // CHECK:  "kind": "ExprWithCleanups",
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
@@ -222,7 +220,7 @@ void MaterializeTemp() {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "const int"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "castKind": "FloatingToIntegral",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
@@ -243,7 +241,7 @@ void MaterializeTemp() {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "double"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "value": "1"
 // CHECK-NEXT:       }
 // CHECK-NEXT:      ]
@@ -253,7 +251,6 @@ void MaterializeTemp() {
 // CHECK-NEXT:  ]
 // CHECK-NEXT: }
 
-
 // CHECK:  "kind": "ExprWithCleanups",
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
@@ -271,7 +268,7 @@ void MaterializeTemp() {
 // CHECK-NEXT:  "type": {
 // CHECK-NEXT:   "qualType": "void"
 // CHECK-NEXT:  },
-// CHECK-NEXT:  "valueCategory": "rvalue",
+// CHECK-NEXT:  "valueCategory": "prvalue",
 // CHECK-NEXT:  "inner": [
 // CHECK-NEXT:   {
 // CHECK-NEXT:    "id": "0x{{.*}}",
@@ -291,7 +288,7 @@ void MaterializeTemp() {
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "void"
 // CHECK-NEXT:    },
-// CHECK-NEXT:    "valueCategory": "rvalue",
+// CHECK-NEXT:    "valueCategory": "prvalue",
 // CHECK-NEXT:    "inner": [
 // CHECK-NEXT:     {
 // CHECK-NEXT:      "id": "0x{{.*}}",
@@ -311,7 +308,7 @@ void MaterializeTemp() {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "void (*)(const int &)"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "castKind": "FunctionToPointerDecay",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
@@ -384,7 +381,7 @@ void MaterializeTemp() {
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "const int"
 // CHECK-NEXT:        },
-// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "valueCategory": "prvalue",
 // CHECK-NEXT:        "castKind": "FloatingToIntegral",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
@@ -405,7 +402,7 @@ void MaterializeTemp() {
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "qualType": "float"
 // CHECK-NEXT:          },
-// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "valueCategory": "prvalue",
 // CHECK-NEXT:          "castKind": "LValueToRValue",
 // CHECK-NEXT:          "inner": [
 // CHECK-NEXT:           {

diff  --git a/clang/test/AST/ast-dump-types-errors-json.cpp b/clang/test/AST/ast-dump-types-errors-json.cpp
index 5504615630b47..89535fcb70f43 100644
--- a/clang/test/AST/ast-dump-types-errors-json.cpp
+++ b/clang/test/AST/ast-dump-types-errors-json.cpp
@@ -2,7 +2,6 @@
 
 using TestContainsErrors = int[sizeof(undef())];
 
-
 // CHECK:  "kind": "TypeAliasDecl",
 // CHECK-NEXT:  "loc": {
 // CHECK-NEXT:   "offset": 130,
@@ -63,7 +62,7 @@ using TestContainsErrors = int[sizeof(undef())];
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "unsigned long"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "name": "sizeof",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {

diff  --git a/clang/test/AST/multistep-explicit-cast-json.c b/clang/test/AST/multistep-explicit-cast-json.c
index 8059e74fd345f..54ffbabbfb621 100644
--- a/clang/test/AST/multistep-explicit-cast-json.c
+++ b/clang/test/AST/multistep-explicit-cast-json.c
@@ -37,7 +37,6 @@ signed char cstylecast_3(signed int x) {
 // NOTE: CHECK lines have been autogenerated by gen_ast_dump_json_test.py
 // using --filters=ImplicitCastExpr,CStyleCastExpr
 
-
 // CHECK:  "kind": "ImplicitCastExpr",
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
@@ -54,7 +53,7 @@ signed char cstylecast_3(signed int x) {
 // CHECK-NEXT:  "type": {
 // CHECK-NEXT:   "qualType": "unsigned char"
 // CHECK-NEXT:  },
-// CHECK-NEXT:  "valueCategory": "rvalue",
+// CHECK-NEXT:  "valueCategory": "prvalue",
 // CHECK-NEXT:  "castKind": "IntegralCast",
 // CHECK-NEXT:  "inner": [
 // CHECK-NEXT:   {
@@ -75,7 +74,7 @@ signed char cstylecast_3(signed int x) {
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "unsigned int"
 // CHECK-NEXT:    },
-// CHECK-NEXT:    "valueCategory": "rvalue",
+// CHECK-NEXT:    "valueCategory": "prvalue",
 // CHECK-NEXT:    "castKind": "LValueToRValue",
 // CHECK-NEXT:    "inner": [
 // CHECK-NEXT:     {
@@ -111,7 +110,6 @@ signed char cstylecast_3(signed int x) {
 // CHECK-NEXT:  ]
 // CHECK-NEXT: }
 
-
 // CHECK:  "kind": "ImplicitCastExpr",
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
@@ -128,7 +126,7 @@ signed char cstylecast_3(signed int x) {
 // CHECK-NEXT:  "type": {
 // CHECK-NEXT:   "qualType": "signed char"
 // CHECK-NEXT:  },
-// CHECK-NEXT:  "valueCategory": "rvalue",
+// CHECK-NEXT:  "valueCategory": "prvalue",
 // CHECK-NEXT:  "castKind": "IntegralCast",
 // CHECK-NEXT:  "inner": [
 // CHECK-NEXT:   {
@@ -149,7 +147,7 @@ signed char cstylecast_3(signed int x) {
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "unsigned int"
 // CHECK-NEXT:    },
-// CHECK-NEXT:    "valueCategory": "rvalue",
+// CHECK-NEXT:    "valueCategory": "prvalue",
 // CHECK-NEXT:    "castKind": "LValueToRValue",
 // CHECK-NEXT:    "inner": [
 // CHECK-NEXT:     {
@@ -185,7 +183,6 @@ signed char cstylecast_3(signed int x) {
 // CHECK-NEXT:  ]
 // CHECK-NEXT: }
 
-
 // CHECK:  "kind": "ImplicitCastExpr",
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
@@ -202,7 +199,7 @@ signed char cstylecast_3(signed int x) {
 // CHECK-NEXT:  "type": {
 // CHECK-NEXT:   "qualType": "unsigned char"
 // CHECK-NEXT:  },
-// CHECK-NEXT:  "valueCategory": "rvalue",
+// CHECK-NEXT:  "valueCategory": "prvalue",
 // CHECK-NEXT:  "castKind": "IntegralCast",
 // CHECK-NEXT:  "inner": [
 // CHECK-NEXT:   {
@@ -223,7 +220,7 @@ signed char cstylecast_3(signed int x) {
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "int"
 // CHECK-NEXT:    },
-// CHECK-NEXT:    "valueCategory": "rvalue",
+// CHECK-NEXT:    "valueCategory": "prvalue",
 // CHECK-NEXT:    "castKind": "LValueToRValue",
 // CHECK-NEXT:    "inner": [
 // CHECK-NEXT:     {
@@ -259,7 +256,6 @@ signed char cstylecast_3(signed int x) {
 // CHECK-NEXT:  ]
 // CHECK-NEXT: }
 
-
 // CHECK:  "kind": "ImplicitCastExpr",
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
@@ -276,7 +272,7 @@ signed char cstylecast_3(signed int x) {
 // CHECK-NEXT:  "type": {
 // CHECK-NEXT:   "qualType": "signed char"
 // CHECK-NEXT:  },
-// CHECK-NEXT:  "valueCategory": "rvalue",
+// CHECK-NEXT:  "valueCategory": "prvalue",
 // CHECK-NEXT:  "castKind": "IntegralCast",
 // CHECK-NEXT:  "inner": [
 // CHECK-NEXT:   {
@@ -297,7 +293,7 @@ signed char cstylecast_3(signed int x) {
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "int"
 // CHECK-NEXT:    },
-// CHECK-NEXT:    "valueCategory": "rvalue",
+// CHECK-NEXT:    "valueCategory": "prvalue",
 // CHECK-NEXT:    "castKind": "LValueToRValue",
 // CHECK-NEXT:    "inner": [
 // CHECK-NEXT:     {
@@ -333,7 +329,6 @@ signed char cstylecast_3(signed int x) {
 // CHECK-NEXT:  ]
 // CHECK-NEXT: }
 
-
 // CHECK:  "kind": "CStyleCastExpr",
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
@@ -350,7 +345,7 @@ signed char cstylecast_3(signed int x) {
 // CHECK-NEXT:  "type": {
 // CHECK-NEXT:   "qualType": "unsigned char"
 // CHECK-NEXT:  },
-// CHECK-NEXT:  "valueCategory": "rvalue",
+// CHECK-NEXT:  "valueCategory": "prvalue",
 // CHECK-NEXT:  "castKind": "IntegralCast",
 // CHECK-NEXT:  "inner": [
 // CHECK-NEXT:   {
@@ -371,7 +366,7 @@ signed char cstylecast_3(signed int x) {
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "unsigned int"
 // CHECK-NEXT:    },
-// CHECK-NEXT:    "valueCategory": "rvalue",
+// CHECK-NEXT:    "valueCategory": "prvalue",
 // CHECK-NEXT:    "castKind": "LValueToRValue",
 // CHECK-NEXT:    "isPartOfExplicitCast": true,
 // CHECK-NEXT:    "inner": [
@@ -408,7 +403,6 @@ signed char cstylecast_3(signed int x) {
 // CHECK-NEXT:  ]
 // CHECK-NEXT: }
 
-
 // CHECK:  "kind": "CStyleCastExpr",
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
@@ -425,7 +419,7 @@ signed char cstylecast_3(signed int x) {
 // CHECK-NEXT:  "type": {
 // CHECK-NEXT:   "qualType": "signed char"
 // CHECK-NEXT:  },
-// CHECK-NEXT:  "valueCategory": "rvalue",
+// CHECK-NEXT:  "valueCategory": "prvalue",
 // CHECK-NEXT:  "castKind": "IntegralCast",
 // CHECK-NEXT:  "inner": [
 // CHECK-NEXT:   {
@@ -446,7 +440,7 @@ signed char cstylecast_3(signed int x) {
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "unsigned int"
 // CHECK-NEXT:    },
-// CHECK-NEXT:    "valueCategory": "rvalue",
+// CHECK-NEXT:    "valueCategory": "prvalue",
 // CHECK-NEXT:    "castKind": "LValueToRValue",
 // CHECK-NEXT:    "isPartOfExplicitCast": true,
 // CHECK-NEXT:    "inner": [
@@ -483,7 +477,6 @@ signed char cstylecast_3(signed int x) {
 // CHECK-NEXT:  ]
 // CHECK-NEXT: }
 
-
 // CHECK:  "kind": "CStyleCastExpr",
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
@@ -500,7 +493,7 @@ signed char cstylecast_3(signed int x) {
 // CHECK-NEXT:  "type": {
 // CHECK-NEXT:   "qualType": "unsigned char"
 // CHECK-NEXT:  },
-// CHECK-NEXT:  "valueCategory": "rvalue",
+// CHECK-NEXT:  "valueCategory": "prvalue",
 // CHECK-NEXT:  "castKind": "IntegralCast",
 // CHECK-NEXT:  "inner": [
 // CHECK-NEXT:   {
@@ -521,7 +514,7 @@ signed char cstylecast_3(signed int x) {
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "int"
 // CHECK-NEXT:    },
-// CHECK-NEXT:    "valueCategory": "rvalue",
+// CHECK-NEXT:    "valueCategory": "prvalue",
 // CHECK-NEXT:    "castKind": "LValueToRValue",
 // CHECK-NEXT:    "isPartOfExplicitCast": true,
 // CHECK-NEXT:    "inner": [
@@ -558,7 +551,6 @@ signed char cstylecast_3(signed int x) {
 // CHECK-NEXT:  ]
 // CHECK-NEXT: }
 
-
 // CHECK:  "kind": "CStyleCastExpr",
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
@@ -575,7 +567,7 @@ signed char cstylecast_3(signed int x) {
 // CHECK-NEXT:  "type": {
 // CHECK-NEXT:   "qualType": "signed char"
 // CHECK-NEXT:  },
-// CHECK-NEXT:  "valueCategory": "rvalue",
+// CHECK-NEXT:  "valueCategory": "prvalue",
 // CHECK-NEXT:  "castKind": "IntegralCast",
 // CHECK-NEXT:  "inner": [
 // CHECK-NEXT:   {
@@ -596,7 +588,7 @@ signed char cstylecast_3(signed int x) {
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "int"
 // CHECK-NEXT:    },
-// CHECK-NEXT:    "valueCategory": "rvalue",
+// CHECK-NEXT:    "valueCategory": "prvalue",
 // CHECK-NEXT:    "castKind": "LValueToRValue",
 // CHECK-NEXT:    "isPartOfExplicitCast": true,
 // CHECK-NEXT:    "inner": [

diff  --git a/clang/test/AST/multistep-explicit-cast-json.cpp b/clang/test/AST/multistep-explicit-cast-json.cpp
index 47cc8dfc8a2c3..3e0de591f9296 100644
--- a/clang/test/AST/multistep-explicit-cast-json.cpp
+++ b/clang/test/AST/multistep-explicit-cast-json.cpp
@@ -78,7 +78,6 @@ SignedChar cxxfunctionalcast_3(SignedInt x) {
 // NOTE: CHECK lines have been autogenerated by gen_ast_dump_json_test.py
 // using --filters=ImplicitCastExpr,CStyleCastExpr,CXXStaticCastExpr,CXXFunctionalCastExpr
 
-
 // CHECK:  "kind": "ImplicitCastExpr",
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
@@ -95,7 +94,7 @@ SignedChar cxxfunctionalcast_3(SignedInt x) {
 // CHECK-NEXT:  "type": {
 // CHECK-NEXT:   "qualType": "unsigned char"
 // CHECK-NEXT:  },
-// CHECK-NEXT:  "valueCategory": "rvalue",
+// CHECK-NEXT:  "valueCategory": "prvalue",
 // CHECK-NEXT:  "castKind": "IntegralCast",
 // CHECK-NEXT:  "inner": [
 // CHECK-NEXT:   {
@@ -116,7 +115,7 @@ SignedChar cxxfunctionalcast_3(SignedInt x) {
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "unsigned int"
 // CHECK-NEXT:    },
-// CHECK-NEXT:    "valueCategory": "rvalue",
+// CHECK-NEXT:    "valueCategory": "prvalue",
 // CHECK-NEXT:    "castKind": "LValueToRValue",
 // CHECK-NEXT:    "inner": [
 // CHECK-NEXT:     {
@@ -152,7 +151,6 @@ SignedChar cxxfunctionalcast_3(SignedInt x) {
 // CHECK-NEXT:  ]
 // CHECK-NEXT: }
 
-
 // CHECK:  "kind": "ImplicitCastExpr",
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
@@ -169,7 +167,7 @@ SignedChar cxxfunctionalcast_3(SignedInt x) {
 // CHECK-NEXT:  "type": {
 // CHECK-NEXT:   "qualType": "signed char"
 // CHECK-NEXT:  },
-// CHECK-NEXT:  "valueCategory": "rvalue",
+// CHECK-NEXT:  "valueCategory": "prvalue",
 // CHECK-NEXT:  "castKind": "IntegralCast",
 // CHECK-NEXT:  "inner": [
 // CHECK-NEXT:   {
@@ -190,7 +188,7 @@ SignedChar cxxfunctionalcast_3(SignedInt x) {
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "unsigned int"
 // CHECK-NEXT:    },
-// CHECK-NEXT:    "valueCategory": "rvalue",
+// CHECK-NEXT:    "valueCategory": "prvalue",
 // CHECK-NEXT:    "castKind": "LValueToRValue",
 // CHECK-NEXT:    "inner": [
 // CHECK-NEXT:     {
@@ -226,7 +224,6 @@ SignedChar cxxfunctionalcast_3(SignedInt x) {
 // CHECK-NEXT:  ]
 // CHECK-NEXT: }
 
-
 // CHECK:  "kind": "ImplicitCastExpr",
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
@@ -243,7 +240,7 @@ SignedChar cxxfunctionalcast_3(SignedInt x) {
 // CHECK-NEXT:  "type": {
 // CHECK-NEXT:   "qualType": "unsigned char"
 // CHECK-NEXT:  },
-// CHECK-NEXT:  "valueCategory": "rvalue",
+// CHECK-NEXT:  "valueCategory": "prvalue",
 // CHECK-NEXT:  "castKind": "IntegralCast",
 // CHECK-NEXT:  "inner": [
 // CHECK-NEXT:   {
@@ -264,7 +261,7 @@ SignedChar cxxfunctionalcast_3(SignedInt x) {
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "int"
 // CHECK-NEXT:    },
-// CHECK-NEXT:    "valueCategory": "rvalue",
+// CHECK-NEXT:    "valueCategory": "prvalue",
 // CHECK-NEXT:    "castKind": "LValueToRValue",
 // CHECK-NEXT:    "inner": [
 // CHECK-NEXT:     {
@@ -300,7 +297,6 @@ SignedChar cxxfunctionalcast_3(SignedInt x) {
 // CHECK-NEXT:  ]
 // CHECK-NEXT: }
 
-
 // CHECK:  "kind": "ImplicitCastExpr",
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
@@ -317,7 +313,7 @@ SignedChar cxxfunctionalcast_3(SignedInt x) {
 // CHECK-NEXT:  "type": {
 // CHECK-NEXT:   "qualType": "signed char"
 // CHECK-NEXT:  },
-// CHECK-NEXT:  "valueCategory": "rvalue",
+// CHECK-NEXT:  "valueCategory": "prvalue",
 // CHECK-NEXT:  "castKind": "IntegralCast",
 // CHECK-NEXT:  "inner": [
 // CHECK-NEXT:   {
@@ -338,7 +334,7 @@ SignedChar cxxfunctionalcast_3(SignedInt x) {
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "int"
 // CHECK-NEXT:    },
-// CHECK-NEXT:    "valueCategory": "rvalue",
+// CHECK-NEXT:    "valueCategory": "prvalue",
 // CHECK-NEXT:    "castKind": "LValueToRValue",
 // CHECK-NEXT:    "inner": [
 // CHECK-NEXT:     {
@@ -374,7 +370,6 @@ SignedChar cxxfunctionalcast_3(SignedInt x) {
 // CHECK-NEXT:  ]
 // CHECK-NEXT: }
 
-
 // CHECK:  "kind": "CStyleCastExpr",
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
@@ -391,7 +386,7 @@ SignedChar cxxfunctionalcast_3(SignedInt x) {
 // CHECK-NEXT:  "type": {
 // CHECK-NEXT:   "qualType": "unsigned char"
 // CHECK-NEXT:  },
-// CHECK-NEXT:  "valueCategory": "rvalue",
+// CHECK-NEXT:  "valueCategory": "prvalue",
 // CHECK-NEXT:  "castKind": "NoOp",
 // CHECK-NEXT:  "inner": [
 // CHECK-NEXT:   {
@@ -412,7 +407,7 @@ SignedChar cxxfunctionalcast_3(SignedInt x) {
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "unsigned char"
 // CHECK-NEXT:    },
-// CHECK-NEXT:    "valueCategory": "rvalue",
+// CHECK-NEXT:    "valueCategory": "prvalue",
 // CHECK-NEXT:    "castKind": "IntegralCast",
 // CHECK-NEXT:    "isPartOfExplicitCast": true,
 // CHECK-NEXT:    "inner": [
@@ -434,7 +429,7 @@ SignedChar cxxfunctionalcast_3(SignedInt x) {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "unsigned int"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "castKind": "LValueToRValue",
 // CHECK-NEXT:      "isPartOfExplicitCast": true,
 // CHECK-NEXT:      "inner": [
@@ -473,7 +468,6 @@ SignedChar cxxfunctionalcast_3(SignedInt x) {
 // CHECK-NEXT:  ]
 // CHECK-NEXT: }
 
-
 // CHECK:  "kind": "CStyleCastExpr",
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
@@ -490,7 +484,7 @@ SignedChar cxxfunctionalcast_3(SignedInt x) {
 // CHECK-NEXT:  "type": {
 // CHECK-NEXT:   "qualType": "signed char"
 // CHECK-NEXT:  },
-// CHECK-NEXT:  "valueCategory": "rvalue",
+// CHECK-NEXT:  "valueCategory": "prvalue",
 // CHECK-NEXT:  "castKind": "NoOp",
 // CHECK-NEXT:  "inner": [
 // CHECK-NEXT:   {
@@ -511,7 +505,7 @@ SignedChar cxxfunctionalcast_3(SignedInt x) {
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "signed char"
 // CHECK-NEXT:    },
-// CHECK-NEXT:    "valueCategory": "rvalue",
+// CHECK-NEXT:    "valueCategory": "prvalue",
 // CHECK-NEXT:    "castKind": "IntegralCast",
 // CHECK-NEXT:    "isPartOfExplicitCast": true,
 // CHECK-NEXT:    "inner": [
@@ -533,7 +527,7 @@ SignedChar cxxfunctionalcast_3(SignedInt x) {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "unsigned int"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "castKind": "LValueToRValue",
 // CHECK-NEXT:      "isPartOfExplicitCast": true,
 // CHECK-NEXT:      "inner": [
@@ -572,7 +566,6 @@ SignedChar cxxfunctionalcast_3(SignedInt x) {
 // CHECK-NEXT:  ]
 // CHECK-NEXT: }
 
-
 // CHECK:  "kind": "CStyleCastExpr",
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
@@ -589,7 +582,7 @@ SignedChar cxxfunctionalcast_3(SignedInt x) {
 // CHECK-NEXT:  "type": {
 // CHECK-NEXT:   "qualType": "unsigned char"
 // CHECK-NEXT:  },
-// CHECK-NEXT:  "valueCategory": "rvalue",
+// CHECK-NEXT:  "valueCategory": "prvalue",
 // CHECK-NEXT:  "castKind": "NoOp",
 // CHECK-NEXT:  "inner": [
 // CHECK-NEXT:   {
@@ -610,7 +603,7 @@ SignedChar cxxfunctionalcast_3(SignedInt x) {
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "unsigned char"
 // CHECK-NEXT:    },
-// CHECK-NEXT:    "valueCategory": "rvalue",
+// CHECK-NEXT:    "valueCategory": "prvalue",
 // CHECK-NEXT:    "castKind": "IntegralCast",
 // CHECK-NEXT:    "isPartOfExplicitCast": true,
 // CHECK-NEXT:    "inner": [
@@ -632,7 +625,7 @@ SignedChar cxxfunctionalcast_3(SignedInt x) {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "int"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "castKind": "LValueToRValue",
 // CHECK-NEXT:      "isPartOfExplicitCast": true,
 // CHECK-NEXT:      "inner": [
@@ -671,7 +664,6 @@ SignedChar cxxfunctionalcast_3(SignedInt x) {
 // CHECK-NEXT:  ]
 // CHECK-NEXT: }
 
-
 // CHECK:  "kind": "CStyleCastExpr",
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
@@ -688,7 +680,7 @@ SignedChar cxxfunctionalcast_3(SignedInt x) {
 // CHECK-NEXT:  "type": {
 // CHECK-NEXT:   "qualType": "signed char"
 // CHECK-NEXT:  },
-// CHECK-NEXT:  "valueCategory": "rvalue",
+// CHECK-NEXT:  "valueCategory": "prvalue",
 // CHECK-NEXT:  "castKind": "NoOp",
 // CHECK-NEXT:  "inner": [
 // CHECK-NEXT:   {
@@ -709,7 +701,7 @@ SignedChar cxxfunctionalcast_3(SignedInt x) {
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "signed char"
 // CHECK-NEXT:    },
-// CHECK-NEXT:    "valueCategory": "rvalue",
+// CHECK-NEXT:    "valueCategory": "prvalue",
 // CHECK-NEXT:    "castKind": "IntegralCast",
 // CHECK-NEXT:    "isPartOfExplicitCast": true,
 // CHECK-NEXT:    "inner": [
@@ -731,7 +723,7 @@ SignedChar cxxfunctionalcast_3(SignedInt x) {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "int"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "castKind": "LValueToRValue",
 // CHECK-NEXT:      "isPartOfExplicitCast": true,
 // CHECK-NEXT:      "inner": [
@@ -770,7 +762,6 @@ SignedChar cxxfunctionalcast_3(SignedInt x) {
 // CHECK-NEXT:  ]
 // CHECK-NEXT: }
 
-
 // CHECK:  "kind": "CXXStaticCastExpr",
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
@@ -787,7 +778,7 @@ SignedChar cxxfunctionalcast_3(SignedInt x) {
 // CHECK-NEXT:  "type": {
 // CHECK-NEXT:   "qualType": "unsigned char"
 // CHECK-NEXT:  },
-// CHECK-NEXT:  "valueCategory": "rvalue",
+// CHECK-NEXT:  "valueCategory": "prvalue",
 // CHECK-NEXT:  "castKind": "NoOp",
 // CHECK-NEXT:  "inner": [
 // CHECK-NEXT:   {
@@ -808,7 +799,7 @@ SignedChar cxxfunctionalcast_3(SignedInt x) {
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "unsigned char"
 // CHECK-NEXT:    },
-// CHECK-NEXT:    "valueCategory": "rvalue",
+// CHECK-NEXT:    "valueCategory": "prvalue",
 // CHECK-NEXT:    "castKind": "IntegralCast",
 // CHECK-NEXT:    "isPartOfExplicitCast": true,
 // CHECK-NEXT:    "inner": [
@@ -830,7 +821,7 @@ SignedChar cxxfunctionalcast_3(SignedInt x) {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "unsigned int"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "castKind": "LValueToRValue",
 // CHECK-NEXT:      "isPartOfExplicitCast": true,
 // CHECK-NEXT:      "inner": [
@@ -869,7 +860,6 @@ SignedChar cxxfunctionalcast_3(SignedInt x) {
 // CHECK-NEXT:  ]
 // CHECK-NEXT: }
 
-
 // CHECK:  "kind": "CXXStaticCastExpr",
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
@@ -886,7 +876,7 @@ SignedChar cxxfunctionalcast_3(SignedInt x) {
 // CHECK-NEXT:  "type": {
 // CHECK-NEXT:   "qualType": "signed char"
 // CHECK-NEXT:  },
-// CHECK-NEXT:  "valueCategory": "rvalue",
+// CHECK-NEXT:  "valueCategory": "prvalue",
 // CHECK-NEXT:  "castKind": "NoOp",
 // CHECK-NEXT:  "inner": [
 // CHECK-NEXT:   {
@@ -907,7 +897,7 @@ SignedChar cxxfunctionalcast_3(SignedInt x) {
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "signed char"
 // CHECK-NEXT:    },
-// CHECK-NEXT:    "valueCategory": "rvalue",
+// CHECK-NEXT:    "valueCategory": "prvalue",
 // CHECK-NEXT:    "castKind": "IntegralCast",
 // CHECK-NEXT:    "isPartOfExplicitCast": true,
 // CHECK-NEXT:    "inner": [
@@ -929,7 +919,7 @@ SignedChar cxxfunctionalcast_3(SignedInt x) {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "unsigned int"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "castKind": "LValueToRValue",
 // CHECK-NEXT:      "isPartOfExplicitCast": true,
 // CHECK-NEXT:      "inner": [
@@ -968,7 +958,6 @@ SignedChar cxxfunctionalcast_3(SignedInt x) {
 // CHECK-NEXT:  ]
 // CHECK-NEXT: }
 
-
 // CHECK:  "kind": "CXXStaticCastExpr",
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
@@ -985,7 +974,7 @@ SignedChar cxxfunctionalcast_3(SignedInt x) {
 // CHECK-NEXT:  "type": {
 // CHECK-NEXT:   "qualType": "unsigned char"
 // CHECK-NEXT:  },
-// CHECK-NEXT:  "valueCategory": "rvalue",
+// CHECK-NEXT:  "valueCategory": "prvalue",
 // CHECK-NEXT:  "castKind": "NoOp",
 // CHECK-NEXT:  "inner": [
 // CHECK-NEXT:   {
@@ -1006,7 +995,7 @@ SignedChar cxxfunctionalcast_3(SignedInt x) {
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "unsigned char"
 // CHECK-NEXT:    },
-// CHECK-NEXT:    "valueCategory": "rvalue",
+// CHECK-NEXT:    "valueCategory": "prvalue",
 // CHECK-NEXT:    "castKind": "IntegralCast",
 // CHECK-NEXT:    "isPartOfExplicitCast": true,
 // CHECK-NEXT:    "inner": [
@@ -1028,7 +1017,7 @@ SignedChar cxxfunctionalcast_3(SignedInt x) {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "int"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "castKind": "LValueToRValue",
 // CHECK-NEXT:      "isPartOfExplicitCast": true,
 // CHECK-NEXT:      "inner": [
@@ -1067,7 +1056,6 @@ SignedChar cxxfunctionalcast_3(SignedInt x) {
 // CHECK-NEXT:  ]
 // CHECK-NEXT: }
 
-
 // CHECK:  "kind": "CXXStaticCastExpr",
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
@@ -1084,7 +1072,7 @@ SignedChar cxxfunctionalcast_3(SignedInt x) {
 // CHECK-NEXT:  "type": {
 // CHECK-NEXT:   "qualType": "signed char"
 // CHECK-NEXT:  },
-// CHECK-NEXT:  "valueCategory": "rvalue",
+// CHECK-NEXT:  "valueCategory": "prvalue",
 // CHECK-NEXT:  "castKind": "NoOp",
 // CHECK-NEXT:  "inner": [
 // CHECK-NEXT:   {
@@ -1105,7 +1093,7 @@ SignedChar cxxfunctionalcast_3(SignedInt x) {
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "signed char"
 // CHECK-NEXT:    },
-// CHECK-NEXT:    "valueCategory": "rvalue",
+// CHECK-NEXT:    "valueCategory": "prvalue",
 // CHECK-NEXT:    "castKind": "IntegralCast",
 // CHECK-NEXT:    "isPartOfExplicitCast": true,
 // CHECK-NEXT:    "inner": [
@@ -1127,7 +1115,7 @@ SignedChar cxxfunctionalcast_3(SignedInt x) {
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "int"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "castKind": "LValueToRValue",
 // CHECK-NEXT:      "isPartOfExplicitCast": true,
 // CHECK-NEXT:      "inner": [
@@ -1166,7 +1154,6 @@ SignedChar cxxfunctionalcast_3(SignedInt x) {
 // CHECK-NEXT:  ]
 // CHECK-NEXT: }
 
-
 // CHECK:  "kind": "CXXFunctionalCastExpr",
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
@@ -1185,7 +1172,7 @@ SignedChar cxxfunctionalcast_3(SignedInt x) {
 // CHECK-NEXT:   "qualType": "UnsignedChar",
 // CHECK-NEXT:   "typeAliasDeclId": "0x{{.*}}"
 // CHECK-NEXT:  },
-// CHECK-NEXT:  "valueCategory": "rvalue",
+// CHECK-NEXT:  "valueCategory": "prvalue",
 // CHECK-NEXT:  "castKind": "NoOp",
 // CHECK-NEXT:  "inner": [
 // CHECK-NEXT:   {
@@ -1208,7 +1195,7 @@ SignedChar cxxfunctionalcast_3(SignedInt x) {
 // CHECK-NEXT:     "qualType": "UnsignedChar",
 // CHECK-NEXT:     "typeAliasDeclId": "0x{{.*}}"
 // CHECK-NEXT:    },
-// CHECK-NEXT:    "valueCategory": "rvalue",
+// CHECK-NEXT:    "valueCategory": "prvalue",
 // CHECK-NEXT:    "castKind": "IntegralCast",
 // CHECK-NEXT:    "isPartOfExplicitCast": true,
 // CHECK-NEXT:    "inner": [
@@ -1232,7 +1219,7 @@ SignedChar cxxfunctionalcast_3(SignedInt x) {
 // CHECK-NEXT:       "qualType": "UnsignedInt",
 // CHECK-NEXT:       "typeAliasDeclId": "0x{{.*}}"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "castKind": "LValueToRValue",
 // CHECK-NEXT:      "isPartOfExplicitCast": true,
 // CHECK-NEXT:      "inner": [
@@ -1275,7 +1262,6 @@ SignedChar cxxfunctionalcast_3(SignedInt x) {
 // CHECK-NEXT:  ]
 // CHECK-NEXT: }
 
-
 // CHECK:  "kind": "CXXFunctionalCastExpr",
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
@@ -1294,7 +1280,7 @@ SignedChar cxxfunctionalcast_3(SignedInt x) {
 // CHECK-NEXT:   "qualType": "SignedChar",
 // CHECK-NEXT:   "typeAliasDeclId": "0x{{.*}}"
 // CHECK-NEXT:  },
-// CHECK-NEXT:  "valueCategory": "rvalue",
+// CHECK-NEXT:  "valueCategory": "prvalue",
 // CHECK-NEXT:  "castKind": "NoOp",
 // CHECK-NEXT:  "inner": [
 // CHECK-NEXT:   {
@@ -1317,7 +1303,7 @@ SignedChar cxxfunctionalcast_3(SignedInt x) {
 // CHECK-NEXT:     "qualType": "SignedChar",
 // CHECK-NEXT:     "typeAliasDeclId": "0x{{.*}}"
 // CHECK-NEXT:    },
-// CHECK-NEXT:    "valueCategory": "rvalue",
+// CHECK-NEXT:    "valueCategory": "prvalue",
 // CHECK-NEXT:    "castKind": "IntegralCast",
 // CHECK-NEXT:    "isPartOfExplicitCast": true,
 // CHECK-NEXT:    "inner": [
@@ -1341,7 +1327,7 @@ SignedChar cxxfunctionalcast_3(SignedInt x) {
 // CHECK-NEXT:       "qualType": "UnsignedInt",
 // CHECK-NEXT:       "typeAliasDeclId": "0x{{.*}}"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "castKind": "LValueToRValue",
 // CHECK-NEXT:      "isPartOfExplicitCast": true,
 // CHECK-NEXT:      "inner": [
@@ -1384,7 +1370,6 @@ SignedChar cxxfunctionalcast_3(SignedInt x) {
 // CHECK-NEXT:  ]
 // CHECK-NEXT: }
 
-
 // CHECK:  "kind": "CXXFunctionalCastExpr",
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
@@ -1403,7 +1388,7 @@ SignedChar cxxfunctionalcast_3(SignedInt x) {
 // CHECK-NEXT:   "qualType": "UnsignedChar",
 // CHECK-NEXT:   "typeAliasDeclId": "0x{{.*}}"
 // CHECK-NEXT:  },
-// CHECK-NEXT:  "valueCategory": "rvalue",
+// CHECK-NEXT:  "valueCategory": "prvalue",
 // CHECK-NEXT:  "castKind": "NoOp",
 // CHECK-NEXT:  "inner": [
 // CHECK-NEXT:   {
@@ -1426,7 +1411,7 @@ SignedChar cxxfunctionalcast_3(SignedInt x) {
 // CHECK-NEXT:     "qualType": "UnsignedChar",
 // CHECK-NEXT:     "typeAliasDeclId": "0x{{.*}}"
 // CHECK-NEXT:    },
-// CHECK-NEXT:    "valueCategory": "rvalue",
+// CHECK-NEXT:    "valueCategory": "prvalue",
 // CHECK-NEXT:    "castKind": "IntegralCast",
 // CHECK-NEXT:    "isPartOfExplicitCast": true,
 // CHECK-NEXT:    "inner": [
@@ -1450,7 +1435,7 @@ SignedChar cxxfunctionalcast_3(SignedInt x) {
 // CHECK-NEXT:       "qualType": "SignedInt",
 // CHECK-NEXT:       "typeAliasDeclId": "0x{{.*}}"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "castKind": "LValueToRValue",
 // CHECK-NEXT:      "isPartOfExplicitCast": true,
 // CHECK-NEXT:      "inner": [
@@ -1493,7 +1478,6 @@ SignedChar cxxfunctionalcast_3(SignedInt x) {
 // CHECK-NEXT:  ]
 // CHECK-NEXT: }
 
-
 // CHECK:  "kind": "CXXFunctionalCastExpr",
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
@@ -1512,7 +1496,7 @@ SignedChar cxxfunctionalcast_3(SignedInt x) {
 // CHECK-NEXT:   "qualType": "SignedChar",
 // CHECK-NEXT:   "typeAliasDeclId": "0x{{.*}}"
 // CHECK-NEXT:  },
-// CHECK-NEXT:  "valueCategory": "rvalue",
+// CHECK-NEXT:  "valueCategory": "prvalue",
 // CHECK-NEXT:  "castKind": "NoOp",
 // CHECK-NEXT:  "inner": [
 // CHECK-NEXT:   {
@@ -1535,7 +1519,7 @@ SignedChar cxxfunctionalcast_3(SignedInt x) {
 // CHECK-NEXT:     "qualType": "SignedChar",
 // CHECK-NEXT:     "typeAliasDeclId": "0x{{.*}}"
 // CHECK-NEXT:    },
-// CHECK-NEXT:    "valueCategory": "rvalue",
+// CHECK-NEXT:    "valueCategory": "prvalue",
 // CHECK-NEXT:    "castKind": "IntegralCast",
 // CHECK-NEXT:    "isPartOfExplicitCast": true,
 // CHECK-NEXT:    "inner": [
@@ -1559,7 +1543,7 @@ SignedChar cxxfunctionalcast_3(SignedInt x) {
 // CHECK-NEXT:       "qualType": "SignedInt",
 // CHECK-NEXT:       "typeAliasDeclId": "0x{{.*}}"
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "valueCategory": "prvalue",
 // CHECK-NEXT:      "castKind": "LValueToRValue",
 // CHECK-NEXT:      "isPartOfExplicitCast": true,
 // CHECK-NEXT:      "inner": [


        


More information about the cfe-commits mailing list