r364043 - Print information about various type nodes when dumping the AST to JSON.

Aaron Ballman via cfe-commits cfe-commits at lists.llvm.org
Fri Jun 21 06:22:36 PDT 2019


Author: aaronballman
Date: Fri Jun 21 06:22:35 2019
New Revision: 364043

URL: http://llvm.org/viewvc/llvm-project?rev=364043&view=rev
Log:
Print information about various type nodes when dumping the AST to JSON.

Modified:
    cfe/trunk/include/clang/AST/JSONNodeDumper.h
    cfe/trunk/lib/AST/JSONNodeDumper.cpp
    cfe/trunk/test/AST/ast-dump-record-definition-data-json.cpp
    cfe/trunk/test/AST/ast-dump-records-json.cpp
    cfe/trunk/test/AST/ast-dump-stmt-json.cpp
    cfe/trunk/test/AST/ast-dump-template-decls-json.cpp

Modified: cfe/trunk/include/clang/AST/JSONNodeDumper.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/AST/JSONNodeDumper.h?rev=364043&r1=364042&r2=364043&view=diff
==============================================================================
--- cfe/trunk/include/clang/AST/JSONNodeDumper.h (original)
+++ cfe/trunk/include/clang/AST/JSONNodeDumper.h Fri Jun 21 06:22:35 2019
@@ -197,6 +197,20 @@ public:
   void VisitTypedefType(const TypedefType *TT);
   void VisitFunctionType(const FunctionType *T);
   void VisitFunctionProtoType(const FunctionProtoType *T);
+  void VisitRValueReferenceType(const ReferenceType *RT);
+  void VisitArrayType(const ArrayType *AT);
+  void VisitConstantArrayType(const ConstantArrayType *CAT);
+  void VisitDependentSizedExtVectorType(const DependentSizedExtVectorType *VT);
+  void VisitVectorType(const VectorType *VT);
+  void VisitUnresolvedUsingType(const UnresolvedUsingType *UUT);
+  void VisitUnaryTransformType(const UnaryTransformType *UTT);
+  void VisitTagType(const TagType *TT);
+  void VisitTemplateTypeParmType(const TemplateTypeParmType *TTPT);
+  void VisitAutoType(const AutoType *AT);
+  void VisitTemplateSpecializationType(const TemplateSpecializationType *TST);
+  void VisitInjectedClassNameType(const InjectedClassNameType *ICNT);
+  void VisitObjCInterfaceType(const ObjCInterfaceType *OIT);
+  void VisitPackExpansionType(const PackExpansionType *PET);
 
   void VisitNamedDecl(const NamedDecl *ND);
   void VisitTypedefDecl(const TypedefDecl *TD);

Modified: cfe/trunk/lib/AST/JSONNodeDumper.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/AST/JSONNodeDumper.cpp?rev=364043&r1=364042&r2=364043&view=diff
==============================================================================
--- cfe/trunk/lib/AST/JSONNodeDumper.cpp (original)
+++ cfe/trunk/lib/AST/JSONNodeDumper.cpp Fri Jun 21 06:22:35 2019
@@ -492,6 +492,125 @@ void JSONNodeDumper::VisitFunctionProtoT
   VisitFunctionType(T);
 }
 
+void JSONNodeDumper::VisitRValueReferenceType(const ReferenceType *RT) {
+  attributeOnlyIfTrue("spelledAsLValue", RT->isSpelledAsLValue());
+}
+
+void JSONNodeDumper::VisitArrayType(const ArrayType *AT) {
+  switch (AT->getSizeModifier()) {
+  case ArrayType::Star:
+    JOS.attribute("sizeModifier", "*");
+    break;
+  case ArrayType::Static:
+    JOS.attribute("sizeModifier", "static");
+    break;
+  case ArrayType::Normal:
+    break;
+  }
+
+  std::string Str = AT->getIndexTypeQualifiers().getAsString();
+  if (!Str.empty())
+    JOS.attribute("indexTypeQualifiers", Str);
+}
+
+void JSONNodeDumper::VisitConstantArrayType(const ConstantArrayType *CAT) {
+  // FIXME: this should use ZExt instead of SExt, but JSON doesn't allow a
+  // narrowing conversion to int64_t so it cannot be expressed.
+  JOS.attribute("size", CAT->getSize().getSExtValue());
+  VisitArrayType(CAT);
+}
+
+void JSONNodeDumper::VisitDependentSizedExtVectorType(
+    const DependentSizedExtVectorType *VT) {
+  JOS.attribute("attrLoc", createSourceLocation(VT->getAttributeLoc()));
+}
+
+void JSONNodeDumper::VisitVectorType(const VectorType *VT) {
+  JOS.attribute("numElements", VT->getNumElements());
+  switch (VT->getVectorKind()) {
+  case VectorType::GenericVector:
+    break;
+  case VectorType::AltiVecVector:
+    JOS.attribute("vectorKind", "altivec");
+    break;
+  case VectorType::AltiVecPixel:
+    JOS.attribute("vectorKind", "altivec pixel");
+    break;
+  case VectorType::AltiVecBool:
+    JOS.attribute("vectorKind", "altivec bool");
+    break;
+  case VectorType::NeonVector:
+    JOS.attribute("vectorKind", "neon");
+    break;
+  case VectorType::NeonPolyVector:
+    JOS.attribute("vectorKind", "neon poly");
+    break;
+  }
+}
+
+void JSONNodeDumper::VisitUnresolvedUsingType(const UnresolvedUsingType *UUT) {
+  JOS.attribute("decl", createBareDeclRef(UUT->getDecl()));
+}
+
+void JSONNodeDumper::VisitUnaryTransformType(const UnaryTransformType *UTT) {
+  switch (UTT->getUTTKind()) {
+  case UnaryTransformType::EnumUnderlyingType:
+    JOS.attribute("transformKind", "underlying_type");
+    break;
+  }
+}
+
+void JSONNodeDumper::VisitTagType(const TagType *TT) {
+  JOS.attribute("decl", createBareDeclRef(TT->getDecl()));
+}
+
+void JSONNodeDumper::VisitTemplateTypeParmType(
+    const TemplateTypeParmType *TTPT) {
+  JOS.attribute("depth", TTPT->getDepth());
+  JOS.attribute("index", TTPT->getIndex());
+  attributeOnlyIfTrue("isPack", TTPT->isParameterPack());
+  JOS.attribute("decl", createBareDeclRef(TTPT->getDecl()));
+}
+
+void JSONNodeDumper::VisitAutoType(const AutoType *AT) {
+  JOS.attribute("undeduced", !AT->isDeduced());
+  switch (AT->getKeyword()) {
+  case AutoTypeKeyword::Auto:
+    JOS.attribute("typeKeyword", "auto");
+    break;
+  case AutoTypeKeyword::DecltypeAuto:
+    JOS.attribute("typeKeyword", "decltype(auto)");
+    break;
+  case AutoTypeKeyword::GNUAutoType:
+    JOS.attribute("typeKeyword", "__auto_type");
+    break;
+  }
+}
+
+void JSONNodeDumper::VisitTemplateSpecializationType(
+    const TemplateSpecializationType *TST) {
+  attributeOnlyIfTrue("isAlias", TST->isTypeAlias());
+
+  std::string Str;
+  llvm::raw_string_ostream OS(Str);
+  TST->getTemplateName().print(OS, PrintPolicy);
+  JOS.attribute("templateName", OS.str());
+}
+
+void JSONNodeDumper::VisitInjectedClassNameType(
+    const InjectedClassNameType *ICNT) {
+  JOS.attribute("decl", createBareDeclRef(ICNT->getDecl()));
+}
+
+void JSONNodeDumper::VisitObjCInterfaceType(const ObjCInterfaceType *OIT) {
+  JOS.attribute("decl", createBareDeclRef(OIT->getDecl()));
+}
+
+void JSONNodeDumper::VisitPackExpansionType(const PackExpansionType *PET) {
+  if (llvm::Optional<unsigned> N = PET->getNumExpansions())
+    JOS.attribute("numExpansions", *N);
+}
+
 void JSONNodeDumper::VisitNamedDecl(const NamedDecl *ND) {
   if (ND && ND->getDeclName())
     JOS.attribute("name", ND->getNameAsString());

Modified: cfe/trunk/test/AST/ast-dump-record-definition-data-json.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/AST/ast-dump-record-definition-data-json.cpp?rev=364043&r1=364042&r2=364043&view=diff
==============================================================================
--- cfe/trunk/test/AST/ast-dump-record-definition-data-json.cpp (original)
+++ cfe/trunk/test/AST/ast-dump-record-definition-data-json.cpp Fri Jun 21 06:22:35 2019
@@ -126,6 +126,16 @@ struct DoesNotAllowConstDefaultInit {
 
 
 // CHECK:  "kind": "CXXRecordDecl",
+// CHECK-NEXT:  "name": "__NSConstantString_tag"
+// CHECK-NEXT: }
+
+
+// CHECK:  "kind": "CXXRecordDecl",
+// CHECK-NEXT:  "name": "__va_list_tag"
+// CHECK-NEXT: }
+
+
+// CHECK:  "kind": "CXXRecordDecl",
 // CHECK-NEXT:  "loc": {
 // CHECK-NEXT:   "col": 29,
 // CHECK-NEXT:   "file": "{{.*}}",
@@ -5193,4 +5203,3 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:   }
 // CHECK-NEXT:  ]
 // CHECK-NEXT: }
-

Modified: cfe/trunk/test/AST/ast-dump-records-json.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/AST/ast-dump-records-json.cpp?rev=364043&r1=364042&r2=364043&view=diff
==============================================================================
--- cfe/trunk/test/AST/ast-dump-records-json.cpp (original)
+++ cfe/trunk/test/AST/ast-dump-records-json.cpp Fri Jun 21 06:22:35 2019
@@ -85,456 +85,466 @@ struct Derived6 : virtual public Bases..
 };
 
 
-// CHECK:  "kind": "CXXRecordDecl", 
+// CHECK:  "kind": "CXXRecordDecl",
+// CHECK-NEXT:  "name": "__NSConstantString_tag"
+// CHECK-NEXT: }
+
+
+// CHECK:  "kind": "CXXRecordDecl",
+// CHECK-NEXT:  "name": "__va_list_tag"
+// CHECK-NEXT: }
+
+
+// CHECK:  "kind": "CXXRecordDecl",
 // CHECK-NEXT:  "loc": {
-// CHECK-NEXT:   "col": 8, 
-// CHECK-NEXT:   "file": "{{.*}}", 
+// CHECK-NEXT:   "col": 8,
+// CHECK-NEXT:   "file": "{{.*}}",
 // CHECK-NEXT:   "line": 3
-// CHECK-NEXT:  }, 
+// CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
-// CHECK-NEXT:    "col": 1, 
-// CHECK-NEXT:    "file": "{{.*}}", 
+// CHECK-NEXT:    "col": 1,
+// CHECK-NEXT:    "file": "{{.*}}",
 // CHECK-NEXT:    "line": 3
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
-// CHECK-NEXT:    "col": 8, 
-// CHECK-NEXT:    "file": "{{.*}}", 
+// CHECK-NEXT:    "col": 8,
+// CHECK-NEXT:    "file": "{{.*}}",
 // CHECK-NEXT:    "line": 3
 // CHECK-NEXT:   }
-// CHECK-NEXT:  }, 
-// CHECK-NEXT:  "name": "A", 
+// CHECK-NEXT:  },
+// CHECK-NEXT:  "name": "A",
 // CHECK-NEXT:  "tagUsed": "struct"
 // CHECK-NEXT: }
 
 
-// CHECK:  "kind": "CXXRecordDecl", 
+// CHECK:  "kind": "CXXRecordDecl",
 // CHECK-NEXT:  "loc": {
-// CHECK-NEXT:   "col": 8, 
-// CHECK-NEXT:   "file": "{{.*}}", 
+// CHECK-NEXT:   "col": 8,
+// CHECK-NEXT:   "file": "{{.*}}",
 // CHECK-NEXT:   "line": 4
-// CHECK-NEXT:  }, 
+// CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
-// CHECK-NEXT:    "col": 1, 
-// CHECK-NEXT:    "file": "{{.*}}", 
+// CHECK-NEXT:    "col": 1,
+// CHECK-NEXT:    "file": "{{.*}}",
 // CHECK-NEXT:    "line": 4
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
-// CHECK-NEXT:    "col": 8, 
-// CHECK-NEXT:    "file": "{{.*}}", 
+// CHECK-NEXT:    "col": 8,
+// CHECK-NEXT:    "file": "{{.*}}",
 // CHECK-NEXT:    "line": 4
 // CHECK-NEXT:   }
-// CHECK-NEXT:  }, 
-// CHECK-NEXT:  "isReferenced": true, 
-// CHECK-NEXT:  "name": "B", 
+// CHECK-NEXT:  },
+// CHECK-NEXT:  "isReferenced": true,
+// CHECK-NEXT:  "name": "B",
 // CHECK-NEXT:  "tagUsed": "struct"
 // CHECK-NEXT: }
 
 
-// CHECK:  "kind": "CXXRecordDecl", 
+// CHECK:  "kind": "CXXRecordDecl",
 // CHECK-NEXT:  "loc": {
-// CHECK-NEXT:   "col": 8, 
-// CHECK-NEXT:   "file": "{{.*}}", 
+// CHECK-NEXT:   "col": 8,
+// CHECK-NEXT:   "file": "{{.*}}",
 // CHECK-NEXT:   "line": 6
-// CHECK-NEXT:  }, 
+// CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
-// CHECK-NEXT:    "col": 1, 
-// CHECK-NEXT:    "file": "{{.*}}", 
+// CHECK-NEXT:    "col": 1,
+// CHECK-NEXT:    "file": "{{.*}}",
 // CHECK-NEXT:    "line": 6
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
-// CHECK-NEXT:    "col": 1, 
-// CHECK-NEXT:    "file": "{{.*}}", 
+// CHECK-NEXT:    "col": 1,
+// CHECK-NEXT:    "file": "{{.*}}",
 // CHECK-NEXT:    "line": 13
 // CHECK-NEXT:   }
-// CHECK-NEXT:  }, 
-// CHECK-NEXT:  "previousDecl": "0x{{.*}}", 
-// CHECK-NEXT:  "name": "A", 
-// CHECK-NEXT:  "tagUsed": "struct", 
-// CHECK-NEXT:  "completeDefinition": true, 
+// CHECK-NEXT:  },
+// CHECK-NEXT:  "previousDecl": "0x{{.*}}",
+// CHECK-NEXT:  "name": "A",
+// CHECK-NEXT:  "tagUsed": "struct",
+// CHECK-NEXT:  "completeDefinition": true,
 // CHECK-NEXT:  "definitionData": {
-// CHECK-NEXT:   "canPassInRegisters": true, 
+// CHECK-NEXT:   "canPassInRegisters": true,
 // CHECK-NEXT:   "copyAssign": {
-// CHECK-NEXT:    "hasConstParam": true, 
-// CHECK-NEXT:    "implicitHasConstParam": true, 
-// CHECK-NEXT:    "needsImplicit": true, 
+// CHECK-NEXT:    "hasConstParam": true,
+// CHECK-NEXT:    "implicitHasConstParam": true,
+// CHECK-NEXT:    "needsImplicit": true,
 // CHECK-NEXT:    "trivial": true
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   "copyCtor": {
-// CHECK-NEXT:    "hasConstParam": true, 
-// CHECK-NEXT:    "implicitHasConstParam": true, 
-// CHECK-NEXT:    "needsImplicit": true, 
-// CHECK-NEXT:    "simple": true, 
+// CHECK-NEXT:    "hasConstParam": true,
+// CHECK-NEXT:    "implicitHasConstParam": true,
+// CHECK-NEXT:    "needsImplicit": true,
+// CHECK-NEXT:    "simple": true,
 // CHECK-NEXT:    "trivial": true
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   "defaultCtor": {
-// CHECK-NEXT:    "exists": true, 
-// CHECK-NEXT:    "needsImplicit": true, 
+// CHECK-NEXT:    "exists": true,
+// CHECK-NEXT:    "needsImplicit": true,
 // CHECK-NEXT:    "trivial": true
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   "dtor": {
-// CHECK-NEXT:    "irrelevant": true, 
-// CHECK-NEXT:    "needsImplicit": true, 
-// CHECK-NEXT:    "simple": true, 
-// CHECK-NEXT:    "trivial": true
-// CHECK-NEXT:   }, 
-// CHECK-NEXT:   "isAggregate": true, 
-// CHECK-NEXT:   "isLiteral": true, 
-// CHECK-NEXT:   "isPOD": true, 
-// CHECK-NEXT:   "isStandardLayout": true, 
-// CHECK-NEXT:   "isTrivial": true, 
-// CHECK-NEXT:   "isTriviallyCopyable": true, 
+// CHECK-NEXT:    "irrelevant": true,
+// CHECK-NEXT:    "needsImplicit": true,
+// CHECK-NEXT:    "simple": true,
+// CHECK-NEXT:    "trivial": true
+// CHECK-NEXT:   },
+// CHECK-NEXT:   "isAggregate": true,
+// CHECK-NEXT:   "isLiteral": true,
+// CHECK-NEXT:   "isPOD": true,
+// CHECK-NEXT:   "isStandardLayout": true,
+// CHECK-NEXT:   "isTrivial": true,
+// CHECK-NEXT:   "isTriviallyCopyable": true,
 // CHECK-NEXT:   "moveAssign": {
-// CHECK-NEXT:    "exists": true, 
-// CHECK-NEXT:    "needsImplicit": true, 
-// CHECK-NEXT:    "simple": true, 
+// CHECK-NEXT:    "exists": true,
+// CHECK-NEXT:    "needsImplicit": true,
+// CHECK-NEXT:    "simple": true,
 // CHECK-NEXT:    "trivial": true
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   "moveCtor": {
-// CHECK-NEXT:    "exists": true, 
-// CHECK-NEXT:    "needsImplicit": true, 
-// CHECK-NEXT:    "simple": true, 
+// CHECK-NEXT:    "exists": true,
+// CHECK-NEXT:    "needsImplicit": true,
+// CHECK-NEXT:    "simple": true,
 // CHECK-NEXT:    "trivial": true
 // CHECK-NEXT:   }
-// CHECK-NEXT:  }, 
+// CHECK-NEXT:  },
 // CHECK-NEXT:  "inner": [
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "id": "0x{{.*}}", 
-// CHECK-NEXT:    "kind": "CXXRecordDecl", 
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "CXXRecordDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "col": 8, 
-// CHECK-NEXT:     "file": "{{.*}}", 
+// CHECK-NEXT:     "col": 8,
+// CHECK-NEXT:     "file": "{{.*}}",
 // CHECK-NEXT:     "line": 6
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "col": 1, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 1,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 6
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "col": 8, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 8,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 6
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "isImplicit": true, 
-// CHECK-NEXT:    "name": "A", 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "isImplicit": true,
+// CHECK-NEXT:    "name": "A",
 // CHECK-NEXT:    "tagUsed": "struct"
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "id": "0x{{.*}}", 
-// CHECK-NEXT:    "kind": "FieldDecl", 
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "FieldDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "col": 7, 
-// CHECK-NEXT:     "file": "{{.*}}", 
+// CHECK-NEXT:     "col": 7,
+// CHECK-NEXT:     "file": "{{.*}}",
 // CHECK-NEXT:     "line": 7
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "col": 3, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 3,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 7
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "col": 7, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 7,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 7
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "name": "a", 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "name": "a",
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "int"
 // CHECK-NEXT:    }
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "id": "0x{{.*}}", 
-// CHECK-NEXT:    "kind": "FieldDecl", 
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "FieldDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "col": 7, 
-// CHECK-NEXT:     "file": "{{.*}}", 
+// CHECK-NEXT:     "col": 7,
+// CHECK-NEXT:     "file": "{{.*}}",
 // CHECK-NEXT:     "line": 8
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "col": 3, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 3,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 8
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "col": 7, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 7,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 8
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "name": "b", 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "name": "b",
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "int"
 // CHECK-NEXT:    }
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "id": "0x{{.*}}", 
-// CHECK-NEXT:    "kind": "FieldDecl", 
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "FieldDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "col": 10, 
-// CHECK-NEXT:     "file": "{{.*}}", 
+// CHECK-NEXT:     "col": 10,
+// CHECK-NEXT:     "file": "{{.*}}",
 // CHECK-NEXT:     "line": 8
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "col": 3, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 3,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 8
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "col": 10, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 10,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 8
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "name": "c", 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "name": "c",
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "int"
 // CHECK-NEXT:    }
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "id": "0x{{.*}}", 
-// CHECK-NEXT:    "kind": "FieldDecl", 
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "FieldDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "col": 7, 
-// CHECK-NEXT:     "file": "{{.*}}", 
+// CHECK-NEXT:     "col": 7,
+// CHECK-NEXT:     "file": "{{.*}}",
 // CHECK-NEXT:     "line": 9
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "col": 3, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 3,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 9
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "col": 11, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 11,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 9
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "name": "d", 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "name": "d",
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "int"
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "isBitfield": true, 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "isBitfield": true,
 // CHECK-NEXT:    "inner": [
 // CHECK-NEXT:     {
-// CHECK-NEXT:      "id": "0x{{.*}}", 
-// CHECK-NEXT:      "kind": "ConstantExpr", 
+// CHECK-NEXT:      "id": "0x{{.*}}",
+// CHECK-NEXT:      "kind": "ConstantExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
-// CHECK-NEXT:        "col": 11, 
-// CHECK-NEXT:        "file": "{{.*}}", 
+// CHECK-NEXT:        "col": 11,
+// CHECK-NEXT:        "file": "{{.*}}",
 // CHECK-NEXT:        "line": 9
-// CHECK-NEXT:       }, 
+// CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
-// CHECK-NEXT:        "col": 11, 
-// CHECK-NEXT:        "file": "{{.*}}", 
+// CHECK-NEXT:        "col": 11,
+// CHECK-NEXT:        "file": "{{.*}}",
 // CHECK-NEXT:        "line": 9
 // CHECK-NEXT:       }
-// CHECK-NEXT:      }, 
+// CHECK-NEXT:      },
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "int"
-// CHECK-NEXT:      }, 
-// CHECK-NEXT:      "valueCategory": "rvalue", 
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "valueCategory": "rvalue",
 // CHECK-NEXT:      "value": "12",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
-// CHECK-NEXT:        "id": "0x{{.*}}", 
-// CHECK-NEXT:        "kind": "IntegerLiteral", 
+// CHECK-NEXT:        "id": "0x{{.*}}",
+// CHECK-NEXT:        "kind": "IntegerLiteral",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
-// CHECK-NEXT:          "col": 11, 
-// CHECK-NEXT:          "file": "{{.*}}", 
+// CHECK-NEXT:          "col": 11,
+// CHECK-NEXT:          "file": "{{.*}}",
 // CHECK-NEXT:          "line": 9
-// CHECK-NEXT:         }, 
+// CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "col": 11, 
-// CHECK-NEXT:          "file": "{{.*}}", 
+// CHECK-NEXT:          "col": 11,
+// CHECK-NEXT:          "file": "{{.*}}",
 // CHECK-NEXT:          "line": 9
 // CHECK-NEXT:         }
-// CHECK-NEXT:        }, 
+// CHECK-NEXT:        },
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int"
-// CHECK-NEXT:        }, 
-// CHECK-NEXT:        "valueCategory": "rvalue", 
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "valueCategory": "rvalue",
 // CHECK-NEXT:        "value": "12"
 // CHECK-NEXT:       }
 // CHECK-NEXT:      ]
 // CHECK-NEXT:     }
 // CHECK-NEXT:    ]
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "id": "0x{{.*}}", 
-// CHECK-NEXT:    "kind": "FieldDecl", 
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "FieldDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "col": 7, 
-// CHECK-NEXT:     "file": "{{.*}}", 
+// CHECK-NEXT:     "col": 7,
+// CHECK-NEXT:     "file": "{{.*}}",
 // CHECK-NEXT:     "line": 10
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "col": 3, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 3,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 10
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "col": 9, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 9,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 10
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "int"
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "isBitfield": true, 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "isBitfield": true,
 // CHECK-NEXT:    "inner": [
 // CHECK-NEXT:     {
-// CHECK-NEXT:      "id": "0x{{.*}}", 
-// CHECK-NEXT:      "kind": "ConstantExpr", 
+// CHECK-NEXT:      "id": "0x{{.*}}",
+// CHECK-NEXT:      "kind": "ConstantExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
-// CHECK-NEXT:        "col": 9, 
-// CHECK-NEXT:        "file": "{{.*}}", 
+// CHECK-NEXT:        "col": 9,
+// CHECK-NEXT:        "file": "{{.*}}",
 // CHECK-NEXT:        "line": 10
-// CHECK-NEXT:       }, 
+// CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
-// CHECK-NEXT:        "col": 9, 
-// CHECK-NEXT:        "file": "{{.*}}", 
+// CHECK-NEXT:        "col": 9,
+// CHECK-NEXT:        "file": "{{.*}}",
 // CHECK-NEXT:        "line": 10
 // CHECK-NEXT:       }
-// CHECK-NEXT:      }, 
+// CHECK-NEXT:      },
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "int"
-// CHECK-NEXT:      }, 
-// CHECK-NEXT:      "valueCategory": "rvalue", 
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "valueCategory": "rvalue",
 // CHECK-NEXT:      "value": "0",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
-// CHECK-NEXT:        "id": "0x{{.*}}", 
-// CHECK-NEXT:        "kind": "IntegerLiteral", 
+// CHECK-NEXT:        "id": "0x{{.*}}",
+// CHECK-NEXT:        "kind": "IntegerLiteral",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
-// CHECK-NEXT:          "col": 9, 
-// CHECK-NEXT:          "file": "{{.*}}", 
+// CHECK-NEXT:          "col": 9,
+// CHECK-NEXT:          "file": "{{.*}}",
 // CHECK-NEXT:          "line": 10
-// CHECK-NEXT:         }, 
+// CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "col": 9, 
-// CHECK-NEXT:          "file": "{{.*}}", 
+// CHECK-NEXT:          "col": 9,
+// CHECK-NEXT:          "file": "{{.*}}",
 // CHECK-NEXT:          "line": 10
 // CHECK-NEXT:         }
-// CHECK-NEXT:        }, 
+// CHECK-NEXT:        },
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int"
-// CHECK-NEXT:        }, 
-// CHECK-NEXT:        "valueCategory": "rvalue", 
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "valueCategory": "rvalue",
 // CHECK-NEXT:        "value": "0"
 // CHECK-NEXT:       }
 // CHECK-NEXT:      ]
 // CHECK-NEXT:     }
 // CHECK-NEXT:    ]
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "id": "0x{{.*}}", 
-// CHECK-NEXT:    "kind": "FieldDecl", 
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "FieldDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "col": 7, 
-// CHECK-NEXT:     "file": "{{.*}}", 
+// CHECK-NEXT:     "col": 7,
+// CHECK-NEXT:     "file": "{{.*}}",
 // CHECK-NEXT:     "line": 11
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "col": 3, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 3,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 11
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "col": 11, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 11,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 11
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "name": "e", 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "name": "e",
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "int"
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "isBitfield": true, 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "isBitfield": true,
 // CHECK-NEXT:    "inner": [
 // CHECK-NEXT:     {
-// CHECK-NEXT:      "id": "0x{{.*}}", 
-// CHECK-NEXT:      "kind": "ConstantExpr", 
+// CHECK-NEXT:      "id": "0x{{.*}}",
+// CHECK-NEXT:      "kind": "ConstantExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
-// CHECK-NEXT:        "col": 11, 
-// CHECK-NEXT:        "file": "{{.*}}", 
+// CHECK-NEXT:        "col": 11,
+// CHECK-NEXT:        "file": "{{.*}}",
 // CHECK-NEXT:        "line": 11
-// CHECK-NEXT:       }, 
+// CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
-// CHECK-NEXT:        "col": 11, 
-// CHECK-NEXT:        "file": "{{.*}}", 
+// CHECK-NEXT:        "col": 11,
+// CHECK-NEXT:        "file": "{{.*}}",
 // CHECK-NEXT:        "line": 11
 // CHECK-NEXT:       }
-// CHECK-NEXT:      }, 
+// CHECK-NEXT:      },
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "int"
-// CHECK-NEXT:      }, 
-// CHECK-NEXT:      "valueCategory": "rvalue", 
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "valueCategory": "rvalue",
 // CHECK-NEXT:      "value": "10",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
-// CHECK-NEXT:        "id": "0x{{.*}}", 
-// CHECK-NEXT:        "kind": "IntegerLiteral", 
+// CHECK-NEXT:        "id": "0x{{.*}}",
+// CHECK-NEXT:        "kind": "IntegerLiteral",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
-// CHECK-NEXT:          "col": 11, 
-// CHECK-NEXT:          "file": "{{.*}}", 
+// CHECK-NEXT:          "col": 11,
+// CHECK-NEXT:          "file": "{{.*}}",
 // CHECK-NEXT:          "line": 11
-// CHECK-NEXT:         }, 
+// CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "col": 11, 
-// CHECK-NEXT:          "file": "{{.*}}", 
+// CHECK-NEXT:          "col": 11,
+// CHECK-NEXT:          "file": "{{.*}}",
 // CHECK-NEXT:          "line": 11
 // CHECK-NEXT:         }
-// CHECK-NEXT:        }, 
+// CHECK-NEXT:        },
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int"
-// CHECK-NEXT:        }, 
-// CHECK-NEXT:        "valueCategory": "rvalue", 
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "valueCategory": "rvalue",
 // CHECK-NEXT:        "value": "10"
 // CHECK-NEXT:       }
 // CHECK-NEXT:      ]
 // CHECK-NEXT:     }
 // CHECK-NEXT:    ]
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "id": "0x{{.*}}", 
-// CHECK-NEXT:    "kind": "FieldDecl", 
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "FieldDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "col": 6, 
-// CHECK-NEXT:     "file": "{{.*}}", 
+// CHECK-NEXT:     "col": 6,
+// CHECK-NEXT:     "file": "{{.*}}",
 // CHECK-NEXT:     "line": 12
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "col": 3, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 3,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 12
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "col": 6, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 6,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 12
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "name": "f", 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "name": "f",
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "B *"
 // CHECK-NEXT:    }
@@ -543,768 +553,768 @@ struct Derived6 : virtual public Bases..
 // CHECK-NEXT: }
 
 
-// CHECK:  "kind": "CXXRecordDecl", 
+// CHECK:  "kind": "CXXRecordDecl",
 // CHECK-NEXT:  "loc": {
-// CHECK-NEXT:   "col": 8, 
-// CHECK-NEXT:   "file": "{{.*}}", 
+// CHECK-NEXT:   "col": 8,
+// CHECK-NEXT:   "file": "{{.*}}",
 // CHECK-NEXT:   "line": 15
-// CHECK-NEXT:  }, 
+// CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
-// CHECK-NEXT:    "col": 1, 
-// CHECK-NEXT:    "file": "{{.*}}", 
+// CHECK-NEXT:    "col": 1,
+// CHECK-NEXT:    "file": "{{.*}}",
 // CHECK-NEXT:    "line": 15
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
-// CHECK-NEXT:    "col": 1, 
-// CHECK-NEXT:    "file": "{{.*}}", 
+// CHECK-NEXT:    "col": 1,
+// CHECK-NEXT:    "file": "{{.*}}",
 // CHECK-NEXT:    "line": 28
 // CHECK-NEXT:   }
-// CHECK-NEXT:  }, 
-// CHECK-NEXT:  "name": "C", 
-// CHECK-NEXT:  "tagUsed": "struct", 
-// CHECK-NEXT:  "completeDefinition": true, 
+// CHECK-NEXT:  },
+// CHECK-NEXT:  "name": "C",
+// CHECK-NEXT:  "tagUsed": "struct",
+// CHECK-NEXT:  "completeDefinition": true,
 // CHECK-NEXT:  "definitionData": {
-// CHECK-NEXT:   "canPassInRegisters": true, 
+// CHECK-NEXT:   "canPassInRegisters": true,
 // CHECK-NEXT:   "copyAssign": {
-// CHECK-NEXT:    "hasConstParam": true, 
-// CHECK-NEXT:    "implicitHasConstParam": true, 
-// CHECK-NEXT:    "needsImplicit": true, 
+// CHECK-NEXT:    "hasConstParam": true,
+// CHECK-NEXT:    "implicitHasConstParam": true,
+// CHECK-NEXT:    "needsImplicit": true,
 // CHECK-NEXT:    "trivial": true
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   "copyCtor": {
-// CHECK-NEXT:    "hasConstParam": true, 
-// CHECK-NEXT:    "implicitHasConstParam": true, 
-// CHECK-NEXT:    "needsImplicit": true, 
-// CHECK-NEXT:    "simple": true, 
+// CHECK-NEXT:    "hasConstParam": true,
+// CHECK-NEXT:    "implicitHasConstParam": true,
+// CHECK-NEXT:    "needsImplicit": true,
+// CHECK-NEXT:    "simple": true,
 // CHECK-NEXT:    "trivial": true
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   "defaultCtor": {
-// CHECK-NEXT:    "exists": true, 
-// CHECK-NEXT:    "needsImplicit": true, 
+// CHECK-NEXT:    "exists": true,
+// CHECK-NEXT:    "needsImplicit": true,
 // CHECK-NEXT:    "trivial": true
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   "dtor": {
-// CHECK-NEXT:    "irrelevant": true, 
-// CHECK-NEXT:    "needsImplicit": true, 
-// CHECK-NEXT:    "simple": true, 
-// CHECK-NEXT:    "trivial": true
-// CHECK-NEXT:   }, 
-// CHECK-NEXT:   "hasVariantMembers": true, 
-// CHECK-NEXT:   "isAggregate": true, 
-// CHECK-NEXT:   "isLiteral": true, 
-// CHECK-NEXT:   "isPOD": true, 
-// CHECK-NEXT:   "isStandardLayout": true, 
-// CHECK-NEXT:   "isTrivial": true, 
-// CHECK-NEXT:   "isTriviallyCopyable": true, 
+// CHECK-NEXT:    "irrelevant": true,
+// CHECK-NEXT:    "needsImplicit": true,
+// CHECK-NEXT:    "simple": true,
+// CHECK-NEXT:    "trivial": true
+// CHECK-NEXT:   },
+// CHECK-NEXT:   "hasVariantMembers": true,
+// CHECK-NEXT:   "isAggregate": true,
+// CHECK-NEXT:   "isLiteral": true,
+// CHECK-NEXT:   "isPOD": true,
+// CHECK-NEXT:   "isStandardLayout": true,
+// CHECK-NEXT:   "isTrivial": true,
+// CHECK-NEXT:   "isTriviallyCopyable": true,
 // CHECK-NEXT:   "moveAssign": {
-// CHECK-NEXT:    "exists": true, 
-// CHECK-NEXT:    "needsImplicit": true, 
-// CHECK-NEXT:    "simple": true, 
+// CHECK-NEXT:    "exists": true,
+// CHECK-NEXT:    "needsImplicit": true,
+// CHECK-NEXT:    "simple": true,
 // CHECK-NEXT:    "trivial": true
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   "moveCtor": {
-// CHECK-NEXT:    "exists": true, 
-// CHECK-NEXT:    "needsImplicit": true, 
-// CHECK-NEXT:    "simple": true, 
+// CHECK-NEXT:    "exists": true,
+// CHECK-NEXT:    "needsImplicit": true,
+// CHECK-NEXT:    "simple": true,
 // CHECK-NEXT:    "trivial": true
 // CHECK-NEXT:   }
-// CHECK-NEXT:  }, 
+// CHECK-NEXT:  },
 // CHECK-NEXT:  "inner": [
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "id": "0x{{.*}}", 
-// CHECK-NEXT:    "kind": "CXXRecordDecl", 
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "CXXRecordDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "col": 8, 
-// CHECK-NEXT:     "file": "{{.*}}", 
+// CHECK-NEXT:     "col": 8,
+// CHECK-NEXT:     "file": "{{.*}}",
 // CHECK-NEXT:     "line": 15
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "col": 1, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 1,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 15
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "col": 8, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 8,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 15
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "isImplicit": true, 
-// CHECK-NEXT:    "name": "C", 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "isImplicit": true,
+// CHECK-NEXT:    "name": "C",
 // CHECK-NEXT:    "tagUsed": "struct"
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "id": "0x{{.*}}", 
-// CHECK-NEXT:    "kind": "CXXRecordDecl", 
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "CXXRecordDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "col": 3, 
-// CHECK-NEXT:     "file": "{{.*}}", 
+// CHECK-NEXT:     "col": 3,
+// CHECK-NEXT:     "file": "{{.*}}",
 // CHECK-NEXT:     "line": 16
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "col": 3, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 3,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 16
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "col": 3, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 3,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 18
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "tagUsed": "struct", 
-// CHECK-NEXT:    "completeDefinition": true, 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "tagUsed": "struct",
+// CHECK-NEXT:    "completeDefinition": true,
 // CHECK-NEXT:    "definitionData": {
-// CHECK-NEXT:     "canPassInRegisters": true, 
+// CHECK-NEXT:     "canPassInRegisters": true,
 // CHECK-NEXT:     "copyAssign": {
-// CHECK-NEXT:      "hasConstParam": true, 
-// CHECK-NEXT:      "implicitHasConstParam": true, 
-// CHECK-NEXT:      "needsImplicit": true, 
+// CHECK-NEXT:      "hasConstParam": true,
+// CHECK-NEXT:      "implicitHasConstParam": true,
+// CHECK-NEXT:      "needsImplicit": true,
 // CHECK-NEXT:      "trivial": true
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "copyCtor": {
-// CHECK-NEXT:      "hasConstParam": true, 
-// CHECK-NEXT:      "implicitHasConstParam": true, 
-// CHECK-NEXT:      "needsImplicit": true, 
-// CHECK-NEXT:      "simple": true, 
+// CHECK-NEXT:      "hasConstParam": true,
+// CHECK-NEXT:      "implicitHasConstParam": true,
+// CHECK-NEXT:      "needsImplicit": true,
+// CHECK-NEXT:      "simple": true,
 // CHECK-NEXT:      "trivial": true
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "defaultCtor": {
-// CHECK-NEXT:      "exists": true, 
-// CHECK-NEXT:      "needsImplicit": true, 
+// CHECK-NEXT:      "exists": true,
+// CHECK-NEXT:      "needsImplicit": true,
 // CHECK-NEXT:      "trivial": true
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "dtor": {
-// CHECK-NEXT:      "irrelevant": true, 
-// CHECK-NEXT:      "needsImplicit": true, 
-// CHECK-NEXT:      "simple": true, 
-// CHECK-NEXT:      "trivial": true
-// CHECK-NEXT:     }, 
-// CHECK-NEXT:     "isAggregate": true, 
-// CHECK-NEXT:     "isLiteral": true, 
-// CHECK-NEXT:     "isPOD": true, 
-// CHECK-NEXT:     "isStandardLayout": true, 
-// CHECK-NEXT:     "isTrivial": true, 
-// CHECK-NEXT:     "isTriviallyCopyable": true, 
+// CHECK-NEXT:      "irrelevant": true,
+// CHECK-NEXT:      "needsImplicit": true,
+// CHECK-NEXT:      "simple": true,
+// CHECK-NEXT:      "trivial": true
+// CHECK-NEXT:     },
+// CHECK-NEXT:     "isAggregate": true,
+// CHECK-NEXT:     "isLiteral": true,
+// CHECK-NEXT:     "isPOD": true,
+// CHECK-NEXT:     "isStandardLayout": true,
+// CHECK-NEXT:     "isTrivial": true,
+// CHECK-NEXT:     "isTriviallyCopyable": true,
 // CHECK-NEXT:     "moveAssign": {
-// CHECK-NEXT:      "exists": true, 
-// CHECK-NEXT:      "needsImplicit": true, 
-// CHECK-NEXT:      "simple": true, 
+// CHECK-NEXT:      "exists": true,
+// CHECK-NEXT:      "needsImplicit": true,
+// CHECK-NEXT:      "simple": true,
 // CHECK-NEXT:      "trivial": true
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "moveCtor": {
-// CHECK-NEXT:      "exists": true, 
-// CHECK-NEXT:      "needsImplicit": true, 
-// CHECK-NEXT:      "simple": true, 
+// CHECK-NEXT:      "exists": true,
+// CHECK-NEXT:      "needsImplicit": true,
+// CHECK-NEXT:      "simple": true,
 // CHECK-NEXT:      "trivial": true
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "inner": [
 // CHECK-NEXT:     {
-// CHECK-NEXT:      "id": "0x{{.*}}", 
-// CHECK-NEXT:      "kind": "FieldDecl", 
+// CHECK-NEXT:      "id": "0x{{.*}}",
+// CHECK-NEXT:      "kind": "FieldDecl",
 // CHECK-NEXT:      "loc": {
-// CHECK-NEXT:       "col": 9, 
-// CHECK-NEXT:       "file": "{{.*}}", 
+// CHECK-NEXT:       "col": 9,
+// CHECK-NEXT:       "file": "{{.*}}",
 // CHECK-NEXT:       "line": 17
-// CHECK-NEXT:      }, 
+// CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
-// CHECK-NEXT:        "col": 5, 
-// CHECK-NEXT:        "file": "{{.*}}", 
+// CHECK-NEXT:        "col": 5,
+// CHECK-NEXT:        "file": "{{.*}}",
 // CHECK-NEXT:        "line": 17
-// CHECK-NEXT:       }, 
+// CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
-// CHECK-NEXT:        "col": 9, 
-// CHECK-NEXT:        "file": "{{.*}}", 
+// CHECK-NEXT:        "col": 9,
+// CHECK-NEXT:        "file": "{{.*}}",
 // CHECK-NEXT:        "line": 17
 // CHECK-NEXT:       }
-// CHECK-NEXT:      }, 
-// CHECK-NEXT:      "name": "a", 
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "name": "a",
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "int"
 // CHECK-NEXT:      }
 // CHECK-NEXT:     }
 // CHECK-NEXT:    ]
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "id": "0x{{.*}}", 
-// CHECK-NEXT:    "kind": "FieldDecl", 
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "FieldDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "col": 5, 
-// CHECK-NEXT:     "file": "{{.*}}", 
+// CHECK-NEXT:     "col": 5,
+// CHECK-NEXT:     "file": "{{.*}}",
 // CHECK-NEXT:     "line": 18
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "col": 3, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 3,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 16
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "col": 5, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 5,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 18
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "name": "b", 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "name": "b",
 // CHECK-NEXT:    "type": {
-// CHECK-NEXT:     "desugaredQualType": "C::(anonymous struct at {{.*}}:16:3)", 
+// CHECK-NEXT:     "desugaredQualType": "C::(anonymous struct at {{.*}}:16:3)",
 // CHECK-NEXT:     "qualType": "struct (anonymous struct at {{.*}}:16:3)"
 // CHECK-NEXT:    }
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "id": "0x{{.*}}", 
-// CHECK-NEXT:    "kind": "CXXRecordDecl", 
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "CXXRecordDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "col": 3, 
-// CHECK-NEXT:     "file": "{{.*}}", 
+// CHECK-NEXT:     "col": 3,
+// CHECK-NEXT:     "file": "{{.*}}",
 // CHECK-NEXT:     "line": 20
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "col": 3, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 3,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 20
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "col": 3, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 3,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 23
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "tagUsed": "union", 
-// CHECK-NEXT:    "completeDefinition": true, 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "tagUsed": "union",
+// CHECK-NEXT:    "completeDefinition": true,
 // CHECK-NEXT:    "definitionData": {
-// CHECK-NEXT:     "canPassInRegisters": true, 
+// CHECK-NEXT:     "canPassInRegisters": true,
 // CHECK-NEXT:     "copyAssign": {
-// CHECK-NEXT:      "hasConstParam": true, 
-// CHECK-NEXT:      "implicitHasConstParam": true, 
-// CHECK-NEXT:      "needsImplicit": true, 
+// CHECK-NEXT:      "hasConstParam": true,
+// CHECK-NEXT:      "implicitHasConstParam": true,
+// CHECK-NEXT:      "needsImplicit": true,
 // CHECK-NEXT:      "trivial": true
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "copyCtor": {
-// CHECK-NEXT:      "hasConstParam": true, 
-// CHECK-NEXT:      "implicitHasConstParam": true, 
-// CHECK-NEXT:      "needsImplicit": true, 
-// CHECK-NEXT:      "simple": true, 
+// CHECK-NEXT:      "hasConstParam": true,
+// CHECK-NEXT:      "implicitHasConstParam": true,
+// CHECK-NEXT:      "needsImplicit": true,
+// CHECK-NEXT:      "simple": true,
 // CHECK-NEXT:      "trivial": true
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "defaultCtor": {
-// CHECK-NEXT:      "exists": true, 
-// CHECK-NEXT:      "needsImplicit": true, 
+// CHECK-NEXT:      "exists": true,
+// CHECK-NEXT:      "needsImplicit": true,
 // CHECK-NEXT:      "trivial": true
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "dtor": {
-// CHECK-NEXT:      "irrelevant": true, 
-// CHECK-NEXT:      "needsImplicit": true, 
-// CHECK-NEXT:      "simple": true, 
-// CHECK-NEXT:      "trivial": true
-// CHECK-NEXT:     }, 
-// CHECK-NEXT:     "hasVariantMembers": true, 
-// CHECK-NEXT:     "isAggregate": true, 
-// CHECK-NEXT:     "isLiteral": true, 
-// CHECK-NEXT:     "isPOD": true, 
-// CHECK-NEXT:     "isStandardLayout": true, 
-// CHECK-NEXT:     "isTrivial": true, 
-// CHECK-NEXT:     "isTriviallyCopyable": true, 
+// CHECK-NEXT:      "irrelevant": true,
+// CHECK-NEXT:      "needsImplicit": true,
+// CHECK-NEXT:      "simple": true,
+// CHECK-NEXT:      "trivial": true
+// CHECK-NEXT:     },
+// CHECK-NEXT:     "hasVariantMembers": true,
+// CHECK-NEXT:     "isAggregate": true,
+// CHECK-NEXT:     "isLiteral": true,
+// CHECK-NEXT:     "isPOD": true,
+// CHECK-NEXT:     "isStandardLayout": true,
+// CHECK-NEXT:     "isTrivial": true,
+// CHECK-NEXT:     "isTriviallyCopyable": true,
 // CHECK-NEXT:     "moveAssign": {
-// CHECK-NEXT:      "exists": true, 
-// CHECK-NEXT:      "needsImplicit": true, 
-// CHECK-NEXT:      "simple": true, 
+// CHECK-NEXT:      "exists": true,
+// CHECK-NEXT:      "needsImplicit": true,
+// CHECK-NEXT:      "simple": true,
 // CHECK-NEXT:      "trivial": true
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "moveCtor": {
-// CHECK-NEXT:      "exists": true, 
-// CHECK-NEXT:      "needsImplicit": true, 
-// CHECK-NEXT:      "simple": true, 
+// CHECK-NEXT:      "exists": true,
+// CHECK-NEXT:      "needsImplicit": true,
+// CHECK-NEXT:      "simple": true,
 // CHECK-NEXT:      "trivial": true
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "inner": [
 // CHECK-NEXT:     {
-// CHECK-NEXT:      "id": "0x{{.*}}", 
-// CHECK-NEXT:      "kind": "FieldDecl", 
+// CHECK-NEXT:      "id": "0x{{.*}}",
+// CHECK-NEXT:      "kind": "FieldDecl",
 // CHECK-NEXT:      "loc": {
-// CHECK-NEXT:       "col": 9, 
-// CHECK-NEXT:       "file": "{{.*}}", 
+// CHECK-NEXT:       "col": 9,
+// CHECK-NEXT:       "file": "{{.*}}",
 // CHECK-NEXT:       "line": 21
-// CHECK-NEXT:      }, 
+// CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
-// CHECK-NEXT:        "col": 5, 
-// CHECK-NEXT:        "file": "{{.*}}", 
+// CHECK-NEXT:        "col": 5,
+// CHECK-NEXT:        "file": "{{.*}}",
 // CHECK-NEXT:        "line": 21
-// CHECK-NEXT:       }, 
+// CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
-// CHECK-NEXT:        "col": 9, 
-// CHECK-NEXT:        "file": "{{.*}}", 
+// CHECK-NEXT:        "col": 9,
+// CHECK-NEXT:        "file": "{{.*}}",
 // CHECK-NEXT:        "line": 21
 // CHECK-NEXT:       }
-// CHECK-NEXT:      }, 
-// CHECK-NEXT:      "name": "c", 
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "name": "c",
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "int"
 // CHECK-NEXT:      }
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     {
-// CHECK-NEXT:      "id": "0x{{.*}}", 
-// CHECK-NEXT:      "kind": "FieldDecl", 
+// CHECK-NEXT:      "id": "0x{{.*}}",
+// CHECK-NEXT:      "kind": "FieldDecl",
 // CHECK-NEXT:      "loc": {
-// CHECK-NEXT:       "col": 11, 
-// CHECK-NEXT:       "file": "{{.*}}", 
+// CHECK-NEXT:       "col": 11,
+// CHECK-NEXT:       "file": "{{.*}}",
 // CHECK-NEXT:       "line": 22
-// CHECK-NEXT:      }, 
+// CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
-// CHECK-NEXT:        "col": 5, 
-// CHECK-NEXT:        "file": "{{.*}}", 
+// CHECK-NEXT:        "col": 5,
+// CHECK-NEXT:        "file": "{{.*}}",
 // CHECK-NEXT:        "line": 22
-// CHECK-NEXT:       }, 
+// CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
-// CHECK-NEXT:        "col": 11, 
-// CHECK-NEXT:        "file": "{{.*}}", 
+// CHECK-NEXT:        "col": 11,
+// CHECK-NEXT:        "file": "{{.*}}",
 // CHECK-NEXT:        "line": 22
 // CHECK-NEXT:       }
-// CHECK-NEXT:      }, 
-// CHECK-NEXT:      "name": "d", 
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "name": "d",
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "float"
 // CHECK-NEXT:      }
 // CHECK-NEXT:     }
 // CHECK-NEXT:    ]
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "id": "0x{{.*}}", 
-// CHECK-NEXT:    "kind": "FieldDecl", 
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "FieldDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "col": 3, 
-// CHECK-NEXT:     "file": "{{.*}}", 
+// CHECK-NEXT:     "col": 3,
+// CHECK-NEXT:     "file": "{{.*}}",
 // CHECK-NEXT:     "line": 20
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "col": 3, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 3,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 20
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "col": 3, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 3,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 20
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "isImplicit": true, 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "isImplicit": true,
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "C::(anonymous union at {{.*}}:20:3)"
 // CHECK-NEXT:    }
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "id": "0x{{.*}}", 
-// CHECK-NEXT:    "kind": "IndirectFieldDecl", 
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "IndirectFieldDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "col": 9, 
-// CHECK-NEXT:     "file": "{{.*}}", 
+// CHECK-NEXT:     "col": 9,
+// CHECK-NEXT:     "file": "{{.*}}",
 // CHECK-NEXT:     "line": 21
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "col": 9, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 9,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 21
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "col": 9, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 9,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 21
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "isImplicit": true, 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "isImplicit": true,
 // CHECK-NEXT:    "name": "c"
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "id": "0x{{.*}}", 
-// CHECK-NEXT:    "kind": "IndirectFieldDecl", 
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "IndirectFieldDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "col": 11, 
-// CHECK-NEXT:     "file": "{{.*}}", 
+// CHECK-NEXT:     "col": 11,
+// CHECK-NEXT:     "file": "{{.*}}",
 // CHECK-NEXT:     "line": 22
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "col": 11, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 11,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 22
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "col": 11, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 11,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 22
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "isImplicit": true, 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "isImplicit": true,
 // CHECK-NEXT:    "name": "d"
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "id": "0x{{.*}}", 
-// CHECK-NEXT:    "kind": "CXXRecordDecl", 
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "CXXRecordDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "col": 3, 
-// CHECK-NEXT:     "file": "{{.*}}", 
+// CHECK-NEXT:     "col": 3,
+// CHECK-NEXT:     "file": "{{.*}}",
 // CHECK-NEXT:     "line": 25
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "col": 3, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 3,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 25
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "col": 3, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 3,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 27
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "tagUsed": "struct", 
-// CHECK-NEXT:    "completeDefinition": true, 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "tagUsed": "struct",
+// CHECK-NEXT:    "completeDefinition": true,
 // CHECK-NEXT:    "definitionData": {
-// CHECK-NEXT:     "canPassInRegisters": true, 
+// CHECK-NEXT:     "canPassInRegisters": true,
 // CHECK-NEXT:     "copyAssign": {
-// CHECK-NEXT:      "hasConstParam": true, 
-// CHECK-NEXT:      "implicitHasConstParam": true, 
-// CHECK-NEXT:      "needsImplicit": true, 
+// CHECK-NEXT:      "hasConstParam": true,
+// CHECK-NEXT:      "implicitHasConstParam": true,
+// CHECK-NEXT:      "needsImplicit": true,
 // CHECK-NEXT:      "trivial": true
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "copyCtor": {
-// CHECK-NEXT:      "hasConstParam": true, 
-// CHECK-NEXT:      "implicitHasConstParam": true, 
-// CHECK-NEXT:      "needsImplicit": true, 
-// CHECK-NEXT:      "simple": true, 
+// CHECK-NEXT:      "hasConstParam": true,
+// CHECK-NEXT:      "implicitHasConstParam": true,
+// CHECK-NEXT:      "needsImplicit": true,
+// CHECK-NEXT:      "simple": true,
 // CHECK-NEXT:      "trivial": true
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "defaultCtor": {
-// CHECK-NEXT:      "exists": true, 
-// CHECK-NEXT:      "needsImplicit": true, 
+// CHECK-NEXT:      "exists": true,
+// CHECK-NEXT:      "needsImplicit": true,
 // CHECK-NEXT:      "trivial": true
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "dtor": {
-// CHECK-NEXT:      "irrelevant": true, 
-// CHECK-NEXT:      "needsImplicit": true, 
-// CHECK-NEXT:      "simple": true, 
-// CHECK-NEXT:      "trivial": true
-// CHECK-NEXT:     }, 
-// CHECK-NEXT:     "isAggregate": true, 
-// CHECK-NEXT:     "isLiteral": true, 
-// CHECK-NEXT:     "isPOD": true, 
-// CHECK-NEXT:     "isStandardLayout": true, 
-// CHECK-NEXT:     "isTrivial": true, 
-// CHECK-NEXT:     "isTriviallyCopyable": true, 
+// CHECK-NEXT:      "irrelevant": true,
+// CHECK-NEXT:      "needsImplicit": true,
+// CHECK-NEXT:      "simple": true,
+// CHECK-NEXT:      "trivial": true
+// CHECK-NEXT:     },
+// CHECK-NEXT:     "isAggregate": true,
+// CHECK-NEXT:     "isLiteral": true,
+// CHECK-NEXT:     "isPOD": true,
+// CHECK-NEXT:     "isStandardLayout": true,
+// CHECK-NEXT:     "isTrivial": true,
+// CHECK-NEXT:     "isTriviallyCopyable": true,
 // CHECK-NEXT:     "moveAssign": {
-// CHECK-NEXT:      "exists": true, 
-// CHECK-NEXT:      "needsImplicit": true, 
-// CHECK-NEXT:      "simple": true, 
+// CHECK-NEXT:      "exists": true,
+// CHECK-NEXT:      "needsImplicit": true,
+// CHECK-NEXT:      "simple": true,
 // CHECK-NEXT:      "trivial": true
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "moveCtor": {
-// CHECK-NEXT:      "exists": true, 
-// CHECK-NEXT:      "needsImplicit": true, 
-// CHECK-NEXT:      "simple": true, 
+// CHECK-NEXT:      "exists": true,
+// CHECK-NEXT:      "needsImplicit": true,
+// CHECK-NEXT:      "simple": true,
 // CHECK-NEXT:      "trivial": true
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "inner": [
 // CHECK-NEXT:     {
-// CHECK-NEXT:      "id": "0x{{.*}}", 
-// CHECK-NEXT:      "kind": "FieldDecl", 
+// CHECK-NEXT:      "id": "0x{{.*}}",
+// CHECK-NEXT:      "kind": "FieldDecl",
 // CHECK-NEXT:      "loc": {
-// CHECK-NEXT:       "col": 9, 
-// CHECK-NEXT:       "file": "{{.*}}", 
+// CHECK-NEXT:       "col": 9,
+// CHECK-NEXT:       "file": "{{.*}}",
 // CHECK-NEXT:       "line": 26
-// CHECK-NEXT:      }, 
+// CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
-// CHECK-NEXT:        "col": 5, 
-// CHECK-NEXT:        "file": "{{.*}}", 
+// CHECK-NEXT:        "col": 5,
+// CHECK-NEXT:        "file": "{{.*}}",
 // CHECK-NEXT:        "line": 26
-// CHECK-NEXT:       }, 
+// CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
-// CHECK-NEXT:        "col": 9, 
-// CHECK-NEXT:        "file": "{{.*}}", 
+// CHECK-NEXT:        "col": 9,
+// CHECK-NEXT:        "file": "{{.*}}",
 // CHECK-NEXT:        "line": 26
 // CHECK-NEXT:       }
-// CHECK-NEXT:      }, 
-// CHECK-NEXT:      "name": "e", 
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "name": "e",
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "int"
 // CHECK-NEXT:      }
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     {
-// CHECK-NEXT:      "id": "0x{{.*}}", 
-// CHECK-NEXT:      "kind": "FieldDecl", 
+// CHECK-NEXT:      "id": "0x{{.*}}",
+// CHECK-NEXT:      "kind": "FieldDecl",
 // CHECK-NEXT:      "loc": {
-// CHECK-NEXT:       "col": 12, 
-// CHECK-NEXT:       "file": "{{.*}}", 
+// CHECK-NEXT:       "col": 12,
+// CHECK-NEXT:       "file": "{{.*}}",
 // CHECK-NEXT:       "line": 26
-// CHECK-NEXT:      }, 
+// CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
-// CHECK-NEXT:        "col": 5, 
-// CHECK-NEXT:        "file": "{{.*}}", 
+// CHECK-NEXT:        "col": 5,
+// CHECK-NEXT:        "file": "{{.*}}",
 // CHECK-NEXT:        "line": 26
-// CHECK-NEXT:       }, 
+// CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
-// CHECK-NEXT:        "col": 12, 
-// CHECK-NEXT:        "file": "{{.*}}", 
+// CHECK-NEXT:        "col": 12,
+// CHECK-NEXT:        "file": "{{.*}}",
 // CHECK-NEXT:        "line": 26
 // CHECK-NEXT:       }
-// CHECK-NEXT:      }, 
-// CHECK-NEXT:      "name": "f", 
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "name": "f",
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "int"
 // CHECK-NEXT:      }
 // CHECK-NEXT:     }
 // CHECK-NEXT:    ]
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "id": "0x{{.*}}", 
-// CHECK-NEXT:    "kind": "FieldDecl", 
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "FieldDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "col": 3, 
-// CHECK-NEXT:     "file": "{{.*}}", 
+// CHECK-NEXT:     "col": 3,
+// CHECK-NEXT:     "file": "{{.*}}",
 // CHECK-NEXT:     "line": 25
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "col": 3, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 3,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 25
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "col": 3, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 3,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 25
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "isImplicit": true, 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "isImplicit": true,
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "C::(anonymous struct at {{.*}}:25:3)"
 // CHECK-NEXT:    }
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "id": "0x{{.*}}", 
-// CHECK-NEXT:    "kind": "IndirectFieldDecl", 
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "IndirectFieldDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "col": 9, 
-// CHECK-NEXT:     "file": "{{.*}}", 
+// CHECK-NEXT:     "col": 9,
+// CHECK-NEXT:     "file": "{{.*}}",
 // CHECK-NEXT:     "line": 26
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "col": 9, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 9,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 26
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "col": 9, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 9,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 26
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "isImplicit": true, 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "isImplicit": true,
 // CHECK-NEXT:    "name": "e"
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "id": "0x{{.*}}", 
-// CHECK-NEXT:    "kind": "IndirectFieldDecl", 
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "IndirectFieldDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "col": 12, 
-// CHECK-NEXT:     "file": "{{.*}}", 
+// CHECK-NEXT:     "col": 12,
+// CHECK-NEXT:     "file": "{{.*}}",
 // CHECK-NEXT:     "line": 26
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "col": 12, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 12,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 26
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "col": 12, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 12,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 26
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "isImplicit": true, 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "isImplicit": true,
 // CHECK-NEXT:    "name": "f"
 // CHECK-NEXT:   }
 // CHECK-NEXT:  ]
 // CHECK-NEXT: }
 
 
-// CHECK:  "kind": "CXXRecordDecl", 
+// CHECK:  "kind": "CXXRecordDecl",
 // CHECK-NEXT:  "loc": {
-// CHECK-NEXT:   "col": 8, 
-// CHECK-NEXT:   "file": "{{.*}}", 
+// CHECK-NEXT:   "col": 8,
+// CHECK-NEXT:   "file": "{{.*}}",
 // CHECK-NEXT:   "line": 30
-// CHECK-NEXT:  }, 
+// CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
-// CHECK-NEXT:    "col": 1, 
-// CHECK-NEXT:    "file": "{{.*}}", 
+// CHECK-NEXT:    "col": 1,
+// CHECK-NEXT:    "file": "{{.*}}",
 // CHECK-NEXT:    "line": 30
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
-// CHECK-NEXT:    "col": 1, 
-// CHECK-NEXT:    "file": "{{.*}}", 
+// CHECK-NEXT:    "col": 1,
+// CHECK-NEXT:    "file": "{{.*}}",
 // CHECK-NEXT:    "line": 34
 // CHECK-NEXT:   }
-// CHECK-NEXT:  }, 
-// CHECK-NEXT:  "name": "D", 
-// CHECK-NEXT:  "tagUsed": "struct", 
-// CHECK-NEXT:  "completeDefinition": true, 
+// CHECK-NEXT:  },
+// CHECK-NEXT:  "name": "D",
+// CHECK-NEXT:  "tagUsed": "struct",
+// CHECK-NEXT:  "completeDefinition": true,
 // CHECK-NEXT:  "definitionData": {
-// CHECK-NEXT:   "canPassInRegisters": true, 
+// CHECK-NEXT:   "canPassInRegisters": true,
 // CHECK-NEXT:   "copyAssign": {
-// CHECK-NEXT:    "hasConstParam": true, 
-// CHECK-NEXT:    "implicitHasConstParam": true, 
-// CHECK-NEXT:    "needsImplicit": true, 
+// CHECK-NEXT:    "hasConstParam": true,
+// CHECK-NEXT:    "implicitHasConstParam": true,
+// CHECK-NEXT:    "needsImplicit": true,
 // CHECK-NEXT:    "trivial": true
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   "copyCtor": {
-// CHECK-NEXT:    "hasConstParam": true, 
-// CHECK-NEXT:    "implicitHasConstParam": true, 
-// CHECK-NEXT:    "needsImplicit": true, 
-// CHECK-NEXT:    "simple": true, 
+// CHECK-NEXT:    "hasConstParam": true,
+// CHECK-NEXT:    "implicitHasConstParam": true,
+// CHECK-NEXT:    "needsImplicit": true,
+// CHECK-NEXT:    "simple": true,
 // CHECK-NEXT:    "trivial": true
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   "defaultCtor": {
-// CHECK-NEXT:    "exists": true, 
-// CHECK-NEXT:    "needsImplicit": true, 
+// CHECK-NEXT:    "exists": true,
+// CHECK-NEXT:    "needsImplicit": true,
 // CHECK-NEXT:    "trivial": true
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   "dtor": {
-// CHECK-NEXT:    "irrelevant": true, 
-// CHECK-NEXT:    "needsImplicit": true, 
-// CHECK-NEXT:    "simple": true, 
-// CHECK-NEXT:    "trivial": true
-// CHECK-NEXT:   }, 
-// CHECK-NEXT:   "isAggregate": true, 
-// CHECK-NEXT:   "isLiteral": true, 
-// CHECK-NEXT:   "isPOD": true, 
-// CHECK-NEXT:   "isStandardLayout": true, 
-// CHECK-NEXT:   "isTrivial": true, 
-// CHECK-NEXT:   "isTriviallyCopyable": true, 
+// CHECK-NEXT:    "irrelevant": true,
+// CHECK-NEXT:    "needsImplicit": true,
+// CHECK-NEXT:    "simple": true,
+// CHECK-NEXT:    "trivial": true
+// CHECK-NEXT:   },
+// CHECK-NEXT:   "isAggregate": true,
+// CHECK-NEXT:   "isLiteral": true,
+// CHECK-NEXT:   "isPOD": true,
+// CHECK-NEXT:   "isStandardLayout": true,
+// CHECK-NEXT:   "isTrivial": true,
+// CHECK-NEXT:   "isTriviallyCopyable": true,
 // CHECK-NEXT:   "moveAssign": {
-// CHECK-NEXT:    "exists": true, 
-// CHECK-NEXT:    "needsImplicit": true, 
-// CHECK-NEXT:    "simple": true, 
+// CHECK-NEXT:    "exists": true,
+// CHECK-NEXT:    "needsImplicit": true,
+// CHECK-NEXT:    "simple": true,
 // CHECK-NEXT:    "trivial": true
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   "moveCtor": {
-// CHECK-NEXT:    "exists": true, 
-// CHECK-NEXT:    "needsImplicit": true, 
-// CHECK-NEXT:    "simple": true, 
+// CHECK-NEXT:    "exists": true,
+// CHECK-NEXT:    "needsImplicit": true,
+// CHECK-NEXT:    "simple": true,
 // CHECK-NEXT:    "trivial": true
 // CHECK-NEXT:   }
-// CHECK-NEXT:  }, 
+// CHECK-NEXT:  },
 // CHECK-NEXT:  "inner": [
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "id": "0x{{.*}}", 
-// CHECK-NEXT:    "kind": "CXXRecordDecl", 
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "CXXRecordDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "col": 8, 
-// CHECK-NEXT:     "file": "{{.*}}", 
+// CHECK-NEXT:     "col": 8,
+// CHECK-NEXT:     "file": "{{.*}}",
 // CHECK-NEXT:     "line": 30
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "col": 1, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 1,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 30
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "col": 8, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 8,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 30
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "isImplicit": true, 
-// CHECK-NEXT:    "name": "D", 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "isImplicit": true,
+// CHECK-NEXT:    "name": "D",
 // CHECK-NEXT:    "tagUsed": "struct"
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "id": "0x{{.*}}", 
-// CHECK-NEXT:    "kind": "FieldDecl", 
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "FieldDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "col": 7, 
-// CHECK-NEXT:     "file": "{{.*}}", 
+// CHECK-NEXT:     "col": 7,
+// CHECK-NEXT:     "file": "{{.*}}",
 // CHECK-NEXT:     "line": 31
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "col": 3, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 3,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 31
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "col": 7, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 7,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 31
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "name": "a", 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "name": "a",
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "int"
 // CHECK-NEXT:    }
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "id": "0x{{.*}}", 
-// CHECK-NEXT:    "kind": "FieldDecl", 
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "FieldDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "col": 7, 
-// CHECK-NEXT:     "file": "{{.*}}", 
+// CHECK-NEXT:     "col": 7,
+// CHECK-NEXT:     "file": "{{.*}}",
 // CHECK-NEXT:     "line": 32
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "col": 3, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 3,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 32
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "col": 11, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 11,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 32
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "name": "b", 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "name": "b",
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "int [10]"
 // CHECK-NEXT:    }
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "id": "0x{{.*}}", 
-// CHECK-NEXT:    "kind": "FieldDecl", 
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "FieldDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "col": 7, 
-// CHECK-NEXT:     "file": "{{.*}}", 
+// CHECK-NEXT:     "col": 7,
+// CHECK-NEXT:     "file": "{{.*}}",
 // CHECK-NEXT:     "line": 33
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "col": 3, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 3,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 33
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "col": 9, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 9,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 33
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "name": "c", 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "name": "c",
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "int []"
 // CHECK-NEXT:    }
@@ -1313,456 +1323,456 @@ struct Derived6 : virtual public Bases..
 // CHECK-NEXT: }
 
 
-// CHECK:  "kind": "CXXRecordDecl", 
+// CHECK:  "kind": "CXXRecordDecl",
 // CHECK-NEXT:  "loc": {
-// CHECK-NEXT:   "col": 7, 
-// CHECK-NEXT:   "file": "{{.*}}", 
+// CHECK-NEXT:   "col": 7,
+// CHECK-NEXT:   "file": "{{.*}}",
 // CHECK-NEXT:   "line": 36
-// CHECK-NEXT:  }, 
+// CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
-// CHECK-NEXT:    "col": 1, 
-// CHECK-NEXT:    "file": "{{.*}}", 
+// CHECK-NEXT:    "col": 1,
+// CHECK-NEXT:    "file": "{{.*}}",
 // CHECK-NEXT:    "line": 36
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
-// CHECK-NEXT:    "col": 7, 
-// CHECK-NEXT:    "file": "{{.*}}", 
+// CHECK-NEXT:    "col": 7,
+// CHECK-NEXT:    "file": "{{.*}}",
 // CHECK-NEXT:    "line": 36
 // CHECK-NEXT:   }
-// CHECK-NEXT:  }, 
-// CHECK-NEXT:  "name": "E", 
+// CHECK-NEXT:  },
+// CHECK-NEXT:  "name": "E",
 // CHECK-NEXT:  "tagUsed": "union"
 // CHECK-NEXT: }
 
 
-// CHECK:  "kind": "CXXRecordDecl", 
+// CHECK:  "kind": "CXXRecordDecl",
 // CHECK-NEXT:  "loc": {
-// CHECK-NEXT:   "col": 7, 
-// CHECK-NEXT:   "file": "{{.*}}", 
+// CHECK-NEXT:   "col": 7,
+// CHECK-NEXT:   "file": "{{.*}}",
 // CHECK-NEXT:   "line": 38
-// CHECK-NEXT:  }, 
+// CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
-// CHECK-NEXT:    "col": 1, 
-// CHECK-NEXT:    "file": "{{.*}}", 
+// CHECK-NEXT:    "col": 1,
+// CHECK-NEXT:    "file": "{{.*}}",
 // CHECK-NEXT:    "line": 38
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
-// CHECK-NEXT:    "col": 7, 
-// CHECK-NEXT:    "file": "{{.*}}", 
+// CHECK-NEXT:    "col": 7,
+// CHECK-NEXT:    "file": "{{.*}}",
 // CHECK-NEXT:    "line": 38
 // CHECK-NEXT:   }
-// CHECK-NEXT:  }, 
-// CHECK-NEXT:  "name": "F", 
+// CHECK-NEXT:  },
+// CHECK-NEXT:  "name": "F",
 // CHECK-NEXT:  "tagUsed": "union"
 // CHECK-NEXT: }
 
 
-// CHECK:  "kind": "CXXRecordDecl", 
+// CHECK:  "kind": "CXXRecordDecl",
 // CHECK-NEXT:  "loc": {
-// CHECK-NEXT:   "col": 7, 
-// CHECK-NEXT:   "file": "{{.*}}", 
+// CHECK-NEXT:   "col": 7,
+// CHECK-NEXT:   "file": "{{.*}}",
 // CHECK-NEXT:   "line": 40
-// CHECK-NEXT:  }, 
+// CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
-// CHECK-NEXT:    "col": 1, 
-// CHECK-NEXT:    "file": "{{.*}}", 
+// CHECK-NEXT:    "col": 1,
+// CHECK-NEXT:    "file": "{{.*}}",
 // CHECK-NEXT:    "line": 40
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
-// CHECK-NEXT:    "col": 1, 
-// CHECK-NEXT:    "file": "{{.*}}", 
+// CHECK-NEXT:    "col": 1,
+// CHECK-NEXT:    "file": "{{.*}}",
 // CHECK-NEXT:    "line": 47
 // CHECK-NEXT:   }
-// CHECK-NEXT:  }, 
-// CHECK-NEXT:  "previousDecl": "0x{{.*}}", 
-// CHECK-NEXT:  "name": "E", 
-// CHECK-NEXT:  "tagUsed": "union", 
-// CHECK-NEXT:  "completeDefinition": true, 
+// CHECK-NEXT:  },
+// CHECK-NEXT:  "previousDecl": "0x{{.*}}",
+// CHECK-NEXT:  "name": "E",
+// CHECK-NEXT:  "tagUsed": "union",
+// CHECK-NEXT:  "completeDefinition": true,
 // CHECK-NEXT:  "definitionData": {
-// CHECK-NEXT:   "canPassInRegisters": true, 
+// CHECK-NEXT:   "canPassInRegisters": true,
 // CHECK-NEXT:   "copyAssign": {
-// CHECK-NEXT:    "hasConstParam": true, 
-// CHECK-NEXT:    "implicitHasConstParam": true, 
-// CHECK-NEXT:    "needsImplicit": true, 
+// CHECK-NEXT:    "hasConstParam": true,
+// CHECK-NEXT:    "implicitHasConstParam": true,
+// CHECK-NEXT:    "needsImplicit": true,
 // CHECK-NEXT:    "trivial": true
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   "copyCtor": {
-// CHECK-NEXT:    "hasConstParam": true, 
-// CHECK-NEXT:    "implicitHasConstParam": true, 
-// CHECK-NEXT:    "needsImplicit": true, 
-// CHECK-NEXT:    "simple": true, 
+// CHECK-NEXT:    "hasConstParam": true,
+// CHECK-NEXT:    "implicitHasConstParam": true,
+// CHECK-NEXT:    "needsImplicit": true,
+// CHECK-NEXT:    "simple": true,
 // CHECK-NEXT:    "trivial": true
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   "defaultCtor": {
-// CHECK-NEXT:    "exists": true, 
-// CHECK-NEXT:    "needsImplicit": true, 
+// CHECK-NEXT:    "exists": true,
+// CHECK-NEXT:    "needsImplicit": true,
 // CHECK-NEXT:    "trivial": true
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   "dtor": {
-// CHECK-NEXT:    "irrelevant": true, 
-// CHECK-NEXT:    "needsImplicit": true, 
-// CHECK-NEXT:    "simple": true, 
-// CHECK-NEXT:    "trivial": true
-// CHECK-NEXT:   }, 
-// CHECK-NEXT:   "hasVariantMembers": true, 
-// CHECK-NEXT:   "isAggregate": true, 
-// CHECK-NEXT:   "isLiteral": true, 
-// CHECK-NEXT:   "isPOD": true, 
-// CHECK-NEXT:   "isStandardLayout": true, 
-// CHECK-NEXT:   "isTrivial": true, 
-// CHECK-NEXT:   "isTriviallyCopyable": true, 
+// CHECK-NEXT:    "irrelevant": true,
+// CHECK-NEXT:    "needsImplicit": true,
+// CHECK-NEXT:    "simple": true,
+// CHECK-NEXT:    "trivial": true
+// CHECK-NEXT:   },
+// CHECK-NEXT:   "hasVariantMembers": true,
+// CHECK-NEXT:   "isAggregate": true,
+// CHECK-NEXT:   "isLiteral": true,
+// CHECK-NEXT:   "isPOD": true,
+// CHECK-NEXT:   "isStandardLayout": true,
+// CHECK-NEXT:   "isTrivial": true,
+// CHECK-NEXT:   "isTriviallyCopyable": true,
 // CHECK-NEXT:   "moveAssign": {
-// CHECK-NEXT:    "exists": true, 
-// CHECK-NEXT:    "needsImplicit": true, 
-// CHECK-NEXT:    "simple": true, 
+// CHECK-NEXT:    "exists": true,
+// CHECK-NEXT:    "needsImplicit": true,
+// CHECK-NEXT:    "simple": true,
 // CHECK-NEXT:    "trivial": true
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   "moveCtor": {
-// CHECK-NEXT:    "exists": true, 
-// CHECK-NEXT:    "needsImplicit": true, 
-// CHECK-NEXT:    "simple": true, 
+// CHECK-NEXT:    "exists": true,
+// CHECK-NEXT:    "needsImplicit": true,
+// CHECK-NEXT:    "simple": true,
 // CHECK-NEXT:    "trivial": true
 // CHECK-NEXT:   }
-// CHECK-NEXT:  }, 
+// CHECK-NEXT:  },
 // CHECK-NEXT:  "inner": [
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "id": "0x{{.*}}", 
-// CHECK-NEXT:    "kind": "CXXRecordDecl", 
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "CXXRecordDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "col": 7, 
-// CHECK-NEXT:     "file": "{{.*}}", 
+// CHECK-NEXT:     "col": 7,
+// CHECK-NEXT:     "file": "{{.*}}",
 // CHECK-NEXT:     "line": 40
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "col": 1, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 1,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 40
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "col": 7, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 7,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 40
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "isImplicit": true, 
-// CHECK-NEXT:    "name": "E", 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "isImplicit": true,
+// CHECK-NEXT:    "name": "E",
 // CHECK-NEXT:    "tagUsed": "union"
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "id": "0x{{.*}}", 
-// CHECK-NEXT:    "kind": "FieldDecl", 
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "FieldDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "col": 7, 
-// CHECK-NEXT:     "file": "{{.*}}", 
+// CHECK-NEXT:     "col": 7,
+// CHECK-NEXT:     "file": "{{.*}}",
 // CHECK-NEXT:     "line": 41
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "col": 3, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 3,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 41
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "col": 7, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 7,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 41
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "name": "a", 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "name": "a",
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "int"
 // CHECK-NEXT:    }
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "id": "0x{{.*}}", 
-// CHECK-NEXT:    "kind": "FieldDecl", 
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "FieldDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "col": 7, 
-// CHECK-NEXT:     "file": "{{.*}}", 
+// CHECK-NEXT:     "col": 7,
+// CHECK-NEXT:     "file": "{{.*}}",
 // CHECK-NEXT:     "line": 42
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "col": 3, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 3,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 42
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "col": 7, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 7,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 42
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "name": "b", 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "name": "b",
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "int"
 // CHECK-NEXT:    }
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "id": "0x{{.*}}", 
-// CHECK-NEXT:    "kind": "FieldDecl", 
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "FieldDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "col": 10, 
-// CHECK-NEXT:     "file": "{{.*}}", 
+// CHECK-NEXT:     "col": 10,
+// CHECK-NEXT:     "file": "{{.*}}",
 // CHECK-NEXT:     "line": 42
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "col": 3, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 3,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 42
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "col": 10, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 10,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 42
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "name": "c", 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "name": "c",
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "int"
 // CHECK-NEXT:    }
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "id": "0x{{.*}}", 
-// CHECK-NEXT:    "kind": "FieldDecl", 
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "FieldDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "col": 7, 
-// CHECK-NEXT:     "file": "{{.*}}", 
+// CHECK-NEXT:     "col": 7,
+// CHECK-NEXT:     "file": "{{.*}}",
 // CHECK-NEXT:     "line": 43
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "col": 3, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 3,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 43
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "col": 11, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 11,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 43
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "name": "d", 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "name": "d",
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "int"
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "isBitfield": true, 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "isBitfield": true,
 // CHECK-NEXT:    "inner": [
 // CHECK-NEXT:     {
-// CHECK-NEXT:      "id": "0x{{.*}}", 
-// CHECK-NEXT:      "kind": "ConstantExpr", 
+// CHECK-NEXT:      "id": "0x{{.*}}",
+// CHECK-NEXT:      "kind": "ConstantExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
-// CHECK-NEXT:        "col": 11, 
-// CHECK-NEXT:        "file": "{{.*}}", 
+// CHECK-NEXT:        "col": 11,
+// CHECK-NEXT:        "file": "{{.*}}",
 // CHECK-NEXT:        "line": 43
-// CHECK-NEXT:       }, 
+// CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
-// CHECK-NEXT:        "col": 11, 
-// CHECK-NEXT:        "file": "{{.*}}", 
+// CHECK-NEXT:        "col": 11,
+// CHECK-NEXT:        "file": "{{.*}}",
 // CHECK-NEXT:        "line": 43
 // CHECK-NEXT:       }
-// CHECK-NEXT:      }, 
+// CHECK-NEXT:      },
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "int"
-// CHECK-NEXT:      }, 
-// CHECK-NEXT:      "valueCategory": "rvalue", 
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "valueCategory": "rvalue",
 // CHECK-NEXT:      "value": "12",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
-// CHECK-NEXT:        "id": "0x{{.*}}", 
-// CHECK-NEXT:        "kind": "IntegerLiteral", 
+// CHECK-NEXT:        "id": "0x{{.*}}",
+// CHECK-NEXT:        "kind": "IntegerLiteral",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
-// CHECK-NEXT:          "col": 11, 
-// CHECK-NEXT:          "file": "{{.*}}", 
+// CHECK-NEXT:          "col": 11,
+// CHECK-NEXT:          "file": "{{.*}}",
 // CHECK-NEXT:          "line": 43
-// CHECK-NEXT:         }, 
+// CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "col": 11, 
-// CHECK-NEXT:          "file": "{{.*}}", 
+// CHECK-NEXT:          "col": 11,
+// CHECK-NEXT:          "file": "{{.*}}",
 // CHECK-NEXT:          "line": 43
 // CHECK-NEXT:         }
-// CHECK-NEXT:        }, 
+// CHECK-NEXT:        },
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int"
-// CHECK-NEXT:        }, 
-// CHECK-NEXT:        "valueCategory": "rvalue", 
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "valueCategory": "rvalue",
 // CHECK-NEXT:        "value": "12"
 // CHECK-NEXT:       }
 // CHECK-NEXT:      ]
 // CHECK-NEXT:     }
 // CHECK-NEXT:    ]
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "id": "0x{{.*}}", 
-// CHECK-NEXT:    "kind": "FieldDecl", 
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "FieldDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "col": 7, 
-// CHECK-NEXT:     "file": "{{.*}}", 
+// CHECK-NEXT:     "col": 7,
+// CHECK-NEXT:     "file": "{{.*}}",
 // CHECK-NEXT:     "line": 44
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "col": 3, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 3,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 44
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "col": 9, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 9,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 44
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "int"
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "isBitfield": true, 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "isBitfield": true,
 // CHECK-NEXT:    "inner": [
 // CHECK-NEXT:     {
-// CHECK-NEXT:      "id": "0x{{.*}}", 
-// CHECK-NEXT:      "kind": "ConstantExpr", 
+// CHECK-NEXT:      "id": "0x{{.*}}",
+// CHECK-NEXT:      "kind": "ConstantExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
-// CHECK-NEXT:        "col": 9, 
-// CHECK-NEXT:        "file": "{{.*}}", 
+// CHECK-NEXT:        "col": 9,
+// CHECK-NEXT:        "file": "{{.*}}",
 // CHECK-NEXT:        "line": 44
-// CHECK-NEXT:       }, 
+// CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
-// CHECK-NEXT:        "col": 9, 
-// CHECK-NEXT:        "file": "{{.*}}", 
+// CHECK-NEXT:        "col": 9,
+// CHECK-NEXT:        "file": "{{.*}}",
 // CHECK-NEXT:        "line": 44
 // CHECK-NEXT:       }
-// CHECK-NEXT:      }, 
+// CHECK-NEXT:      },
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "int"
-// CHECK-NEXT:      }, 
-// CHECK-NEXT:      "valueCategory": "rvalue", 
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "valueCategory": "rvalue",
 // CHECK-NEXT:      "value": "0",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
-// CHECK-NEXT:        "id": "0x{{.*}}", 
-// CHECK-NEXT:        "kind": "IntegerLiteral", 
+// CHECK-NEXT:        "id": "0x{{.*}}",
+// CHECK-NEXT:        "kind": "IntegerLiteral",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
-// CHECK-NEXT:          "col": 9, 
-// CHECK-NEXT:          "file": "{{.*}}", 
+// CHECK-NEXT:          "col": 9,
+// CHECK-NEXT:          "file": "{{.*}}",
 // CHECK-NEXT:          "line": 44
-// CHECK-NEXT:         }, 
+// CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "col": 9, 
-// CHECK-NEXT:          "file": "{{.*}}", 
+// CHECK-NEXT:          "col": 9,
+// CHECK-NEXT:          "file": "{{.*}}",
 // CHECK-NEXT:          "line": 44
 // CHECK-NEXT:         }
-// CHECK-NEXT:        }, 
+// CHECK-NEXT:        },
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int"
-// CHECK-NEXT:        }, 
-// CHECK-NEXT:        "valueCategory": "rvalue", 
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "valueCategory": "rvalue",
 // CHECK-NEXT:        "value": "0"
 // CHECK-NEXT:       }
 // CHECK-NEXT:      ]
 // CHECK-NEXT:     }
 // CHECK-NEXT:    ]
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "id": "0x{{.*}}", 
-// CHECK-NEXT:    "kind": "FieldDecl", 
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "FieldDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "col": 7, 
-// CHECK-NEXT:     "file": "{{.*}}", 
+// CHECK-NEXT:     "col": 7,
+// CHECK-NEXT:     "file": "{{.*}}",
 // CHECK-NEXT:     "line": 45
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "col": 3, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 3,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 45
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "col": 11, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 11,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 45
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "name": "e", 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "name": "e",
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "int"
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "isBitfield": true, 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "isBitfield": true,
 // CHECK-NEXT:    "inner": [
 // CHECK-NEXT:     {
-// CHECK-NEXT:      "id": "0x{{.*}}", 
-// CHECK-NEXT:      "kind": "ConstantExpr", 
+// CHECK-NEXT:      "id": "0x{{.*}}",
+// CHECK-NEXT:      "kind": "ConstantExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
-// CHECK-NEXT:        "col": 11, 
-// CHECK-NEXT:        "file": "{{.*}}", 
+// CHECK-NEXT:        "col": 11,
+// CHECK-NEXT:        "file": "{{.*}}",
 // CHECK-NEXT:        "line": 45
-// CHECK-NEXT:       }, 
+// CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
-// CHECK-NEXT:        "col": 11, 
-// CHECK-NEXT:        "file": "{{.*}}", 
+// CHECK-NEXT:        "col": 11,
+// CHECK-NEXT:        "file": "{{.*}}",
 // CHECK-NEXT:        "line": 45
 // CHECK-NEXT:       }
-// CHECK-NEXT:      }, 
+// CHECK-NEXT:      },
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "int"
-// CHECK-NEXT:      }, 
-// CHECK-NEXT:      "valueCategory": "rvalue", 
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "valueCategory": "rvalue",
 // CHECK-NEXT:      "value": "10",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
-// CHECK-NEXT:        "id": "0x{{.*}}", 
-// CHECK-NEXT:        "kind": "IntegerLiteral", 
+// CHECK-NEXT:        "id": "0x{{.*}}",
+// CHECK-NEXT:        "kind": "IntegerLiteral",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
-// CHECK-NEXT:          "col": 11, 
-// CHECK-NEXT:          "file": "{{.*}}", 
+// CHECK-NEXT:          "col": 11,
+// CHECK-NEXT:          "file": "{{.*}}",
 // CHECK-NEXT:          "line": 45
-// CHECK-NEXT:         }, 
+// CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "col": 11, 
-// CHECK-NEXT:          "file": "{{.*}}", 
+// CHECK-NEXT:          "col": 11,
+// CHECK-NEXT:          "file": "{{.*}}",
 // CHECK-NEXT:          "line": 45
 // CHECK-NEXT:         }
-// CHECK-NEXT:        }, 
+// CHECK-NEXT:        },
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int"
-// CHECK-NEXT:        }, 
-// CHECK-NEXT:        "valueCategory": "rvalue", 
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "valueCategory": "rvalue",
 // CHECK-NEXT:        "value": "10"
 // CHECK-NEXT:       }
 // CHECK-NEXT:      ]
 // CHECK-NEXT:     }
 // CHECK-NEXT:    ]
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "id": "0x{{.*}}", 
-// CHECK-NEXT:    "kind": "FieldDecl", 
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "FieldDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "col": 6, 
-// CHECK-NEXT:     "file": "{{.*}}", 
+// CHECK-NEXT:     "col": 6,
+// CHECK-NEXT:     "file": "{{.*}}",
 // CHECK-NEXT:     "line": 46
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "col": 3, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 3,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 46
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "col": 6, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 6,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 46
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "name": "f", 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "name": "f",
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "B *"
 // CHECK-NEXT:    }
@@ -1771,2342 +1781,2342 @@ struct Derived6 : virtual public Bases..
 // CHECK-NEXT: }
 
 
-// CHECK:  "kind": "CXXRecordDecl", 
+// CHECK:  "kind": "CXXRecordDecl",
 // CHECK-NEXT:  "loc": {
-// CHECK-NEXT:   "col": 7, 
-// CHECK-NEXT:   "file": "{{.*}}", 
+// CHECK-NEXT:   "col": 7,
+// CHECK-NEXT:   "file": "{{.*}}",
 // CHECK-NEXT:   "line": 49
-// CHECK-NEXT:  }, 
+// CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
-// CHECK-NEXT:    "col": 1, 
-// CHECK-NEXT:    "file": "{{.*}}", 
+// CHECK-NEXT:    "col": 1,
+// CHECK-NEXT:    "file": "{{.*}}",
 // CHECK-NEXT:    "line": 49
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
-// CHECK-NEXT:    "col": 1, 
-// CHECK-NEXT:    "file": "{{.*}}", 
+// CHECK-NEXT:    "col": 1,
+// CHECK-NEXT:    "file": "{{.*}}",
 // CHECK-NEXT:    "line": 62
 // CHECK-NEXT:   }
-// CHECK-NEXT:  }, 
-// CHECK-NEXT:  "name": "G", 
-// CHECK-NEXT:  "tagUsed": "union", 
-// CHECK-NEXT:  "completeDefinition": true, 
+// CHECK-NEXT:  },
+// CHECK-NEXT:  "name": "G",
+// CHECK-NEXT:  "tagUsed": "union",
+// CHECK-NEXT:  "completeDefinition": true,
 // CHECK-NEXT:  "definitionData": {
-// CHECK-NEXT:   "canPassInRegisters": true, 
+// CHECK-NEXT:   "canPassInRegisters": true,
 // CHECK-NEXT:   "copyAssign": {
-// CHECK-NEXT:    "hasConstParam": true, 
-// CHECK-NEXT:    "implicitHasConstParam": true, 
-// CHECK-NEXT:    "needsImplicit": true, 
+// CHECK-NEXT:    "hasConstParam": true,
+// CHECK-NEXT:    "implicitHasConstParam": true,
+// CHECK-NEXT:    "needsImplicit": true,
 // CHECK-NEXT:    "trivial": true
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   "copyCtor": {
-// CHECK-NEXT:    "hasConstParam": true, 
-// CHECK-NEXT:    "implicitHasConstParam": true, 
-// CHECK-NEXT:    "needsImplicit": true, 
-// CHECK-NEXT:    "simple": true, 
+// CHECK-NEXT:    "hasConstParam": true,
+// CHECK-NEXT:    "implicitHasConstParam": true,
+// CHECK-NEXT:    "needsImplicit": true,
+// CHECK-NEXT:    "simple": true,
 // CHECK-NEXT:    "trivial": true
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   "defaultCtor": {
-// CHECK-NEXT:    "exists": true, 
-// CHECK-NEXT:    "needsImplicit": true, 
+// CHECK-NEXT:    "exists": true,
+// CHECK-NEXT:    "needsImplicit": true,
 // CHECK-NEXT:    "trivial": true
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   "dtor": {
-// CHECK-NEXT:    "irrelevant": true, 
-// CHECK-NEXT:    "needsImplicit": true, 
-// CHECK-NEXT:    "simple": true, 
-// CHECK-NEXT:    "trivial": true
-// CHECK-NEXT:   }, 
-// CHECK-NEXT:   "hasVariantMembers": true, 
-// CHECK-NEXT:   "isAggregate": true, 
-// CHECK-NEXT:   "isLiteral": true, 
-// CHECK-NEXT:   "isPOD": true, 
-// CHECK-NEXT:   "isStandardLayout": true, 
-// CHECK-NEXT:   "isTrivial": true, 
-// CHECK-NEXT:   "isTriviallyCopyable": true, 
+// CHECK-NEXT:    "irrelevant": true,
+// CHECK-NEXT:    "needsImplicit": true,
+// CHECK-NEXT:    "simple": true,
+// CHECK-NEXT:    "trivial": true
+// CHECK-NEXT:   },
+// CHECK-NEXT:   "hasVariantMembers": true,
+// CHECK-NEXT:   "isAggregate": true,
+// CHECK-NEXT:   "isLiteral": true,
+// CHECK-NEXT:   "isPOD": true,
+// CHECK-NEXT:   "isStandardLayout": true,
+// CHECK-NEXT:   "isTrivial": true,
+// CHECK-NEXT:   "isTriviallyCopyable": true,
 // CHECK-NEXT:   "moveAssign": {
-// CHECK-NEXT:    "exists": true, 
-// CHECK-NEXT:    "needsImplicit": true, 
-// CHECK-NEXT:    "simple": true, 
+// CHECK-NEXT:    "exists": true,
+// CHECK-NEXT:    "needsImplicit": true,
+// CHECK-NEXT:    "simple": true,
 // CHECK-NEXT:    "trivial": true
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   "moveCtor": {
-// CHECK-NEXT:    "exists": true, 
-// CHECK-NEXT:    "needsImplicit": true, 
-// CHECK-NEXT:    "simple": true, 
+// CHECK-NEXT:    "exists": true,
+// CHECK-NEXT:    "needsImplicit": true,
+// CHECK-NEXT:    "simple": true,
 // CHECK-NEXT:    "trivial": true
 // CHECK-NEXT:   }
-// CHECK-NEXT:  }, 
+// CHECK-NEXT:  },
 // CHECK-NEXT:  "inner": [
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "id": "0x{{.*}}", 
-// CHECK-NEXT:    "kind": "CXXRecordDecl", 
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "CXXRecordDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "col": 7, 
-// CHECK-NEXT:     "file": "{{.*}}", 
+// CHECK-NEXT:     "col": 7,
+// CHECK-NEXT:     "file": "{{.*}}",
 // CHECK-NEXT:     "line": 49
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "col": 1, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 1,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 49
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "col": 7, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 7,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 49
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "isImplicit": true, 
-// CHECK-NEXT:    "name": "G", 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "isImplicit": true,
+// CHECK-NEXT:    "name": "G",
 // CHECK-NEXT:    "tagUsed": "union"
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "id": "0x{{.*}}", 
-// CHECK-NEXT:    "kind": "CXXRecordDecl", 
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "CXXRecordDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "col": 3, 
-// CHECK-NEXT:     "file": "{{.*}}", 
+// CHECK-NEXT:     "col": 3,
+// CHECK-NEXT:     "file": "{{.*}}",
 // CHECK-NEXT:     "line": 50
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "col": 3, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 3,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 50
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "col": 3, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 3,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 52
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "tagUsed": "struct", 
-// CHECK-NEXT:    "completeDefinition": true, 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "tagUsed": "struct",
+// CHECK-NEXT:    "completeDefinition": true,
 // CHECK-NEXT:    "definitionData": {
-// CHECK-NEXT:     "canPassInRegisters": true, 
+// CHECK-NEXT:     "canPassInRegisters": true,
 // CHECK-NEXT:     "copyAssign": {
-// CHECK-NEXT:      "hasConstParam": true, 
-// CHECK-NEXT:      "implicitHasConstParam": true, 
-// CHECK-NEXT:      "needsImplicit": true, 
+// CHECK-NEXT:      "hasConstParam": true,
+// CHECK-NEXT:      "implicitHasConstParam": true,
+// CHECK-NEXT:      "needsImplicit": true,
 // CHECK-NEXT:      "trivial": true
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "copyCtor": {
-// CHECK-NEXT:      "hasConstParam": true, 
-// CHECK-NEXT:      "implicitHasConstParam": true, 
-// CHECK-NEXT:      "needsImplicit": true, 
-// CHECK-NEXT:      "simple": true, 
+// CHECK-NEXT:      "hasConstParam": true,
+// CHECK-NEXT:      "implicitHasConstParam": true,
+// CHECK-NEXT:      "needsImplicit": true,
+// CHECK-NEXT:      "simple": true,
 // CHECK-NEXT:      "trivial": true
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "defaultCtor": {
-// CHECK-NEXT:      "exists": true, 
-// CHECK-NEXT:      "needsImplicit": true, 
+// CHECK-NEXT:      "exists": true,
+// CHECK-NEXT:      "needsImplicit": true,
 // CHECK-NEXT:      "trivial": true
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "dtor": {
-// CHECK-NEXT:      "irrelevant": true, 
-// CHECK-NEXT:      "needsImplicit": true, 
-// CHECK-NEXT:      "simple": true, 
-// CHECK-NEXT:      "trivial": true
-// CHECK-NEXT:     }, 
-// CHECK-NEXT:     "isAggregate": true, 
-// CHECK-NEXT:     "isLiteral": true, 
-// CHECK-NEXT:     "isPOD": true, 
-// CHECK-NEXT:     "isStandardLayout": true, 
-// CHECK-NEXT:     "isTrivial": true, 
-// CHECK-NEXT:     "isTriviallyCopyable": true, 
+// CHECK-NEXT:      "irrelevant": true,
+// CHECK-NEXT:      "needsImplicit": true,
+// CHECK-NEXT:      "simple": true,
+// CHECK-NEXT:      "trivial": true
+// CHECK-NEXT:     },
+// CHECK-NEXT:     "isAggregate": true,
+// CHECK-NEXT:     "isLiteral": true,
+// CHECK-NEXT:     "isPOD": true,
+// CHECK-NEXT:     "isStandardLayout": true,
+// CHECK-NEXT:     "isTrivial": true,
+// CHECK-NEXT:     "isTriviallyCopyable": true,
 // CHECK-NEXT:     "moveAssign": {
-// CHECK-NEXT:      "exists": true, 
-// CHECK-NEXT:      "needsImplicit": true, 
-// CHECK-NEXT:      "simple": true, 
+// CHECK-NEXT:      "exists": true,
+// CHECK-NEXT:      "needsImplicit": true,
+// CHECK-NEXT:      "simple": true,
 // CHECK-NEXT:      "trivial": true
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "moveCtor": {
-// CHECK-NEXT:      "exists": true, 
-// CHECK-NEXT:      "needsImplicit": true, 
-// CHECK-NEXT:      "simple": true, 
+// CHECK-NEXT:      "exists": true,
+// CHECK-NEXT:      "needsImplicit": true,
+// CHECK-NEXT:      "simple": true,
 // CHECK-NEXT:      "trivial": true
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "inner": [
 // CHECK-NEXT:     {
-// CHECK-NEXT:      "id": "0x{{.*}}", 
-// CHECK-NEXT:      "kind": "FieldDecl", 
+// CHECK-NEXT:      "id": "0x{{.*}}",
+// CHECK-NEXT:      "kind": "FieldDecl",
 // CHECK-NEXT:      "loc": {
-// CHECK-NEXT:       "col": 9, 
-// CHECK-NEXT:       "file": "{{.*}}", 
+// CHECK-NEXT:       "col": 9,
+// CHECK-NEXT:       "file": "{{.*}}",
 // CHECK-NEXT:       "line": 51
-// CHECK-NEXT:      }, 
+// CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
-// CHECK-NEXT:        "col": 5, 
-// CHECK-NEXT:        "file": "{{.*}}", 
+// CHECK-NEXT:        "col": 5,
+// CHECK-NEXT:        "file": "{{.*}}",
 // CHECK-NEXT:        "line": 51
-// CHECK-NEXT:       }, 
+// CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
-// CHECK-NEXT:        "col": 9, 
-// CHECK-NEXT:        "file": "{{.*}}", 
+// CHECK-NEXT:        "col": 9,
+// CHECK-NEXT:        "file": "{{.*}}",
 // CHECK-NEXT:        "line": 51
 // CHECK-NEXT:       }
-// CHECK-NEXT:      }, 
-// CHECK-NEXT:      "name": "a", 
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "name": "a",
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "int"
 // CHECK-NEXT:      }
 // CHECK-NEXT:     }
 // CHECK-NEXT:    ]
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "id": "0x{{.*}}", 
-// CHECK-NEXT:    "kind": "FieldDecl", 
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "FieldDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "col": 5, 
-// CHECK-NEXT:     "file": "{{.*}}", 
+// CHECK-NEXT:     "col": 5,
+// CHECK-NEXT:     "file": "{{.*}}",
 // CHECK-NEXT:     "line": 52
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "col": 3, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 3,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 50
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "col": 5, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 5,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 52
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "name": "b", 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "name": "b",
 // CHECK-NEXT:    "type": {
-// CHECK-NEXT:     "desugaredQualType": "G::(anonymous struct at {{.*}}:50:3)", 
+// CHECK-NEXT:     "desugaredQualType": "G::(anonymous struct at {{.*}}:50:3)",
 // CHECK-NEXT:     "qualType": "struct (anonymous struct at {{.*}}:50:3)"
 // CHECK-NEXT:    }
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "id": "0x{{.*}}", 
-// CHECK-NEXT:    "kind": "CXXRecordDecl", 
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "CXXRecordDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "col": 3, 
-// CHECK-NEXT:     "file": "{{.*}}", 
+// CHECK-NEXT:     "col": 3,
+// CHECK-NEXT:     "file": "{{.*}}",
 // CHECK-NEXT:     "line": 54
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "col": 3, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 3,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 54
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "col": 3, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 3,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 57
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "tagUsed": "union", 
-// CHECK-NEXT:    "completeDefinition": true, 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "tagUsed": "union",
+// CHECK-NEXT:    "completeDefinition": true,
 // CHECK-NEXT:    "definitionData": {
-// CHECK-NEXT:     "canPassInRegisters": true, 
+// CHECK-NEXT:     "canPassInRegisters": true,
 // CHECK-NEXT:     "copyAssign": {
-// CHECK-NEXT:      "hasConstParam": true, 
-// CHECK-NEXT:      "implicitHasConstParam": true, 
-// CHECK-NEXT:      "needsImplicit": true, 
+// CHECK-NEXT:      "hasConstParam": true,
+// CHECK-NEXT:      "implicitHasConstParam": true,
+// CHECK-NEXT:      "needsImplicit": true,
 // CHECK-NEXT:      "trivial": true
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "copyCtor": {
-// CHECK-NEXT:      "hasConstParam": true, 
-// CHECK-NEXT:      "implicitHasConstParam": true, 
-// CHECK-NEXT:      "needsImplicit": true, 
-// CHECK-NEXT:      "simple": true, 
+// CHECK-NEXT:      "hasConstParam": true,
+// CHECK-NEXT:      "implicitHasConstParam": true,
+// CHECK-NEXT:      "needsImplicit": true,
+// CHECK-NEXT:      "simple": true,
 // CHECK-NEXT:      "trivial": true
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "defaultCtor": {
-// CHECK-NEXT:      "exists": true, 
-// CHECK-NEXT:      "needsImplicit": true, 
+// CHECK-NEXT:      "exists": true,
+// CHECK-NEXT:      "needsImplicit": true,
 // CHECK-NEXT:      "trivial": true
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "dtor": {
-// CHECK-NEXT:      "irrelevant": true, 
-// CHECK-NEXT:      "needsImplicit": true, 
-// CHECK-NEXT:      "simple": true, 
-// CHECK-NEXT:      "trivial": true
-// CHECK-NEXT:     }, 
-// CHECK-NEXT:     "hasVariantMembers": true, 
-// CHECK-NEXT:     "isAggregate": true, 
-// CHECK-NEXT:     "isLiteral": true, 
-// CHECK-NEXT:     "isPOD": true, 
-// CHECK-NEXT:     "isStandardLayout": true, 
-// CHECK-NEXT:     "isTrivial": true, 
-// CHECK-NEXT:     "isTriviallyCopyable": true, 
+// CHECK-NEXT:      "irrelevant": true,
+// CHECK-NEXT:      "needsImplicit": true,
+// CHECK-NEXT:      "simple": true,
+// CHECK-NEXT:      "trivial": true
+// CHECK-NEXT:     },
+// CHECK-NEXT:     "hasVariantMembers": true,
+// CHECK-NEXT:     "isAggregate": true,
+// CHECK-NEXT:     "isLiteral": true,
+// CHECK-NEXT:     "isPOD": true,
+// CHECK-NEXT:     "isStandardLayout": true,
+// CHECK-NEXT:     "isTrivial": true,
+// CHECK-NEXT:     "isTriviallyCopyable": true,
 // CHECK-NEXT:     "moveAssign": {
-// CHECK-NEXT:      "exists": true, 
-// CHECK-NEXT:      "needsImplicit": true, 
-// CHECK-NEXT:      "simple": true, 
+// CHECK-NEXT:      "exists": true,
+// CHECK-NEXT:      "needsImplicit": true,
+// CHECK-NEXT:      "simple": true,
 // CHECK-NEXT:      "trivial": true
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "moveCtor": {
-// CHECK-NEXT:      "exists": true, 
-// CHECK-NEXT:      "needsImplicit": true, 
-// CHECK-NEXT:      "simple": true, 
+// CHECK-NEXT:      "exists": true,
+// CHECK-NEXT:      "needsImplicit": true,
+// CHECK-NEXT:      "simple": true,
 // CHECK-NEXT:      "trivial": true
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "inner": [
 // CHECK-NEXT:     {
-// CHECK-NEXT:      "id": "0x{{.*}}", 
-// CHECK-NEXT:      "kind": "FieldDecl", 
+// CHECK-NEXT:      "id": "0x{{.*}}",
+// CHECK-NEXT:      "kind": "FieldDecl",
 // CHECK-NEXT:      "loc": {
-// CHECK-NEXT:       "col": 9, 
-// CHECK-NEXT:       "file": "{{.*}}", 
+// CHECK-NEXT:       "col": 9,
+// CHECK-NEXT:       "file": "{{.*}}",
 // CHECK-NEXT:       "line": 55
-// CHECK-NEXT:      }, 
+// CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
-// CHECK-NEXT:        "col": 5, 
-// CHECK-NEXT:        "file": "{{.*}}", 
+// CHECK-NEXT:        "col": 5,
+// CHECK-NEXT:        "file": "{{.*}}",
 // CHECK-NEXT:        "line": 55
-// CHECK-NEXT:       }, 
+// CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
-// CHECK-NEXT:        "col": 9, 
-// CHECK-NEXT:        "file": "{{.*}}", 
+// CHECK-NEXT:        "col": 9,
+// CHECK-NEXT:        "file": "{{.*}}",
 // CHECK-NEXT:        "line": 55
 // CHECK-NEXT:       }
-// CHECK-NEXT:      }, 
-// CHECK-NEXT:      "name": "c", 
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "name": "c",
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "int"
 // CHECK-NEXT:      }
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     {
-// CHECK-NEXT:      "id": "0x{{.*}}", 
-// CHECK-NEXT:      "kind": "FieldDecl", 
+// CHECK-NEXT:      "id": "0x{{.*}}",
+// CHECK-NEXT:      "kind": "FieldDecl",
 // CHECK-NEXT:      "loc": {
-// CHECK-NEXT:       "col": 11, 
-// CHECK-NEXT:       "file": "{{.*}}", 
+// CHECK-NEXT:       "col": 11,
+// CHECK-NEXT:       "file": "{{.*}}",
 // CHECK-NEXT:       "line": 56
-// CHECK-NEXT:      }, 
+// CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
-// CHECK-NEXT:        "col": 5, 
-// CHECK-NEXT:        "file": "{{.*}}", 
+// CHECK-NEXT:        "col": 5,
+// CHECK-NEXT:        "file": "{{.*}}",
 // CHECK-NEXT:        "line": 56
-// CHECK-NEXT:       }, 
+// CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
-// CHECK-NEXT:        "col": 11, 
-// CHECK-NEXT:        "file": "{{.*}}", 
+// CHECK-NEXT:        "col": 11,
+// CHECK-NEXT:        "file": "{{.*}}",
 // CHECK-NEXT:        "line": 56
 // CHECK-NEXT:       }
-// CHECK-NEXT:      }, 
-// CHECK-NEXT:      "name": "d", 
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "name": "d",
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "float"
 // CHECK-NEXT:      }
 // CHECK-NEXT:     }
 // CHECK-NEXT:    ]
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "id": "0x{{.*}}", 
-// CHECK-NEXT:    "kind": "FieldDecl", 
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "FieldDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "col": 3, 
-// CHECK-NEXT:     "file": "{{.*}}", 
+// CHECK-NEXT:     "col": 3,
+// CHECK-NEXT:     "file": "{{.*}}",
 // CHECK-NEXT:     "line": 54
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "col": 3, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 3,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 54
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "col": 3, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 3,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 54
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "isImplicit": true, 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "isImplicit": true,
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "G::(anonymous union at {{.*}}:54:3)"
 // CHECK-NEXT:    }
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "id": "0x{{.*}}", 
-// CHECK-NEXT:    "kind": "IndirectFieldDecl", 
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "IndirectFieldDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "col": 9, 
-// CHECK-NEXT:     "file": "{{.*}}", 
+// CHECK-NEXT:     "col": 9,
+// CHECK-NEXT:     "file": "{{.*}}",
 // CHECK-NEXT:     "line": 55
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "col": 9, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 9,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 55
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "col": 9, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 9,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 55
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "isImplicit": true, 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "isImplicit": true,
 // CHECK-NEXT:    "name": "c"
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "id": "0x{{.*}}", 
-// CHECK-NEXT:    "kind": "IndirectFieldDecl", 
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "IndirectFieldDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "col": 11, 
-// CHECK-NEXT:     "file": "{{.*}}", 
+// CHECK-NEXT:     "col": 11,
+// CHECK-NEXT:     "file": "{{.*}}",
 // CHECK-NEXT:     "line": 56
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "col": 11, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 11,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 56
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "col": 11, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 11,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 56
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "isImplicit": true, 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "isImplicit": true,
 // CHECK-NEXT:    "name": "d"
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "id": "0x{{.*}}", 
-// CHECK-NEXT:    "kind": "CXXRecordDecl", 
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "CXXRecordDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "col": 3, 
-// CHECK-NEXT:     "file": "{{.*}}", 
+// CHECK-NEXT:     "col": 3,
+// CHECK-NEXT:     "file": "{{.*}}",
 // CHECK-NEXT:     "line": 59
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "col": 3, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 3,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 59
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "col": 3, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 3,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 61
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "tagUsed": "struct", 
-// CHECK-NEXT:    "completeDefinition": true, 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "tagUsed": "struct",
+// CHECK-NEXT:    "completeDefinition": true,
 // CHECK-NEXT:    "definitionData": {
-// CHECK-NEXT:     "canPassInRegisters": true, 
+// CHECK-NEXT:     "canPassInRegisters": true,
 // CHECK-NEXT:     "copyAssign": {
-// CHECK-NEXT:      "hasConstParam": true, 
-// CHECK-NEXT:      "implicitHasConstParam": true, 
-// CHECK-NEXT:      "needsImplicit": true, 
+// CHECK-NEXT:      "hasConstParam": true,
+// CHECK-NEXT:      "implicitHasConstParam": true,
+// CHECK-NEXT:      "needsImplicit": true,
 // CHECK-NEXT:      "trivial": true
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "copyCtor": {
-// CHECK-NEXT:      "hasConstParam": true, 
-// CHECK-NEXT:      "implicitHasConstParam": true, 
-// CHECK-NEXT:      "needsImplicit": true, 
-// CHECK-NEXT:      "simple": true, 
+// CHECK-NEXT:      "hasConstParam": true,
+// CHECK-NEXT:      "implicitHasConstParam": true,
+// CHECK-NEXT:      "needsImplicit": true,
+// CHECK-NEXT:      "simple": true,
 // CHECK-NEXT:      "trivial": true
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "defaultCtor": {
-// CHECK-NEXT:      "exists": true, 
-// CHECK-NEXT:      "needsImplicit": true, 
+// CHECK-NEXT:      "exists": true,
+// CHECK-NEXT:      "needsImplicit": true,
 // CHECK-NEXT:      "trivial": true
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "dtor": {
-// CHECK-NEXT:      "irrelevant": true, 
-// CHECK-NEXT:      "needsImplicit": true, 
-// CHECK-NEXT:      "simple": true, 
-// CHECK-NEXT:      "trivial": true
-// CHECK-NEXT:     }, 
-// CHECK-NEXT:     "isAggregate": true, 
-// CHECK-NEXT:     "isLiteral": true, 
-// CHECK-NEXT:     "isPOD": true, 
-// CHECK-NEXT:     "isStandardLayout": true, 
-// CHECK-NEXT:     "isTrivial": true, 
-// CHECK-NEXT:     "isTriviallyCopyable": true, 
+// CHECK-NEXT:      "irrelevant": true,
+// CHECK-NEXT:      "needsImplicit": true,
+// CHECK-NEXT:      "simple": true,
+// CHECK-NEXT:      "trivial": true
+// CHECK-NEXT:     },
+// CHECK-NEXT:     "isAggregate": true,
+// CHECK-NEXT:     "isLiteral": true,
+// CHECK-NEXT:     "isPOD": true,
+// CHECK-NEXT:     "isStandardLayout": true,
+// CHECK-NEXT:     "isTrivial": true,
+// CHECK-NEXT:     "isTriviallyCopyable": true,
 // CHECK-NEXT:     "moveAssign": {
-// CHECK-NEXT:      "exists": true, 
-// CHECK-NEXT:      "needsImplicit": true, 
-// CHECK-NEXT:      "simple": true, 
+// CHECK-NEXT:      "exists": true,
+// CHECK-NEXT:      "needsImplicit": true,
+// CHECK-NEXT:      "simple": true,
 // CHECK-NEXT:      "trivial": true
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "moveCtor": {
-// CHECK-NEXT:      "exists": true, 
-// CHECK-NEXT:      "needsImplicit": true, 
-// CHECK-NEXT:      "simple": true, 
+// CHECK-NEXT:      "exists": true,
+// CHECK-NEXT:      "needsImplicit": true,
+// CHECK-NEXT:      "simple": true,
 // CHECK-NEXT:      "trivial": true
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "inner": [
 // CHECK-NEXT:     {
-// CHECK-NEXT:      "id": "0x{{.*}}", 
-// CHECK-NEXT:      "kind": "FieldDecl", 
+// CHECK-NEXT:      "id": "0x{{.*}}",
+// CHECK-NEXT:      "kind": "FieldDecl",
 // CHECK-NEXT:      "loc": {
-// CHECK-NEXT:       "col": 9, 
-// CHECK-NEXT:       "file": "{{.*}}", 
+// CHECK-NEXT:       "col": 9,
+// CHECK-NEXT:       "file": "{{.*}}",
 // CHECK-NEXT:       "line": 60
-// CHECK-NEXT:      }, 
+// CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
-// CHECK-NEXT:        "col": 5, 
-// CHECK-NEXT:        "file": "{{.*}}", 
+// CHECK-NEXT:        "col": 5,
+// CHECK-NEXT:        "file": "{{.*}}",
 // CHECK-NEXT:        "line": 60
-// CHECK-NEXT:       }, 
+// CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
-// CHECK-NEXT:        "col": 9, 
-// CHECK-NEXT:        "file": "{{.*}}", 
+// CHECK-NEXT:        "col": 9,
+// CHECK-NEXT:        "file": "{{.*}}",
 // CHECK-NEXT:        "line": 60
 // CHECK-NEXT:       }
-// CHECK-NEXT:      }, 
-// CHECK-NEXT:      "name": "e", 
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "name": "e",
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "int"
 // CHECK-NEXT:      }
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     {
-// CHECK-NEXT:      "id": "0x{{.*}}", 
-// CHECK-NEXT:      "kind": "FieldDecl", 
+// CHECK-NEXT:      "id": "0x{{.*}}",
+// CHECK-NEXT:      "kind": "FieldDecl",
 // CHECK-NEXT:      "loc": {
-// CHECK-NEXT:       "col": 12, 
-// CHECK-NEXT:       "file": "{{.*}}", 
+// CHECK-NEXT:       "col": 12,
+// CHECK-NEXT:       "file": "{{.*}}",
 // CHECK-NEXT:       "line": 60
-// CHECK-NEXT:      }, 
+// CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
-// CHECK-NEXT:        "col": 5, 
-// CHECK-NEXT:        "file": "{{.*}}", 
+// CHECK-NEXT:        "col": 5,
+// CHECK-NEXT:        "file": "{{.*}}",
 // CHECK-NEXT:        "line": 60
-// CHECK-NEXT:       }, 
+// CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
-// CHECK-NEXT:        "col": 12, 
-// CHECK-NEXT:        "file": "{{.*}}", 
+// CHECK-NEXT:        "col": 12,
+// CHECK-NEXT:        "file": "{{.*}}",
 // CHECK-NEXT:        "line": 60
 // CHECK-NEXT:       }
-// CHECK-NEXT:      }, 
-// CHECK-NEXT:      "name": "f", 
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "name": "f",
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "int"
 // CHECK-NEXT:      }
 // CHECK-NEXT:     }
 // CHECK-NEXT:    ]
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "id": "0x{{.*}}", 
-// CHECK-NEXT:    "kind": "FieldDecl", 
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "FieldDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "col": 3, 
-// CHECK-NEXT:     "file": "{{.*}}", 
+// CHECK-NEXT:     "col": 3,
+// CHECK-NEXT:     "file": "{{.*}}",
 // CHECK-NEXT:     "line": 59
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "col": 3, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 3,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 59
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "col": 3, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 3,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 59
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "isImplicit": true, 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "isImplicit": true,
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "G::(anonymous struct at {{.*}}:59:3)"
 // CHECK-NEXT:    }
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "id": "0x{{.*}}", 
-// CHECK-NEXT:    "kind": "IndirectFieldDecl", 
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "IndirectFieldDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "col": 9, 
-// CHECK-NEXT:     "file": "{{.*}}", 
+// CHECK-NEXT:     "col": 9,
+// CHECK-NEXT:     "file": "{{.*}}",
 // CHECK-NEXT:     "line": 60
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "col": 9, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 9,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 60
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "col": 9, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 9,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 60
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "isImplicit": true, 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "isImplicit": true,
 // CHECK-NEXT:    "name": "e"
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "id": "0x{{.*}}", 
-// CHECK-NEXT:    "kind": "IndirectFieldDecl", 
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "IndirectFieldDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "col": 12, 
-// CHECK-NEXT:     "file": "{{.*}}", 
+// CHECK-NEXT:     "col": 12,
+// CHECK-NEXT:     "file": "{{.*}}",
 // CHECK-NEXT:     "line": 60
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "col": 12, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 12,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 60
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "col": 12, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 12,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 60
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "isImplicit": true, 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "isImplicit": true,
 // CHECK-NEXT:    "name": "f"
 // CHECK-NEXT:   }
 // CHECK-NEXT:  ]
 // CHECK-NEXT: }
 
 
-// CHECK:  "kind": "CXXRecordDecl", 
+// CHECK:  "kind": "CXXRecordDecl",
 // CHECK-NEXT:  "loc": {
-// CHECK-NEXT:   "col": 8, 
-// CHECK-NEXT:   "file": "{{.*}}", 
+// CHECK-NEXT:   "col": 8,
+// CHECK-NEXT:   "file": "{{.*}}",
 // CHECK-NEXT:   "line": 64
-// CHECK-NEXT:  }, 
+// CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
-// CHECK-NEXT:    "col": 1, 
-// CHECK-NEXT:    "file": "{{.*}}", 
+// CHECK-NEXT:    "col": 1,
+// CHECK-NEXT:    "file": "{{.*}}",
 // CHECK-NEXT:    "line": 64
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
-// CHECK-NEXT:    "col": 15, 
-// CHECK-NEXT:    "file": "{{.*}}", 
+// CHECK-NEXT:    "col": 15,
+// CHECK-NEXT:    "file": "{{.*}}",
 // CHECK-NEXT:    "line": 64
 // CHECK-NEXT:   }
-// CHECK-NEXT:  }, 
-// CHECK-NEXT:  "isReferenced": true, 
-// CHECK-NEXT:  "name": "Base1", 
-// CHECK-NEXT:  "tagUsed": "struct", 
-// CHECK-NEXT:  "completeDefinition": true, 
+// CHECK-NEXT:  },
+// CHECK-NEXT:  "isReferenced": true,
+// CHECK-NEXT:  "name": "Base1",
+// CHECK-NEXT:  "tagUsed": "struct",
+// CHECK-NEXT:  "completeDefinition": true,
 // CHECK-NEXT:  "definitionData": {
-// CHECK-NEXT:   "canConstDefaultInit": true, 
-// CHECK-NEXT:   "canPassInRegisters": true, 
+// CHECK-NEXT:   "canConstDefaultInit": true,
+// CHECK-NEXT:   "canPassInRegisters": true,
 // CHECK-NEXT:   "copyAssign": {
-// CHECK-NEXT:    "hasConstParam": true, 
-// CHECK-NEXT:    "implicitHasConstParam": true, 
+// CHECK-NEXT:    "hasConstParam": true,
+// CHECK-NEXT:    "implicitHasConstParam": true,
 // CHECK-NEXT:    "trivial": true
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   "copyCtor": {
-// CHECK-NEXT:    "hasConstParam": true, 
-// CHECK-NEXT:    "implicitHasConstParam": true, 
-// CHECK-NEXT:    "needsImplicit": true, 
-// CHECK-NEXT:    "simple": true, 
+// CHECK-NEXT:    "hasConstParam": true,
+// CHECK-NEXT:    "implicitHasConstParam": true,
+// CHECK-NEXT:    "needsImplicit": true,
+// CHECK-NEXT:    "simple": true,
 // CHECK-NEXT:    "trivial": true
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   "defaultCtor": {
-// CHECK-NEXT:    "defaultedIsConstexpr": true, 
-// CHECK-NEXT:    "exists": true, 
-// CHECK-NEXT:    "isConstexpr": true, 
-// CHECK-NEXT:    "needsImplicit": true, 
+// CHECK-NEXT:    "defaultedIsConstexpr": true,
+// CHECK-NEXT:    "exists": true,
+// CHECK-NEXT:    "isConstexpr": true,
+// CHECK-NEXT:    "needsImplicit": true,
 // CHECK-NEXT:    "trivial": true
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   "dtor": {
-// CHECK-NEXT:    "irrelevant": true, 
-// CHECK-NEXT:    "simple": true, 
+// CHECK-NEXT:    "irrelevant": true,
+// CHECK-NEXT:    "simple": true,
 // CHECK-NEXT:    "trivial": true
-// CHECK-NEXT:   }, 
-// CHECK-NEXT:   "hasConstexprNonCopyMoveConstructor": true, 
-// CHECK-NEXT:   "isAggregate": true, 
-// CHECK-NEXT:   "isEmpty": true, 
-// CHECK-NEXT:   "isLiteral": true, 
-// CHECK-NEXT:   "isPOD": true, 
-// CHECK-NEXT:   "isStandardLayout": true, 
-// CHECK-NEXT:   "isTrivial": true, 
-// CHECK-NEXT:   "isTriviallyCopyable": true, 
+// CHECK-NEXT:   },
+// CHECK-NEXT:   "hasConstexprNonCopyMoveConstructor": true,
+// CHECK-NEXT:   "isAggregate": true,
+// CHECK-NEXT:   "isEmpty": true,
+// CHECK-NEXT:   "isLiteral": true,
+// CHECK-NEXT:   "isPOD": true,
+// CHECK-NEXT:   "isStandardLayout": true,
+// CHECK-NEXT:   "isTrivial": true,
+// CHECK-NEXT:   "isTriviallyCopyable": true,
 // CHECK-NEXT:   "moveAssign": {
-// CHECK-NEXT:    "exists": true, 
-// CHECK-NEXT:    "simple": true, 
+// CHECK-NEXT:    "exists": true,
+// CHECK-NEXT:    "simple": true,
 // CHECK-NEXT:    "trivial": true
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   "moveCtor": {
-// CHECK-NEXT:    "exists": true, 
-// CHECK-NEXT:    "needsImplicit": true, 
-// CHECK-NEXT:    "simple": true, 
+// CHECK-NEXT:    "exists": true,
+// CHECK-NEXT:    "needsImplicit": true,
+// CHECK-NEXT:    "simple": true,
 // CHECK-NEXT:    "trivial": true
 // CHECK-NEXT:   }
-// CHECK-NEXT:  }, 
+// CHECK-NEXT:  },
 // CHECK-NEXT:  "inner": [
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "id": "0x{{.*}}", 
-// CHECK-NEXT:    "kind": "CXXRecordDecl", 
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "CXXRecordDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "col": 8, 
-// CHECK-NEXT:     "file": "{{.*}}", 
+// CHECK-NEXT:     "col": 8,
+// CHECK-NEXT:     "file": "{{.*}}",
 // CHECK-NEXT:     "line": 64
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "col": 1, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 1,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 64
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "col": 8, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 8,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 64
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "isImplicit": true, 
-// CHECK-NEXT:    "name": "Base1", 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "isImplicit": true,
+// CHECK-NEXT:    "name": "Base1",
 // CHECK-NEXT:    "tagUsed": "struct"
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "id": "0x{{.*}}", 
-// CHECK-NEXT:    "kind": "CXXMethodDecl", 
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "CXXMethodDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "col": 8, 
-// CHECK-NEXT:     "file": "{{.*}}", 
+// CHECK-NEXT:     "col": 8,
+// CHECK-NEXT:     "file": "{{.*}}",
 // CHECK-NEXT:     "line": 64
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "col": 8, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 8,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 64
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "col": 8, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 8,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 64
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "isImplicit": true, 
-// CHECK-NEXT:    "name": "operator=", 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "isImplicit": true,
+// CHECK-NEXT:    "name": "operator=",
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "Base1 &(const Base1 &)"
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "inline": true, 
-// CHECK-NEXT:    "constexpr": true, 
-// CHECK-NEXT:    "explicitlyDefaulted": "default", 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "inline": true,
+// CHECK-NEXT:    "constexpr": true,
+// CHECK-NEXT:    "explicitlyDefaulted": "default",
 // CHECK-NEXT:    "inner": [
 // CHECK-NEXT:     {
-// CHECK-NEXT:      "id": "0x{{.*}}", 
-// CHECK-NEXT:      "kind": "ParmVarDecl", 
+// CHECK-NEXT:      "id": "0x{{.*}}",
+// CHECK-NEXT:      "kind": "ParmVarDecl",
 // CHECK-NEXT:      "loc": {
-// CHECK-NEXT:       "col": 8, 
-// CHECK-NEXT:       "file": "{{.*}}", 
+// CHECK-NEXT:       "col": 8,
+// CHECK-NEXT:       "file": "{{.*}}",
 // CHECK-NEXT:       "line": 64
-// CHECK-NEXT:      }, 
+// CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
-// CHECK-NEXT:        "col": 8, 
-// CHECK-NEXT:        "file": "{{.*}}", 
+// CHECK-NEXT:        "col": 8,
+// CHECK-NEXT:        "file": "{{.*}}",
 // CHECK-NEXT:        "line": 64
-// CHECK-NEXT:       }, 
+// CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
-// CHECK-NEXT:        "col": 8, 
-// CHECK-NEXT:        "file": "{{.*}}", 
+// CHECK-NEXT:        "col": 8,
+// CHECK-NEXT:        "file": "{{.*}}",
 // CHECK-NEXT:        "line": 64
 // CHECK-NEXT:       }
-// CHECK-NEXT:      }, 
+// CHECK-NEXT:      },
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "const Base1 &"
 // CHECK-NEXT:      }
 // CHECK-NEXT:     }
 // CHECK-NEXT:    ]
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "id": "0x{{.*}}", 
-// CHECK-NEXT:    "kind": "CXXMethodDecl", 
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "CXXMethodDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "col": 8, 
-// CHECK-NEXT:     "file": "{{.*}}", 
+// CHECK-NEXT:     "col": 8,
+// CHECK-NEXT:     "file": "{{.*}}",
 // CHECK-NEXT:     "line": 64
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "col": 8, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 8,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 64
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "col": 8, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 8,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 64
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "isImplicit": true, 
-// CHECK-NEXT:    "name": "operator=", 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "isImplicit": true,
+// CHECK-NEXT:    "name": "operator=",
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "Base1 &(Base1 &&)"
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "inline": true, 
-// CHECK-NEXT:    "constexpr": true, 
-// CHECK-NEXT:    "explicitlyDefaulted": "default", 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "inline": true,
+// CHECK-NEXT:    "constexpr": true,
+// CHECK-NEXT:    "explicitlyDefaulted": "default",
 // CHECK-NEXT:    "inner": [
 // CHECK-NEXT:     {
-// CHECK-NEXT:      "id": "0x{{.*}}", 
-// CHECK-NEXT:      "kind": "ParmVarDecl", 
+// CHECK-NEXT:      "id": "0x{{.*}}",
+// CHECK-NEXT:      "kind": "ParmVarDecl",
 // CHECK-NEXT:      "loc": {
-// CHECK-NEXT:       "col": 8, 
-// CHECK-NEXT:       "file": "{{.*}}", 
+// CHECK-NEXT:       "col": 8,
+// CHECK-NEXT:       "file": "{{.*}}",
 // CHECK-NEXT:       "line": 64
-// CHECK-NEXT:      }, 
+// CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
-// CHECK-NEXT:        "col": 8, 
-// CHECK-NEXT:        "file": "{{.*}}", 
+// CHECK-NEXT:        "col": 8,
+// CHECK-NEXT:        "file": "{{.*}}",
 // CHECK-NEXT:        "line": 64
-// CHECK-NEXT:       }, 
+// CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
-// CHECK-NEXT:        "col": 8, 
-// CHECK-NEXT:        "file": "{{.*}}", 
+// CHECK-NEXT:        "col": 8,
+// CHECK-NEXT:        "file": "{{.*}}",
 // CHECK-NEXT:        "line": 64
 // CHECK-NEXT:       }
-// CHECK-NEXT:      }, 
+// CHECK-NEXT:      },
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "Base1 &&"
 // CHECK-NEXT:      }
 // CHECK-NEXT:     }
 // CHECK-NEXT:    ]
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "id": "0x{{.*}}", 
-// CHECK-NEXT:    "kind": "CXXDestructorDecl", 
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "CXXDestructorDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "col": 8, 
-// CHECK-NEXT:     "file": "{{.*}}", 
+// CHECK-NEXT:     "col": 8,
+// CHECK-NEXT:     "file": "{{.*}}",
 // CHECK-NEXT:     "line": 64
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "col": 8, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 8,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 64
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "col": 8, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 8,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 64
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "isImplicit": true, 
-// CHECK-NEXT:    "name": "~Base1", 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "isImplicit": true,
+// CHECK-NEXT:    "name": "~Base1",
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "void ()"
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "inline": true, 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "inline": true,
 // CHECK-NEXT:    "explicitlyDefaulted": "default"
 // CHECK-NEXT:   }
 // CHECK-NEXT:  ]
 // CHECK-NEXT: }
 
 
-// CHECK:  "kind": "CXXRecordDecl", 
+// CHECK:  "kind": "CXXRecordDecl",
 // CHECK-NEXT:  "loc": {
-// CHECK-NEXT:   "col": 8, 
-// CHECK-NEXT:   "file": "{{.*}}", 
+// CHECK-NEXT:   "col": 8,
+// CHECK-NEXT:   "file": "{{.*}}",
 // CHECK-NEXT:   "line": 65
-// CHECK-NEXT:  }, 
+// CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
-// CHECK-NEXT:    "col": 1, 
-// CHECK-NEXT:    "file": "{{.*}}", 
+// CHECK-NEXT:    "col": 1,
+// CHECK-NEXT:    "file": "{{.*}}",
 // CHECK-NEXT:    "line": 65
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
-// CHECK-NEXT:    "col": 15, 
-// CHECK-NEXT:    "file": "{{.*}}", 
+// CHECK-NEXT:    "col": 15,
+// CHECK-NEXT:    "file": "{{.*}}",
 // CHECK-NEXT:    "line": 65
 // CHECK-NEXT:   }
-// CHECK-NEXT:  }, 
-// CHECK-NEXT:  "isReferenced": true, 
-// CHECK-NEXT:  "name": "Base2", 
-// CHECK-NEXT:  "tagUsed": "struct", 
-// CHECK-NEXT:  "completeDefinition": true, 
+// CHECK-NEXT:  },
+// CHECK-NEXT:  "isReferenced": true,
+// CHECK-NEXT:  "name": "Base2",
+// CHECK-NEXT:  "tagUsed": "struct",
+// CHECK-NEXT:  "completeDefinition": true,
 // CHECK-NEXT:  "definitionData": {
-// CHECK-NEXT:   "canConstDefaultInit": true, 
-// CHECK-NEXT:   "canPassInRegisters": true, 
+// CHECK-NEXT:   "canConstDefaultInit": true,
+// CHECK-NEXT:   "canPassInRegisters": true,
 // CHECK-NEXT:   "copyAssign": {
-// CHECK-NEXT:    "hasConstParam": true, 
-// CHECK-NEXT:    "implicitHasConstParam": true, 
+// CHECK-NEXT:    "hasConstParam": true,
+// CHECK-NEXT:    "implicitHasConstParam": true,
 // CHECK-NEXT:    "trivial": true
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   "copyCtor": {
-// CHECK-NEXT:    "hasConstParam": true, 
-// CHECK-NEXT:    "implicitHasConstParam": true, 
-// CHECK-NEXT:    "needsImplicit": true, 
-// CHECK-NEXT:    "simple": true, 
+// CHECK-NEXT:    "hasConstParam": true,
+// CHECK-NEXT:    "implicitHasConstParam": true,
+// CHECK-NEXT:    "needsImplicit": true,
+// CHECK-NEXT:    "simple": true,
 // CHECK-NEXT:    "trivial": true
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   "defaultCtor": {
-// CHECK-NEXT:    "defaultedIsConstexpr": true, 
-// CHECK-NEXT:    "exists": true, 
-// CHECK-NEXT:    "isConstexpr": true, 
-// CHECK-NEXT:    "needsImplicit": true, 
+// CHECK-NEXT:    "defaultedIsConstexpr": true,
+// CHECK-NEXT:    "exists": true,
+// CHECK-NEXT:    "isConstexpr": true,
+// CHECK-NEXT:    "needsImplicit": true,
 // CHECK-NEXT:    "trivial": true
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   "dtor": {
-// CHECK-NEXT:    "irrelevant": true, 
-// CHECK-NEXT:    "simple": true, 
+// CHECK-NEXT:    "irrelevant": true,
+// CHECK-NEXT:    "simple": true,
 // CHECK-NEXT:    "trivial": true
-// CHECK-NEXT:   }, 
-// CHECK-NEXT:   "hasConstexprNonCopyMoveConstructor": true, 
-// CHECK-NEXT:   "isAggregate": true, 
-// CHECK-NEXT:   "isEmpty": true, 
-// CHECK-NEXT:   "isLiteral": true, 
-// CHECK-NEXT:   "isPOD": true, 
-// CHECK-NEXT:   "isStandardLayout": true, 
-// CHECK-NEXT:   "isTrivial": true, 
-// CHECK-NEXT:   "isTriviallyCopyable": true, 
+// CHECK-NEXT:   },
+// CHECK-NEXT:   "hasConstexprNonCopyMoveConstructor": true,
+// CHECK-NEXT:   "isAggregate": true,
+// CHECK-NEXT:   "isEmpty": true,
+// CHECK-NEXT:   "isLiteral": true,
+// CHECK-NEXT:   "isPOD": true,
+// CHECK-NEXT:   "isStandardLayout": true,
+// CHECK-NEXT:   "isTrivial": true,
+// CHECK-NEXT:   "isTriviallyCopyable": true,
 // CHECK-NEXT:   "moveAssign": {
-// CHECK-NEXT:    "exists": true, 
-// CHECK-NEXT:    "simple": true, 
+// CHECK-NEXT:    "exists": true,
+// CHECK-NEXT:    "simple": true,
 // CHECK-NEXT:    "trivial": true
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   "moveCtor": {
-// CHECK-NEXT:    "exists": true, 
-// CHECK-NEXT:    "needsImplicit": true, 
-// CHECK-NEXT:    "simple": true, 
+// CHECK-NEXT:    "exists": true,
+// CHECK-NEXT:    "needsImplicit": true,
+// CHECK-NEXT:    "simple": true,
 // CHECK-NEXT:    "trivial": true
 // CHECK-NEXT:   }
-// CHECK-NEXT:  }, 
+// CHECK-NEXT:  },
 // CHECK-NEXT:  "inner": [
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "id": "0x{{.*}}", 
-// CHECK-NEXT:    "kind": "CXXRecordDecl", 
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "CXXRecordDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "col": 8, 
-// CHECK-NEXT:     "file": "{{.*}}", 
+// CHECK-NEXT:     "col": 8,
+// CHECK-NEXT:     "file": "{{.*}}",
 // CHECK-NEXT:     "line": 65
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "col": 1, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 1,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 65
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "col": 8, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 8,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 65
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "isImplicit": true, 
-// CHECK-NEXT:    "name": "Base2", 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "isImplicit": true,
+// CHECK-NEXT:    "name": "Base2",
 // CHECK-NEXT:    "tagUsed": "struct"
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "id": "0x{{.*}}", 
-// CHECK-NEXT:    "kind": "CXXMethodDecl", 
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "CXXMethodDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "col": 8, 
-// CHECK-NEXT:     "file": "{{.*}}", 
+// CHECK-NEXT:     "col": 8,
+// CHECK-NEXT:     "file": "{{.*}}",
 // CHECK-NEXT:     "line": 65
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "col": 8, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 8,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 65
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "col": 8, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 8,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 65
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "isImplicit": true, 
-// CHECK-NEXT:    "name": "operator=", 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "isImplicit": true,
+// CHECK-NEXT:    "name": "operator=",
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "Base2 &(const Base2 &)"
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "inline": true, 
-// CHECK-NEXT:    "constexpr": true, 
-// CHECK-NEXT:    "explicitlyDefaulted": "default", 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "inline": true,
+// CHECK-NEXT:    "constexpr": true,
+// CHECK-NEXT:    "explicitlyDefaulted": "default",
 // CHECK-NEXT:    "inner": [
 // CHECK-NEXT:     {
-// CHECK-NEXT:      "id": "0x{{.*}}", 
-// CHECK-NEXT:      "kind": "ParmVarDecl", 
+// CHECK-NEXT:      "id": "0x{{.*}}",
+// CHECK-NEXT:      "kind": "ParmVarDecl",
 // CHECK-NEXT:      "loc": {
-// CHECK-NEXT:       "col": 8, 
-// CHECK-NEXT:       "file": "{{.*}}", 
+// CHECK-NEXT:       "col": 8,
+// CHECK-NEXT:       "file": "{{.*}}",
 // CHECK-NEXT:       "line": 65
-// CHECK-NEXT:      }, 
+// CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
-// CHECK-NEXT:        "col": 8, 
-// CHECK-NEXT:        "file": "{{.*}}", 
+// CHECK-NEXT:        "col": 8,
+// CHECK-NEXT:        "file": "{{.*}}",
 // CHECK-NEXT:        "line": 65
-// CHECK-NEXT:       }, 
+// CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
-// CHECK-NEXT:        "col": 8, 
-// CHECK-NEXT:        "file": "{{.*}}", 
+// CHECK-NEXT:        "col": 8,
+// CHECK-NEXT:        "file": "{{.*}}",
 // CHECK-NEXT:        "line": 65
 // CHECK-NEXT:       }
-// CHECK-NEXT:      }, 
+// CHECK-NEXT:      },
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "const Base2 &"
 // CHECK-NEXT:      }
 // CHECK-NEXT:     }
 // CHECK-NEXT:    ]
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "id": "0x{{.*}}", 
-// CHECK-NEXT:    "kind": "CXXMethodDecl", 
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "CXXMethodDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "col": 8, 
-// CHECK-NEXT:     "file": "{{.*}}", 
+// CHECK-NEXT:     "col": 8,
+// CHECK-NEXT:     "file": "{{.*}}",
 // CHECK-NEXT:     "line": 65
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "col": 8, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 8,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 65
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "col": 8, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 8,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 65
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "isImplicit": true, 
-// CHECK-NEXT:    "name": "operator=", 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "isImplicit": true,
+// CHECK-NEXT:    "name": "operator=",
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "Base2 &(Base2 &&)"
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "inline": true, 
-// CHECK-NEXT:    "constexpr": true, 
-// CHECK-NEXT:    "explicitlyDefaulted": "default", 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "inline": true,
+// CHECK-NEXT:    "constexpr": true,
+// CHECK-NEXT:    "explicitlyDefaulted": "default",
 // CHECK-NEXT:    "inner": [
 // CHECK-NEXT:     {
-// CHECK-NEXT:      "id": "0x{{.*}}", 
-// CHECK-NEXT:      "kind": "ParmVarDecl", 
+// CHECK-NEXT:      "id": "0x{{.*}}",
+// CHECK-NEXT:      "kind": "ParmVarDecl",
 // CHECK-NEXT:      "loc": {
-// CHECK-NEXT:       "col": 8, 
-// CHECK-NEXT:       "file": "{{.*}}", 
+// CHECK-NEXT:       "col": 8,
+// CHECK-NEXT:       "file": "{{.*}}",
 // CHECK-NEXT:       "line": 65
-// CHECK-NEXT:      }, 
+// CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
-// CHECK-NEXT:        "col": 8, 
-// CHECK-NEXT:        "file": "{{.*}}", 
+// CHECK-NEXT:        "col": 8,
+// CHECK-NEXT:        "file": "{{.*}}",
 // CHECK-NEXT:        "line": 65
-// CHECK-NEXT:       }, 
+// CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
-// CHECK-NEXT:        "col": 8, 
-// CHECK-NEXT:        "file": "{{.*}}", 
+// CHECK-NEXT:        "col": 8,
+// CHECK-NEXT:        "file": "{{.*}}",
 // CHECK-NEXT:        "line": 65
 // CHECK-NEXT:       }
-// CHECK-NEXT:      }, 
+// CHECK-NEXT:      },
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "Base2 &&"
 // CHECK-NEXT:      }
 // CHECK-NEXT:     }
 // CHECK-NEXT:    ]
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "id": "0x{{.*}}", 
-// CHECK-NEXT:    "kind": "CXXDestructorDecl", 
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "CXXDestructorDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "col": 8, 
-// CHECK-NEXT:     "file": "{{.*}}", 
+// CHECK-NEXT:     "col": 8,
+// CHECK-NEXT:     "file": "{{.*}}",
 // CHECK-NEXT:     "line": 65
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "col": 8, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 8,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 65
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "col": 8, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 8,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 65
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "isImplicit": true, 
-// CHECK-NEXT:    "name": "~Base2", 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "isImplicit": true,
+// CHECK-NEXT:    "name": "~Base2",
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "void ()"
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "inline": true, 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "inline": true,
 // CHECK-NEXT:    "explicitlyDefaulted": "default"
 // CHECK-NEXT:   }
 // CHECK-NEXT:  ]
 // CHECK-NEXT: }
 
 
-// CHECK:  "kind": "CXXRecordDecl", 
+// CHECK:  "kind": "CXXRecordDecl",
 // CHECK-NEXT:  "loc": {
-// CHECK-NEXT:   "col": 8, 
-// CHECK-NEXT:   "file": "{{.*}}", 
+// CHECK-NEXT:   "col": 8,
+// CHECK-NEXT:   "file": "{{.*}}",
 // CHECK-NEXT:   "line": 66
-// CHECK-NEXT:  }, 
+// CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
-// CHECK-NEXT:    "col": 1, 
-// CHECK-NEXT:    "file": "{{.*}}", 
+// CHECK-NEXT:    "col": 1,
+// CHECK-NEXT:    "file": "{{.*}}",
 // CHECK-NEXT:    "line": 66
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
-// CHECK-NEXT:    "col": 15, 
-// CHECK-NEXT:    "file": "{{.*}}", 
+// CHECK-NEXT:    "col": 15,
+// CHECK-NEXT:    "file": "{{.*}}",
 // CHECK-NEXT:    "line": 66
 // CHECK-NEXT:   }
-// CHECK-NEXT:  }, 
-// CHECK-NEXT:  "isReferenced": true, 
-// CHECK-NEXT:  "name": "Base3", 
-// CHECK-NEXT:  "tagUsed": "struct", 
-// CHECK-NEXT:  "completeDefinition": true, 
+// CHECK-NEXT:  },
+// CHECK-NEXT:  "isReferenced": true,
+// CHECK-NEXT:  "name": "Base3",
+// CHECK-NEXT:  "tagUsed": "struct",
+// CHECK-NEXT:  "completeDefinition": true,
 // CHECK-NEXT:  "definitionData": {
-// CHECK-NEXT:   "canConstDefaultInit": true, 
-// CHECK-NEXT:   "canPassInRegisters": true, 
+// CHECK-NEXT:   "canConstDefaultInit": true,
+// CHECK-NEXT:   "canPassInRegisters": true,
 // CHECK-NEXT:   "copyAssign": {
-// CHECK-NEXT:    "hasConstParam": true, 
-// CHECK-NEXT:    "implicitHasConstParam": true, 
+// CHECK-NEXT:    "hasConstParam": true,
+// CHECK-NEXT:    "implicitHasConstParam": true,
 // CHECK-NEXT:    "trivial": true
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   "copyCtor": {
-// CHECK-NEXT:    "hasConstParam": true, 
-// CHECK-NEXT:    "implicitHasConstParam": true, 
-// CHECK-NEXT:    "needsImplicit": true, 
-// CHECK-NEXT:    "simple": true, 
+// CHECK-NEXT:    "hasConstParam": true,
+// CHECK-NEXT:    "implicitHasConstParam": true,
+// CHECK-NEXT:    "needsImplicit": true,
+// CHECK-NEXT:    "simple": true,
 // CHECK-NEXT:    "trivial": true
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   "defaultCtor": {
-// CHECK-NEXT:    "defaultedIsConstexpr": true, 
-// CHECK-NEXT:    "exists": true, 
-// CHECK-NEXT:    "isConstexpr": true, 
-// CHECK-NEXT:    "needsImplicit": true, 
+// CHECK-NEXT:    "defaultedIsConstexpr": true,
+// CHECK-NEXT:    "exists": true,
+// CHECK-NEXT:    "isConstexpr": true,
+// CHECK-NEXT:    "needsImplicit": true,
 // CHECK-NEXT:    "trivial": true
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   "dtor": {
-// CHECK-NEXT:    "irrelevant": true, 
-// CHECK-NEXT:    "simple": true, 
+// CHECK-NEXT:    "irrelevant": true,
+// CHECK-NEXT:    "simple": true,
 // CHECK-NEXT:    "trivial": true
-// CHECK-NEXT:   }, 
-// CHECK-NEXT:   "hasConstexprNonCopyMoveConstructor": true, 
-// CHECK-NEXT:   "isAggregate": true, 
-// CHECK-NEXT:   "isEmpty": true, 
-// CHECK-NEXT:   "isLiteral": true, 
-// CHECK-NEXT:   "isPOD": true, 
-// CHECK-NEXT:   "isStandardLayout": true, 
-// CHECK-NEXT:   "isTrivial": true, 
-// CHECK-NEXT:   "isTriviallyCopyable": true, 
+// CHECK-NEXT:   },
+// CHECK-NEXT:   "hasConstexprNonCopyMoveConstructor": true,
+// CHECK-NEXT:   "isAggregate": true,
+// CHECK-NEXT:   "isEmpty": true,
+// CHECK-NEXT:   "isLiteral": true,
+// CHECK-NEXT:   "isPOD": true,
+// CHECK-NEXT:   "isStandardLayout": true,
+// CHECK-NEXT:   "isTrivial": true,
+// CHECK-NEXT:   "isTriviallyCopyable": true,
 // CHECK-NEXT:   "moveAssign": {
-// CHECK-NEXT:    "exists": true, 
-// CHECK-NEXT:    "simple": true, 
+// CHECK-NEXT:    "exists": true,
+// CHECK-NEXT:    "simple": true,
 // CHECK-NEXT:    "trivial": true
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   "moveCtor": {
-// CHECK-NEXT:    "exists": true, 
-// CHECK-NEXT:    "needsImplicit": true, 
-// CHECK-NEXT:    "simple": true, 
+// CHECK-NEXT:    "exists": true,
+// CHECK-NEXT:    "needsImplicit": true,
+// CHECK-NEXT:    "simple": true,
 // CHECK-NEXT:    "trivial": true
 // CHECK-NEXT:   }
-// CHECK-NEXT:  }, 
+// CHECK-NEXT:  },
 // CHECK-NEXT:  "inner": [
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "id": "0x{{.*}}", 
-// CHECK-NEXT:    "kind": "CXXRecordDecl", 
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "CXXRecordDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "col": 8, 
-// CHECK-NEXT:     "file": "{{.*}}", 
+// CHECK-NEXT:     "col": 8,
+// CHECK-NEXT:     "file": "{{.*}}",
 // CHECK-NEXT:     "line": 66
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "col": 1, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 1,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 66
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "col": 8, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 8,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 66
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "isImplicit": true, 
-// CHECK-NEXT:    "name": "Base3", 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "isImplicit": true,
+// CHECK-NEXT:    "name": "Base3",
 // CHECK-NEXT:    "tagUsed": "struct"
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "id": "0x{{.*}}", 
-// CHECK-NEXT:    "kind": "CXXMethodDecl", 
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "CXXMethodDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "col": 8, 
-// CHECK-NEXT:     "file": "{{.*}}", 
+// CHECK-NEXT:     "col": 8,
+// CHECK-NEXT:     "file": "{{.*}}",
 // CHECK-NEXT:     "line": 66
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "col": 8, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 8,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 66
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "col": 8, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 8,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 66
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "isImplicit": true, 
-// CHECK-NEXT:    "name": "operator=", 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "isImplicit": true,
+// CHECK-NEXT:    "name": "operator=",
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "Base3 &(const Base3 &)"
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "inline": true, 
-// CHECK-NEXT:    "constexpr": true, 
-// CHECK-NEXT:    "explicitlyDefaulted": "default", 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "inline": true,
+// CHECK-NEXT:    "constexpr": true,
+// CHECK-NEXT:    "explicitlyDefaulted": "default",
 // CHECK-NEXT:    "inner": [
 // CHECK-NEXT:     {
-// CHECK-NEXT:      "id": "0x{{.*}}", 
-// CHECK-NEXT:      "kind": "ParmVarDecl", 
+// CHECK-NEXT:      "id": "0x{{.*}}",
+// CHECK-NEXT:      "kind": "ParmVarDecl",
 // CHECK-NEXT:      "loc": {
-// CHECK-NEXT:       "col": 8, 
-// CHECK-NEXT:       "file": "{{.*}}", 
+// CHECK-NEXT:       "col": 8,
+// CHECK-NEXT:       "file": "{{.*}}",
 // CHECK-NEXT:       "line": 66
-// CHECK-NEXT:      }, 
+// CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
-// CHECK-NEXT:        "col": 8, 
-// CHECK-NEXT:        "file": "{{.*}}", 
+// CHECK-NEXT:        "col": 8,
+// CHECK-NEXT:        "file": "{{.*}}",
 // CHECK-NEXT:        "line": 66
-// CHECK-NEXT:       }, 
+// CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
-// CHECK-NEXT:        "col": 8, 
-// CHECK-NEXT:        "file": "{{.*}}", 
+// CHECK-NEXT:        "col": 8,
+// CHECK-NEXT:        "file": "{{.*}}",
 // CHECK-NEXT:        "line": 66
 // CHECK-NEXT:       }
-// CHECK-NEXT:      }, 
+// CHECK-NEXT:      },
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "const Base3 &"
 // CHECK-NEXT:      }
 // CHECK-NEXT:     }
 // CHECK-NEXT:    ]
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "id": "0x{{.*}}", 
-// CHECK-NEXT:    "kind": "CXXMethodDecl", 
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "CXXMethodDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "col": 8, 
-// CHECK-NEXT:     "file": "{{.*}}", 
+// CHECK-NEXT:     "col": 8,
+// CHECK-NEXT:     "file": "{{.*}}",
 // CHECK-NEXT:     "line": 66
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "col": 8, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 8,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 66
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "col": 8, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 8,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 66
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "isImplicit": true, 
-// CHECK-NEXT:    "name": "operator=", 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "isImplicit": true,
+// CHECK-NEXT:    "name": "operator=",
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "Base3 &(Base3 &&)"
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "inline": true, 
-// CHECK-NEXT:    "constexpr": true, 
-// CHECK-NEXT:    "explicitlyDefaulted": "default", 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "inline": true,
+// CHECK-NEXT:    "constexpr": true,
+// CHECK-NEXT:    "explicitlyDefaulted": "default",
 // CHECK-NEXT:    "inner": [
 // CHECK-NEXT:     {
-// CHECK-NEXT:      "id": "0x{{.*}}", 
-// CHECK-NEXT:      "kind": "ParmVarDecl", 
+// CHECK-NEXT:      "id": "0x{{.*}}",
+// CHECK-NEXT:      "kind": "ParmVarDecl",
 // CHECK-NEXT:      "loc": {
-// CHECK-NEXT:       "col": 8, 
-// CHECK-NEXT:       "file": "{{.*}}", 
+// CHECK-NEXT:       "col": 8,
+// CHECK-NEXT:       "file": "{{.*}}",
 // CHECK-NEXT:       "line": 66
-// CHECK-NEXT:      }, 
+// CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
-// CHECK-NEXT:        "col": 8, 
-// CHECK-NEXT:        "file": "{{.*}}", 
+// CHECK-NEXT:        "col": 8,
+// CHECK-NEXT:        "file": "{{.*}}",
 // CHECK-NEXT:        "line": 66
-// CHECK-NEXT:       }, 
+// CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
-// CHECK-NEXT:        "col": 8, 
-// CHECK-NEXT:        "file": "{{.*}}", 
+// CHECK-NEXT:        "col": 8,
+// CHECK-NEXT:        "file": "{{.*}}",
 // CHECK-NEXT:        "line": 66
 // CHECK-NEXT:       }
-// CHECK-NEXT:      }, 
+// CHECK-NEXT:      },
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "Base3 &&"
 // CHECK-NEXT:      }
 // CHECK-NEXT:     }
 // CHECK-NEXT:    ]
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "id": "0x{{.*}}", 
-// CHECK-NEXT:    "kind": "CXXDestructorDecl", 
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "CXXDestructorDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "col": 8, 
-// CHECK-NEXT:     "file": "{{.*}}", 
+// CHECK-NEXT:     "col": 8,
+// CHECK-NEXT:     "file": "{{.*}}",
 // CHECK-NEXT:     "line": 66
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "col": 8, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 8,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 66
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "col": 8, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 8,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 66
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "isImplicit": true, 
-// CHECK-NEXT:    "name": "~Base3", 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "isImplicit": true,
+// CHECK-NEXT:    "name": "~Base3",
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "void ()"
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "inline": true, 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "inline": true,
 // CHECK-NEXT:    "explicitlyDefaulted": "default"
 // CHECK-NEXT:   }
 // CHECK-NEXT:  ]
 // CHECK-NEXT: }
 
 
-// CHECK:  "kind": "CXXRecordDecl", 
+// CHECK:  "kind": "CXXRecordDecl",
 // CHECK-NEXT:  "loc": {
-// CHECK-NEXT:   "col": 8, 
-// CHECK-NEXT:   "file": "{{.*}}", 
+// CHECK-NEXT:   "col": 8,
+// CHECK-NEXT:   "file": "{{.*}}",
 // CHECK-NEXT:   "line": 68
-// CHECK-NEXT:  }, 
+// CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
-// CHECK-NEXT:    "col": 1, 
-// CHECK-NEXT:    "file": "{{.*}}", 
+// CHECK-NEXT:    "col": 1,
+// CHECK-NEXT:    "file": "{{.*}}",
 // CHECK-NEXT:    "line": 68
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
-// CHECK-NEXT:    "col": 1, 
-// CHECK-NEXT:    "file": "{{.*}}", 
+// CHECK-NEXT:    "col": 1,
+// CHECK-NEXT:    "file": "{{.*}}",
 // CHECK-NEXT:    "line": 69
 // CHECK-NEXT:   }
-// CHECK-NEXT:  }, 
-// CHECK-NEXT:  "name": "Derived1", 
-// CHECK-NEXT:  "tagUsed": "struct", 
-// CHECK-NEXT:  "completeDefinition": true, 
+// CHECK-NEXT:  },
+// CHECK-NEXT:  "name": "Derived1",
+// CHECK-NEXT:  "tagUsed": "struct",
+// CHECK-NEXT:  "completeDefinition": true,
 // CHECK-NEXT:  "definitionData": {
-// CHECK-NEXT:   "canConstDefaultInit": true, 
-// CHECK-NEXT:   "canPassInRegisters": true, 
+// CHECK-NEXT:   "canConstDefaultInit": true,
+// CHECK-NEXT:   "canPassInRegisters": true,
 // CHECK-NEXT:   "copyAssign": {
-// CHECK-NEXT:    "hasConstParam": true, 
-// CHECK-NEXT:    "implicitHasConstParam": true, 
-// CHECK-NEXT:    "needsImplicit": true, 
+// CHECK-NEXT:    "hasConstParam": true,
+// CHECK-NEXT:    "implicitHasConstParam": true,
+// CHECK-NEXT:    "needsImplicit": true,
 // CHECK-NEXT:    "trivial": true
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   "copyCtor": {
-// CHECK-NEXT:    "hasConstParam": true, 
-// CHECK-NEXT:    "implicitHasConstParam": true, 
-// CHECK-NEXT:    "needsImplicit": true, 
-// CHECK-NEXT:    "simple": true, 
+// CHECK-NEXT:    "hasConstParam": true,
+// CHECK-NEXT:    "implicitHasConstParam": true,
+// CHECK-NEXT:    "needsImplicit": true,
+// CHECK-NEXT:    "simple": true,
 // CHECK-NEXT:    "trivial": true
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   "defaultCtor": {
-// CHECK-NEXT:    "defaultedIsConstexpr": true, 
-// CHECK-NEXT:    "exists": true, 
-// CHECK-NEXT:    "isConstexpr": true, 
-// CHECK-NEXT:    "needsImplicit": true, 
+// CHECK-NEXT:    "defaultedIsConstexpr": true,
+// CHECK-NEXT:    "exists": true,
+// CHECK-NEXT:    "isConstexpr": true,
+// CHECK-NEXT:    "needsImplicit": true,
 // CHECK-NEXT:    "trivial": true
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   "dtor": {
-// CHECK-NEXT:    "irrelevant": true, 
-// CHECK-NEXT:    "needsImplicit": true, 
-// CHECK-NEXT:    "simple": true, 
-// CHECK-NEXT:    "trivial": true
-// CHECK-NEXT:   }, 
-// CHECK-NEXT:   "hasConstexprNonCopyMoveConstructor": true, 
-// CHECK-NEXT:   "isAggregate": true, 
-// CHECK-NEXT:   "isEmpty": true, 
-// CHECK-NEXT:   "isLiteral": true, 
-// CHECK-NEXT:   "isStandardLayout": true, 
-// CHECK-NEXT:   "isTrivial": true, 
-// CHECK-NEXT:   "isTriviallyCopyable": true, 
+// CHECK-NEXT:    "irrelevant": true,
+// CHECK-NEXT:    "needsImplicit": true,
+// CHECK-NEXT:    "simple": true,
+// CHECK-NEXT:    "trivial": true
+// CHECK-NEXT:   },
+// CHECK-NEXT:   "hasConstexprNonCopyMoveConstructor": true,
+// CHECK-NEXT:   "isAggregate": true,
+// CHECK-NEXT:   "isEmpty": true,
+// CHECK-NEXT:   "isLiteral": true,
+// CHECK-NEXT:   "isStandardLayout": true,
+// CHECK-NEXT:   "isTrivial": true,
+// CHECK-NEXT:   "isTriviallyCopyable": true,
 // CHECK-NEXT:   "moveAssign": {
-// CHECK-NEXT:    "exists": true, 
-// CHECK-NEXT:    "needsImplicit": true, 
-// CHECK-NEXT:    "simple": true, 
+// CHECK-NEXT:    "exists": true,
+// CHECK-NEXT:    "needsImplicit": true,
+// CHECK-NEXT:    "simple": true,
 // CHECK-NEXT:    "trivial": true
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   "moveCtor": {
-// CHECK-NEXT:    "exists": true, 
-// CHECK-NEXT:    "needsImplicit": true, 
-// CHECK-NEXT:    "simple": true, 
+// CHECK-NEXT:    "exists": true,
+// CHECK-NEXT:    "needsImplicit": true,
+// CHECK-NEXT:    "simple": true,
 // CHECK-NEXT:    "trivial": true
 // CHECK-NEXT:   }
-// CHECK-NEXT:  }, 
+// CHECK-NEXT:  },
 // CHECK-NEXT:  "bases": [
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "access": "public", 
+// CHECK-NEXT:    "access": "public",
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "Base1"
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "writtenAccess": "none"
 // CHECK-NEXT:   }
-// CHECK-NEXT:  ], 
+// CHECK-NEXT:  ],
 // CHECK-NEXT:  "inner": [
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "id": "0x{{.*}}", 
-// CHECK-NEXT:    "kind": "CXXRecordDecl", 
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "CXXRecordDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "col": 8, 
-// CHECK-NEXT:     "file": "{{.*}}", 
+// CHECK-NEXT:     "col": 8,
+// CHECK-NEXT:     "file": "{{.*}}",
 // CHECK-NEXT:     "line": 68
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "col": 1, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 1,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 68
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "col": 8, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 8,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 68
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "isImplicit": true, 
-// CHECK-NEXT:    "name": "Derived1", 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "isImplicit": true,
+// CHECK-NEXT:    "name": "Derived1",
 // CHECK-NEXT:    "tagUsed": "struct"
 // CHECK-NEXT:   }
 // CHECK-NEXT:  ]
 // CHECK-NEXT: }
 
 
-// CHECK:  "kind": "CXXRecordDecl", 
+// CHECK:  "kind": "CXXRecordDecl",
 // CHECK-NEXT:  "loc": {
-// CHECK-NEXT:   "col": 8, 
-// CHECK-NEXT:   "file": "{{.*}}", 
+// CHECK-NEXT:   "col": 8,
+// CHECK-NEXT:   "file": "{{.*}}",
 // CHECK-NEXT:   "line": 71
-// CHECK-NEXT:  }, 
+// CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
-// CHECK-NEXT:    "col": 1, 
-// CHECK-NEXT:    "file": "{{.*}}", 
+// CHECK-NEXT:    "col": 1,
+// CHECK-NEXT:    "file": "{{.*}}",
 // CHECK-NEXT:    "line": 71
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
-// CHECK-NEXT:    "col": 1, 
-// CHECK-NEXT:    "file": "{{.*}}", 
+// CHECK-NEXT:    "col": 1,
+// CHECK-NEXT:    "file": "{{.*}}",
 // CHECK-NEXT:    "line": 72
 // CHECK-NEXT:   }
-// CHECK-NEXT:  }, 
-// CHECK-NEXT:  "name": "Derived2", 
-// CHECK-NEXT:  "tagUsed": "struct", 
-// CHECK-NEXT:  "completeDefinition": true, 
+// CHECK-NEXT:  },
+// CHECK-NEXT:  "name": "Derived2",
+// CHECK-NEXT:  "tagUsed": "struct",
+// CHECK-NEXT:  "completeDefinition": true,
 // CHECK-NEXT:  "definitionData": {
-// CHECK-NEXT:   "canConstDefaultInit": true, 
-// CHECK-NEXT:   "canPassInRegisters": true, 
+// CHECK-NEXT:   "canConstDefaultInit": true,
+// CHECK-NEXT:   "canPassInRegisters": true,
 // CHECK-NEXT:   "copyAssign": {
-// CHECK-NEXT:    "hasConstParam": true, 
-// CHECK-NEXT:    "implicitHasConstParam": true, 
-// CHECK-NEXT:    "needsImplicit": true, 
+// CHECK-NEXT:    "hasConstParam": true,
+// CHECK-NEXT:    "implicitHasConstParam": true,
+// CHECK-NEXT:    "needsImplicit": true,
 // CHECK-NEXT:    "trivial": true
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   "copyCtor": {
-// CHECK-NEXT:    "hasConstParam": true, 
-// CHECK-NEXT:    "implicitHasConstParam": true, 
-// CHECK-NEXT:    "needsImplicit": true, 
-// CHECK-NEXT:    "simple": true, 
+// CHECK-NEXT:    "hasConstParam": true,
+// CHECK-NEXT:    "implicitHasConstParam": true,
+// CHECK-NEXT:    "needsImplicit": true,
+// CHECK-NEXT:    "simple": true,
 // CHECK-NEXT:    "trivial": true
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   "defaultCtor": {
-// CHECK-NEXT:    "defaultedIsConstexpr": true, 
-// CHECK-NEXT:    "exists": true, 
-// CHECK-NEXT:    "isConstexpr": true, 
-// CHECK-NEXT:    "needsImplicit": true, 
+// CHECK-NEXT:    "defaultedIsConstexpr": true,
+// CHECK-NEXT:    "exists": true,
+// CHECK-NEXT:    "isConstexpr": true,
+// CHECK-NEXT:    "needsImplicit": true,
 // CHECK-NEXT:    "trivial": true
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   "dtor": {
-// CHECK-NEXT:    "irrelevant": true, 
-// CHECK-NEXT:    "needsImplicit": true, 
-// CHECK-NEXT:    "simple": true, 
-// CHECK-NEXT:    "trivial": true
-// CHECK-NEXT:   }, 
-// CHECK-NEXT:   "hasConstexprNonCopyMoveConstructor": true, 
-// CHECK-NEXT:   "isEmpty": true, 
-// CHECK-NEXT:   "isLiteral": true, 
-// CHECK-NEXT:   "isStandardLayout": true, 
-// CHECK-NEXT:   "isTrivial": true, 
-// CHECK-NEXT:   "isTriviallyCopyable": true, 
+// CHECK-NEXT:    "irrelevant": true,
+// CHECK-NEXT:    "needsImplicit": true,
+// CHECK-NEXT:    "simple": true,
+// CHECK-NEXT:    "trivial": true
+// CHECK-NEXT:   },
+// CHECK-NEXT:   "hasConstexprNonCopyMoveConstructor": true,
+// CHECK-NEXT:   "isEmpty": true,
+// CHECK-NEXT:   "isLiteral": true,
+// CHECK-NEXT:   "isStandardLayout": true,
+// CHECK-NEXT:   "isTrivial": true,
+// CHECK-NEXT:   "isTriviallyCopyable": true,
 // CHECK-NEXT:   "moveAssign": {
-// CHECK-NEXT:    "exists": true, 
-// CHECK-NEXT:    "needsImplicit": true, 
-// CHECK-NEXT:    "simple": true, 
+// CHECK-NEXT:    "exists": true,
+// CHECK-NEXT:    "needsImplicit": true,
+// CHECK-NEXT:    "simple": true,
 // CHECK-NEXT:    "trivial": true
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   "moveCtor": {
-// CHECK-NEXT:    "exists": true, 
-// CHECK-NEXT:    "needsImplicit": true, 
-// CHECK-NEXT:    "simple": true, 
+// CHECK-NEXT:    "exists": true,
+// CHECK-NEXT:    "needsImplicit": true,
+// CHECK-NEXT:    "simple": true,
 // CHECK-NEXT:    "trivial": true
 // CHECK-NEXT:   }
-// CHECK-NEXT:  }, 
+// CHECK-NEXT:  },
 // CHECK-NEXT:  "bases": [
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "access": "private", 
+// CHECK-NEXT:    "access": "private",
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "Base1"
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "writtenAccess": "private"
 // CHECK-NEXT:   }
-// CHECK-NEXT:  ], 
+// CHECK-NEXT:  ],
 // CHECK-NEXT:  "inner": [
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "id": "0x{{.*}}", 
-// CHECK-NEXT:    "kind": "CXXRecordDecl", 
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "CXXRecordDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "col": 8, 
-// CHECK-NEXT:     "file": "{{.*}}", 
+// CHECK-NEXT:     "col": 8,
+// CHECK-NEXT:     "file": "{{.*}}",
 // CHECK-NEXT:     "line": 71
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "col": 1, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 1,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 71
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "col": 8, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 8,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 71
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "isImplicit": true, 
-// CHECK-NEXT:    "name": "Derived2", 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "isImplicit": true,
+// CHECK-NEXT:    "name": "Derived2",
 // CHECK-NEXT:    "tagUsed": "struct"
 // CHECK-NEXT:   }
 // CHECK-NEXT:  ]
 // CHECK-NEXT: }
 
 
-// CHECK:  "kind": "CXXRecordDecl", 
+// CHECK:  "kind": "CXXRecordDecl",
 // CHECK-NEXT:  "loc": {
-// CHECK-NEXT:   "col": 8, 
-// CHECK-NEXT:   "file": "{{.*}}", 
+// CHECK-NEXT:   "col": 8,
+// CHECK-NEXT:   "file": "{{.*}}",
 // CHECK-NEXT:   "line": 74
-// CHECK-NEXT:  }, 
+// CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
-// CHECK-NEXT:    "col": 1, 
-// CHECK-NEXT:    "file": "{{.*}}", 
+// CHECK-NEXT:    "col": 1,
+// CHECK-NEXT:    "file": "{{.*}}",
 // CHECK-NEXT:    "line": 74
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
-// CHECK-NEXT:    "col": 1, 
-// CHECK-NEXT:    "file": "{{.*}}", 
+// CHECK-NEXT:    "col": 1,
+// CHECK-NEXT:    "file": "{{.*}}",
 // CHECK-NEXT:    "line": 75
 // CHECK-NEXT:   }
-// CHECK-NEXT:  }, 
-// CHECK-NEXT:  "name": "Derived3", 
-// CHECK-NEXT:  "tagUsed": "struct", 
-// CHECK-NEXT:  "completeDefinition": true, 
+// CHECK-NEXT:  },
+// CHECK-NEXT:  "name": "Derived3",
+// CHECK-NEXT:  "tagUsed": "struct",
+// CHECK-NEXT:  "completeDefinition": true,
 // CHECK-NEXT:  "definitionData": {
-// CHECK-NEXT:   "canConstDefaultInit": true, 
+// CHECK-NEXT:   "canConstDefaultInit": true,
 // CHECK-NEXT:   "copyAssign": {
-// CHECK-NEXT:    "hasConstParam": true, 
-// CHECK-NEXT:    "implicitHasConstParam": true, 
+// CHECK-NEXT:    "hasConstParam": true,
+// CHECK-NEXT:    "implicitHasConstParam": true,
 // CHECK-NEXT:    "nonTrivial": true
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   "copyCtor": {
-// CHECK-NEXT:    "hasConstParam": true, 
-// CHECK-NEXT:    "implicitHasConstParam": true, 
-// CHECK-NEXT:    "needsImplicit": true, 
-// CHECK-NEXT:    "nonTrivial": true, 
+// CHECK-NEXT:    "hasConstParam": true,
+// CHECK-NEXT:    "implicitHasConstParam": true,
+// CHECK-NEXT:    "needsImplicit": true,
+// CHECK-NEXT:    "nonTrivial": true,
 // CHECK-NEXT:    "simple": true
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   "defaultCtor": {
-// CHECK-NEXT:    "exists": true, 
-// CHECK-NEXT:    "needsImplicit": true, 
+// CHECK-NEXT:    "exists": true,
+// CHECK-NEXT:    "needsImplicit": true,
 // CHECK-NEXT:    "nonTrivial": true
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   "dtor": {
-// CHECK-NEXT:    "irrelevant": true, 
-// CHECK-NEXT:    "simple": true, 
+// CHECK-NEXT:    "irrelevant": true,
+// CHECK-NEXT:    "simple": true,
 // CHECK-NEXT:    "trivial": true
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   "moveAssign": {
-// CHECK-NEXT:    "exists": true, 
-// CHECK-NEXT:    "nonTrivial": true, 
+// CHECK-NEXT:    "exists": true,
+// CHECK-NEXT:    "nonTrivial": true,
 // CHECK-NEXT:    "simple": true
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   "moveCtor": {
-// CHECK-NEXT:    "exists": true, 
-// CHECK-NEXT:    "needsImplicit": true, 
-// CHECK-NEXT:    "nonTrivial": true, 
+// CHECK-NEXT:    "exists": true,
+// CHECK-NEXT:    "needsImplicit": true,
+// CHECK-NEXT:    "nonTrivial": true,
 // CHECK-NEXT:    "simple": true
 // CHECK-NEXT:   }
-// CHECK-NEXT:  }, 
+// CHECK-NEXT:  },
 // CHECK-NEXT:  "bases": [
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "access": "public", 
-// CHECK-NEXT:    "isVirtual": true, 
+// CHECK-NEXT:    "access": "public",
+// CHECK-NEXT:    "isVirtual": true,
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "Base1"
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "writtenAccess": "none"
 // CHECK-NEXT:   }
-// CHECK-NEXT:  ], 
+// CHECK-NEXT:  ],
 // CHECK-NEXT:  "inner": [
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "id": "0x{{.*}}", 
-// CHECK-NEXT:    "kind": "CXXRecordDecl", 
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "CXXRecordDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "col": 8, 
-// CHECK-NEXT:     "file": "{{.*}}", 
+// CHECK-NEXT:     "col": 8,
+// CHECK-NEXT:     "file": "{{.*}}",
 // CHECK-NEXT:     "line": 74
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "col": 1, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 1,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 74
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "col": 8, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 8,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 74
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "isImplicit": true, 
-// CHECK-NEXT:    "name": "Derived3", 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "isImplicit": true,
+// CHECK-NEXT:    "name": "Derived3",
 // CHECK-NEXT:    "tagUsed": "struct"
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "id": "0x{{.*}}", 
-// CHECK-NEXT:    "kind": "CXXMethodDecl", 
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "CXXMethodDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "col": 8, 
-// CHECK-NEXT:     "file": "{{.*}}", 
+// CHECK-NEXT:     "col": 8,
+// CHECK-NEXT:     "file": "{{.*}}",
 // CHECK-NEXT:     "line": 74
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "col": 8, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 8,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 74
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "col": 8, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 8,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 74
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "isImplicit": true, 
-// CHECK-NEXT:    "name": "operator=", 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "isImplicit": true,
+// CHECK-NEXT:    "name": "operator=",
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "Derived3 &(const Derived3 &)"
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "inline": true, 
-// CHECK-NEXT:    "explicitlyDefaulted": "default", 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "inline": true,
+// CHECK-NEXT:    "explicitlyDefaulted": "default",
 // CHECK-NEXT:    "inner": [
 // CHECK-NEXT:     {
-// CHECK-NEXT:      "id": "0x{{.*}}", 
-// CHECK-NEXT:      "kind": "ParmVarDecl", 
+// CHECK-NEXT:      "id": "0x{{.*}}",
+// CHECK-NEXT:      "kind": "ParmVarDecl",
 // CHECK-NEXT:      "loc": {
-// CHECK-NEXT:       "col": 8, 
-// CHECK-NEXT:       "file": "{{.*}}", 
+// CHECK-NEXT:       "col": 8,
+// CHECK-NEXT:       "file": "{{.*}}",
 // CHECK-NEXT:       "line": 74
-// CHECK-NEXT:      }, 
+// CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
-// CHECK-NEXT:        "col": 8, 
-// CHECK-NEXT:        "file": "{{.*}}", 
+// CHECK-NEXT:        "col": 8,
+// CHECK-NEXT:        "file": "{{.*}}",
 // CHECK-NEXT:        "line": 74
-// CHECK-NEXT:       }, 
+// CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
-// CHECK-NEXT:        "col": 8, 
-// CHECK-NEXT:        "file": "{{.*}}", 
+// CHECK-NEXT:        "col": 8,
+// CHECK-NEXT:        "file": "{{.*}}",
 // CHECK-NEXT:        "line": 74
 // CHECK-NEXT:       }
-// CHECK-NEXT:      }, 
+// CHECK-NEXT:      },
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "const Derived3 &"
 // CHECK-NEXT:      }
 // CHECK-NEXT:     }
 // CHECK-NEXT:    ]
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "id": "0x{{.*}}", 
-// CHECK-NEXT:    "kind": "CXXMethodDecl", 
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "CXXMethodDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "col": 8, 
-// CHECK-NEXT:     "file": "{{.*}}", 
+// CHECK-NEXT:     "col": 8,
+// CHECK-NEXT:     "file": "{{.*}}",
 // CHECK-NEXT:     "line": 74
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "col": 8, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 8,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 74
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "col": 8, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 8,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 74
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "isImplicit": true, 
-// CHECK-NEXT:    "name": "operator=", 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "isImplicit": true,
+// CHECK-NEXT:    "name": "operator=",
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "Derived3 &(Derived3 &&)"
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "inline": true, 
-// CHECK-NEXT:    "explicitlyDefaulted": "default", 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "inline": true,
+// CHECK-NEXT:    "explicitlyDefaulted": "default",
 // CHECK-NEXT:    "inner": [
 // CHECK-NEXT:     {
-// CHECK-NEXT:      "id": "0x{{.*}}", 
-// CHECK-NEXT:      "kind": "ParmVarDecl", 
+// CHECK-NEXT:      "id": "0x{{.*}}",
+// CHECK-NEXT:      "kind": "ParmVarDecl",
 // CHECK-NEXT:      "loc": {
-// CHECK-NEXT:       "col": 8, 
-// CHECK-NEXT:       "file": "{{.*}}", 
+// CHECK-NEXT:       "col": 8,
+// CHECK-NEXT:       "file": "{{.*}}",
 // CHECK-NEXT:       "line": 74
-// CHECK-NEXT:      }, 
+// CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
-// CHECK-NEXT:        "col": 8, 
-// CHECK-NEXT:        "file": "{{.*}}", 
+// CHECK-NEXT:        "col": 8,
+// CHECK-NEXT:        "file": "{{.*}}",
 // CHECK-NEXT:        "line": 74
-// CHECK-NEXT:       }, 
+// CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
-// CHECK-NEXT:        "col": 8, 
-// CHECK-NEXT:        "file": "{{.*}}", 
+// CHECK-NEXT:        "col": 8,
+// CHECK-NEXT:        "file": "{{.*}}",
 // CHECK-NEXT:        "line": 74
 // CHECK-NEXT:       }
-// CHECK-NEXT:      }, 
+// CHECK-NEXT:      },
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "Derived3 &&"
 // CHECK-NEXT:      }
 // CHECK-NEXT:     }
 // CHECK-NEXT:    ]
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "id": "0x{{.*}}", 
-// CHECK-NEXT:    "kind": "CXXDestructorDecl", 
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "CXXDestructorDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "col": 8, 
-// CHECK-NEXT:     "file": "{{.*}}", 
+// CHECK-NEXT:     "col": 8,
+// CHECK-NEXT:     "file": "{{.*}}",
 // CHECK-NEXT:     "line": 74
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "col": 8, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 8,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 74
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "col": 8, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 8,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 74
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "isImplicit": true, 
-// CHECK-NEXT:    "name": "~Derived3", 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "isImplicit": true,
+// CHECK-NEXT:    "name": "~Derived3",
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "void ()"
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "inline": true, 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "inline": true,
 // CHECK-NEXT:    "explicitlyDefaulted": "default"
 // CHECK-NEXT:   }
 // CHECK-NEXT:  ]
 // CHECK-NEXT: }
 
 
-// CHECK:  "kind": "CXXRecordDecl", 
+// CHECK:  "kind": "CXXRecordDecl",
 // CHECK-NEXT:  "loc": {
-// CHECK-NEXT:   "col": 8, 
-// CHECK-NEXT:   "file": "{{.*}}", 
+// CHECK-NEXT:   "col": 8,
+// CHECK-NEXT:   "file": "{{.*}}",
 // CHECK-NEXT:   "line": 77
-// CHECK-NEXT:  }, 
+// CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
-// CHECK-NEXT:    "col": 1, 
-// CHECK-NEXT:    "file": "{{.*}}", 
+// CHECK-NEXT:    "col": 1,
+// CHECK-NEXT:    "file": "{{.*}}",
 // CHECK-NEXT:    "line": 77
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
-// CHECK-NEXT:    "col": 1, 
-// CHECK-NEXT:    "file": "{{.*}}", 
+// CHECK-NEXT:    "col": 1,
+// CHECK-NEXT:    "file": "{{.*}}",
 // CHECK-NEXT:    "line": 78
 // CHECK-NEXT:   }
-// CHECK-NEXT:  }, 
-// CHECK-NEXT:  "name": "Derived4", 
-// CHECK-NEXT:  "tagUsed": "struct", 
-// CHECK-NEXT:  "completeDefinition": true, 
+// CHECK-NEXT:  },
+// CHECK-NEXT:  "name": "Derived4",
+// CHECK-NEXT:  "tagUsed": "struct",
+// CHECK-NEXT:  "completeDefinition": true,
 // CHECK-NEXT:  "definitionData": {
-// CHECK-NEXT:   "canConstDefaultInit": true, 
+// CHECK-NEXT:   "canConstDefaultInit": true,
 // CHECK-NEXT:   "copyAssign": {
-// CHECK-NEXT:    "hasConstParam": true, 
-// CHECK-NEXT:    "implicitHasConstParam": true, 
+// CHECK-NEXT:    "hasConstParam": true,
+// CHECK-NEXT:    "implicitHasConstParam": true,
 // CHECK-NEXT:    "nonTrivial": true
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   "copyCtor": {
-// CHECK-NEXT:    "hasConstParam": true, 
-// CHECK-NEXT:    "implicitHasConstParam": true, 
-// CHECK-NEXT:    "needsImplicit": true, 
-// CHECK-NEXT:    "nonTrivial": true, 
+// CHECK-NEXT:    "hasConstParam": true,
+// CHECK-NEXT:    "implicitHasConstParam": true,
+// CHECK-NEXT:    "needsImplicit": true,
+// CHECK-NEXT:    "nonTrivial": true,
 // CHECK-NEXT:    "simple": true
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   "defaultCtor": {
-// CHECK-NEXT:    "exists": true, 
-// CHECK-NEXT:    "needsImplicit": true, 
+// CHECK-NEXT:    "exists": true,
+// CHECK-NEXT:    "needsImplicit": true,
 // CHECK-NEXT:    "nonTrivial": true
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   "dtor": {
-// CHECK-NEXT:    "irrelevant": true, 
-// CHECK-NEXT:    "simple": true, 
+// CHECK-NEXT:    "irrelevant": true,
+// CHECK-NEXT:    "simple": true,
 // CHECK-NEXT:    "trivial": true
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   "moveAssign": {
-// CHECK-NEXT:    "exists": true, 
-// CHECK-NEXT:    "nonTrivial": true, 
+// CHECK-NEXT:    "exists": true,
+// CHECK-NEXT:    "nonTrivial": true,
 // CHECK-NEXT:    "simple": true
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   "moveCtor": {
-// CHECK-NEXT:    "exists": true, 
-// CHECK-NEXT:    "needsImplicit": true, 
-// CHECK-NEXT:    "nonTrivial": true, 
+// CHECK-NEXT:    "exists": true,
+// CHECK-NEXT:    "needsImplicit": true,
+// CHECK-NEXT:    "nonTrivial": true,
 // CHECK-NEXT:    "simple": true
 // CHECK-NEXT:   }
-// CHECK-NEXT:  }, 
+// CHECK-NEXT:  },
 // CHECK-NEXT:  "bases": [
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "access": "public", 
+// CHECK-NEXT:    "access": "public",
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "Base1"
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "writtenAccess": "none"
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "access": "public", 
-// CHECK-NEXT:    "isVirtual": true, 
+// CHECK-NEXT:    "access": "public",
+// CHECK-NEXT:    "isVirtual": true,
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "Base2"
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "writtenAccess": "none"
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "access": "protected", 
+// CHECK-NEXT:    "access": "protected",
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "Base3"
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "writtenAccess": "protected"
 // CHECK-NEXT:   }
-// CHECK-NEXT:  ], 
+// CHECK-NEXT:  ],
 // CHECK-NEXT:  "inner": [
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "id": "0x{{.*}}", 
-// CHECK-NEXT:    "kind": "CXXRecordDecl", 
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "CXXRecordDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "col": 8, 
-// CHECK-NEXT:     "file": "{{.*}}", 
+// CHECK-NEXT:     "col": 8,
+// CHECK-NEXT:     "file": "{{.*}}",
 // CHECK-NEXT:     "line": 77
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "col": 1, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 1,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 77
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "col": 8, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 8,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 77
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "isImplicit": true, 
-// CHECK-NEXT:    "name": "Derived4", 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "isImplicit": true,
+// CHECK-NEXT:    "name": "Derived4",
 // CHECK-NEXT:    "tagUsed": "struct"
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "id": "0x{{.*}}", 
-// CHECK-NEXT:    "kind": "CXXMethodDecl", 
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "CXXMethodDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "col": 8, 
-// CHECK-NEXT:     "file": "{{.*}}", 
+// CHECK-NEXT:     "col": 8,
+// CHECK-NEXT:     "file": "{{.*}}",
 // CHECK-NEXT:     "line": 77
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "col": 8, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 8,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 77
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "col": 8, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 8,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 77
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "isImplicit": true, 
-// CHECK-NEXT:    "name": "operator=", 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "isImplicit": true,
+// CHECK-NEXT:    "name": "operator=",
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "Derived4 &(const Derived4 &)"
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "inline": true, 
-// CHECK-NEXT:    "explicitlyDefaulted": "default", 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "inline": true,
+// CHECK-NEXT:    "explicitlyDefaulted": "default",
 // CHECK-NEXT:    "inner": [
 // CHECK-NEXT:     {
-// CHECK-NEXT:      "id": "0x{{.*}}", 
-// CHECK-NEXT:      "kind": "ParmVarDecl", 
+// CHECK-NEXT:      "id": "0x{{.*}}",
+// CHECK-NEXT:      "kind": "ParmVarDecl",
 // CHECK-NEXT:      "loc": {
-// CHECK-NEXT:       "col": 8, 
-// CHECK-NEXT:       "file": "{{.*}}", 
+// CHECK-NEXT:       "col": 8,
+// CHECK-NEXT:       "file": "{{.*}}",
 // CHECK-NEXT:       "line": 77
-// CHECK-NEXT:      }, 
+// CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
-// CHECK-NEXT:        "col": 8, 
-// CHECK-NEXT:        "file": "{{.*}}", 
+// CHECK-NEXT:        "col": 8,
+// CHECK-NEXT:        "file": "{{.*}}",
 // CHECK-NEXT:        "line": 77
-// CHECK-NEXT:       }, 
+// CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
-// CHECK-NEXT:        "col": 8, 
-// CHECK-NEXT:        "file": "{{.*}}", 
+// CHECK-NEXT:        "col": 8,
+// CHECK-NEXT:        "file": "{{.*}}",
 // CHECK-NEXT:        "line": 77
 // CHECK-NEXT:       }
-// CHECK-NEXT:      }, 
+// CHECK-NEXT:      },
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "const Derived4 &"
 // CHECK-NEXT:      }
 // CHECK-NEXT:     }
 // CHECK-NEXT:    ]
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "id": "0x{{.*}}", 
-// CHECK-NEXT:    "kind": "CXXMethodDecl", 
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "CXXMethodDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "col": 8, 
-// CHECK-NEXT:     "file": "{{.*}}", 
+// CHECK-NEXT:     "col": 8,
+// CHECK-NEXT:     "file": "{{.*}}",
 // CHECK-NEXT:     "line": 77
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "col": 8, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 8,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 77
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "col": 8, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 8,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 77
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "isImplicit": true, 
-// CHECK-NEXT:    "name": "operator=", 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "isImplicit": true,
+// CHECK-NEXT:    "name": "operator=",
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "Derived4 &(Derived4 &&)"
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "inline": true, 
-// CHECK-NEXT:    "explicitlyDefaulted": "default", 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "inline": true,
+// CHECK-NEXT:    "explicitlyDefaulted": "default",
 // CHECK-NEXT:    "inner": [
 // CHECK-NEXT:     {
-// CHECK-NEXT:      "id": "0x{{.*}}", 
-// CHECK-NEXT:      "kind": "ParmVarDecl", 
+// CHECK-NEXT:      "id": "0x{{.*}}",
+// CHECK-NEXT:      "kind": "ParmVarDecl",
 // CHECK-NEXT:      "loc": {
-// CHECK-NEXT:       "col": 8, 
-// CHECK-NEXT:       "file": "{{.*}}", 
+// CHECK-NEXT:       "col": 8,
+// CHECK-NEXT:       "file": "{{.*}}",
 // CHECK-NEXT:       "line": 77
-// CHECK-NEXT:      }, 
+// CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
-// CHECK-NEXT:        "col": 8, 
-// CHECK-NEXT:        "file": "{{.*}}", 
+// CHECK-NEXT:        "col": 8,
+// CHECK-NEXT:        "file": "{{.*}}",
 // CHECK-NEXT:        "line": 77
-// CHECK-NEXT:       }, 
+// CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
-// CHECK-NEXT:        "col": 8, 
-// CHECK-NEXT:        "file": "{{.*}}", 
+// CHECK-NEXT:        "col": 8,
+// CHECK-NEXT:        "file": "{{.*}}",
 // CHECK-NEXT:        "line": 77
 // CHECK-NEXT:       }
-// CHECK-NEXT:      }, 
+// CHECK-NEXT:      },
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "Derived4 &&"
 // CHECK-NEXT:      }
 // CHECK-NEXT:     }
 // CHECK-NEXT:    ]
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "id": "0x{{.*}}", 
-// CHECK-NEXT:    "kind": "CXXDestructorDecl", 
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "CXXDestructorDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "col": 8, 
-// CHECK-NEXT:     "file": "{{.*}}", 
+// CHECK-NEXT:     "col": 8,
+// CHECK-NEXT:     "file": "{{.*}}",
 // CHECK-NEXT:     "line": 77
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "col": 8, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 8,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 77
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "col": 8, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 8,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 77
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "isImplicit": true, 
-// CHECK-NEXT:    "name": "~Derived4", 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "isImplicit": true,
+// CHECK-NEXT:    "name": "~Derived4",
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "void ()"
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "inline": true, 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "inline": true,
 // CHECK-NEXT:    "explicitlyDefaulted": "default"
 // CHECK-NEXT:   }
 // CHECK-NEXT:  ]
 // CHECK-NEXT: }
 
 
-// CHECK:  "kind": "CXXRecordDecl", 
+// CHECK:  "kind": "CXXRecordDecl",
 // CHECK-NEXT:  "loc": {
-// CHECK-NEXT:   "col": 8, 
-// CHECK-NEXT:   "file": "{{.*}}", 
+// CHECK-NEXT:   "col": 8,
+// CHECK-NEXT:   "file": "{{.*}}",
 // CHECK-NEXT:   "line": 80
-// CHECK-NEXT:  }, 
+// CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
-// CHECK-NEXT:    "col": 1, 
-// CHECK-NEXT:    "file": "{{.*}}", 
+// CHECK-NEXT:    "col": 1,
+// CHECK-NEXT:    "file": "{{.*}}",
 // CHECK-NEXT:    "line": 80
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
-// CHECK-NEXT:    "col": 1, 
-// CHECK-NEXT:    "file": "{{.*}}", 
+// CHECK-NEXT:    "col": 1,
+// CHECK-NEXT:    "file": "{{.*}}",
 // CHECK-NEXT:    "line": 81
 // CHECK-NEXT:   }
-// CHECK-NEXT:  }, 
-// CHECK-NEXT:  "name": "Derived5", 
-// CHECK-NEXT:  "tagUsed": "struct", 
-// CHECK-NEXT:  "completeDefinition": true, 
+// CHECK-NEXT:  },
+// CHECK-NEXT:  "name": "Derived5",
+// CHECK-NEXT:  "tagUsed": "struct",
+// CHECK-NEXT:  "completeDefinition": true,
 // CHECK-NEXT:  "definitionData": {
-// CHECK-NEXT:   "canConstDefaultInit": true, 
+// CHECK-NEXT:   "canConstDefaultInit": true,
 // CHECK-NEXT:   "copyAssign": {
-// CHECK-NEXT:    "hasConstParam": true, 
-// CHECK-NEXT:    "implicitHasConstParam": true, 
+// CHECK-NEXT:    "hasConstParam": true,
+// CHECK-NEXT:    "implicitHasConstParam": true,
 // CHECK-NEXT:    "nonTrivial": true
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   "copyCtor": {
-// CHECK-NEXT:    "hasConstParam": true, 
-// CHECK-NEXT:    "implicitHasConstParam": true, 
-// CHECK-NEXT:    "needsImplicit": true, 
-// CHECK-NEXT:    "nonTrivial": true, 
+// CHECK-NEXT:    "hasConstParam": true,
+// CHECK-NEXT:    "implicitHasConstParam": true,
+// CHECK-NEXT:    "needsImplicit": true,
+// CHECK-NEXT:    "nonTrivial": true,
 // CHECK-NEXT:    "simple": true
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   "defaultCtor": {
-// CHECK-NEXT:    "exists": true, 
-// CHECK-NEXT:    "needsImplicit": true, 
+// CHECK-NEXT:    "exists": true,
+// CHECK-NEXT:    "needsImplicit": true,
 // CHECK-NEXT:    "nonTrivial": true
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   "dtor": {
-// CHECK-NEXT:    "irrelevant": true, 
-// CHECK-NEXT:    "simple": true, 
+// CHECK-NEXT:    "irrelevant": true,
+// CHECK-NEXT:    "simple": true,
 // CHECK-NEXT:    "trivial": true
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   "moveAssign": {
-// CHECK-NEXT:    "exists": true, 
-// CHECK-NEXT:    "nonTrivial": true, 
+// CHECK-NEXT:    "exists": true,
+// CHECK-NEXT:    "nonTrivial": true,
 // CHECK-NEXT:    "simple": true
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   "moveCtor": {
-// CHECK-NEXT:    "exists": true, 
-// CHECK-NEXT:    "needsImplicit": true, 
-// CHECK-NEXT:    "nonTrivial": true, 
+// CHECK-NEXT:    "exists": true,
+// CHECK-NEXT:    "needsImplicit": true,
+// CHECK-NEXT:    "nonTrivial": true,
 // CHECK-NEXT:    "simple": true
 // CHECK-NEXT:   }
-// CHECK-NEXT:  }, 
+// CHECK-NEXT:  },
 // CHECK-NEXT:  "bases": [
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "access": "protected", 
-// CHECK-NEXT:    "isVirtual": true, 
+// CHECK-NEXT:    "access": "protected",
+// CHECK-NEXT:    "isVirtual": true,
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "Base1"
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "writtenAccess": "protected"
 // CHECK-NEXT:   }
-// CHECK-NEXT:  ], 
+// CHECK-NEXT:  ],
 // CHECK-NEXT:  "inner": [
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "id": "0x{{.*}}", 
-// CHECK-NEXT:    "kind": "CXXRecordDecl", 
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "CXXRecordDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "col": 8, 
-// CHECK-NEXT:     "file": "{{.*}}", 
+// CHECK-NEXT:     "col": 8,
+// CHECK-NEXT:     "file": "{{.*}}",
 // CHECK-NEXT:     "line": 80
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "col": 1, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 1,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 80
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "col": 8, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 8,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 80
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "isImplicit": true, 
-// CHECK-NEXT:    "name": "Derived5", 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "isImplicit": true,
+// CHECK-NEXT:    "name": "Derived5",
 // CHECK-NEXT:    "tagUsed": "struct"
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "id": "0x{{.*}}", 
-// CHECK-NEXT:    "kind": "CXXMethodDecl", 
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "CXXMethodDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "col": 8, 
-// CHECK-NEXT:     "file": "{{.*}}", 
+// CHECK-NEXT:     "col": 8,
+// CHECK-NEXT:     "file": "{{.*}}",
 // CHECK-NEXT:     "line": 80
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "col": 8, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 8,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 80
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "col": 8, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 8,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 80
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "isImplicit": true, 
-// CHECK-NEXT:    "name": "operator=", 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "isImplicit": true,
+// CHECK-NEXT:    "name": "operator=",
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "Derived5 &(const Derived5 &)"
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "inline": true, 
-// CHECK-NEXT:    "explicitlyDefaulted": "default", 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "inline": true,
+// CHECK-NEXT:    "explicitlyDefaulted": "default",
 // CHECK-NEXT:    "inner": [
 // CHECK-NEXT:     {
-// CHECK-NEXT:      "id": "0x{{.*}}", 
-// CHECK-NEXT:      "kind": "ParmVarDecl", 
+// CHECK-NEXT:      "id": "0x{{.*}}",
+// CHECK-NEXT:      "kind": "ParmVarDecl",
 // CHECK-NEXT:      "loc": {
-// CHECK-NEXT:       "col": 8, 
-// CHECK-NEXT:       "file": "{{.*}}", 
+// CHECK-NEXT:       "col": 8,
+// CHECK-NEXT:       "file": "{{.*}}",
 // CHECK-NEXT:       "line": 80
-// CHECK-NEXT:      }, 
+// CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
-// CHECK-NEXT:        "col": 8, 
-// CHECK-NEXT:        "file": "{{.*}}", 
+// CHECK-NEXT:        "col": 8,
+// CHECK-NEXT:        "file": "{{.*}}",
 // CHECK-NEXT:        "line": 80
-// CHECK-NEXT:       }, 
+// CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
-// CHECK-NEXT:        "col": 8, 
-// CHECK-NEXT:        "file": "{{.*}}", 
+// CHECK-NEXT:        "col": 8,
+// CHECK-NEXT:        "file": "{{.*}}",
 // CHECK-NEXT:        "line": 80
 // CHECK-NEXT:       }
-// CHECK-NEXT:      }, 
+// CHECK-NEXT:      },
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "const Derived5 &"
 // CHECK-NEXT:      }
 // CHECK-NEXT:     }
 // CHECK-NEXT:    ]
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "id": "0x{{.*}}", 
-// CHECK-NEXT:    "kind": "CXXMethodDecl", 
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "CXXMethodDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "col": 8, 
-// CHECK-NEXT:     "file": "{{.*}}", 
+// CHECK-NEXT:     "col": 8,
+// CHECK-NEXT:     "file": "{{.*}}",
 // CHECK-NEXT:     "line": 80
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "col": 8, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 8,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 80
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "col": 8, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 8,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 80
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "isImplicit": true, 
-// CHECK-NEXT:    "name": "operator=", 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "isImplicit": true,
+// CHECK-NEXT:    "name": "operator=",
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "Derived5 &(Derived5 &&)"
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "inline": true, 
-// CHECK-NEXT:    "explicitlyDefaulted": "default", 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "inline": true,
+// CHECK-NEXT:    "explicitlyDefaulted": "default",
 // CHECK-NEXT:    "inner": [
 // CHECK-NEXT:     {
-// CHECK-NEXT:      "id": "0x{{.*}}", 
-// CHECK-NEXT:      "kind": "ParmVarDecl", 
+// CHECK-NEXT:      "id": "0x{{.*}}",
+// CHECK-NEXT:      "kind": "ParmVarDecl",
 // CHECK-NEXT:      "loc": {
-// CHECK-NEXT:       "col": 8, 
-// CHECK-NEXT:       "file": "{{.*}}", 
+// CHECK-NEXT:       "col": 8,
+// CHECK-NEXT:       "file": "{{.*}}",
 // CHECK-NEXT:       "line": 80
-// CHECK-NEXT:      }, 
+// CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
-// CHECK-NEXT:        "col": 8, 
-// CHECK-NEXT:        "file": "{{.*}}", 
+// CHECK-NEXT:        "col": 8,
+// CHECK-NEXT:        "file": "{{.*}}",
 // CHECK-NEXT:        "line": 80
-// CHECK-NEXT:       }, 
+// CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
-// CHECK-NEXT:        "col": 8, 
-// CHECK-NEXT:        "file": "{{.*}}", 
+// CHECK-NEXT:        "col": 8,
+// CHECK-NEXT:        "file": "{{.*}}",
 // CHECK-NEXT:        "line": 80
 // CHECK-NEXT:       }
-// CHECK-NEXT:      }, 
+// CHECK-NEXT:      },
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "Derived5 &&"
 // CHECK-NEXT:      }
 // CHECK-NEXT:     }
 // CHECK-NEXT:    ]
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "id": "0x{{.*}}", 
-// CHECK-NEXT:    "kind": "CXXDestructorDecl", 
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "CXXDestructorDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "col": 8, 
-// CHECK-NEXT:     "file": "{{.*}}", 
+// CHECK-NEXT:     "col": 8,
+// CHECK-NEXT:     "file": "{{.*}}",
 // CHECK-NEXT:     "line": 80
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "col": 8, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 8,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 80
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "col": 8, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 8,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 80
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "isImplicit": true, 
-// CHECK-NEXT:    "name": "~Derived5", 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "isImplicit": true,
+// CHECK-NEXT:    "name": "~Derived5",
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "void ()"
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "inline": true, 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "inline": true,
 // CHECK-NEXT:    "explicitlyDefaulted": "default"
 // CHECK-NEXT:   }
 // CHECK-NEXT:  ]
 // CHECK-NEXT: }
 
 
-// CHECK:  "kind": "CXXRecordDecl", 
+// CHECK:  "kind": "CXXRecordDecl",
 // CHECK-NEXT:  "loc": {
-// CHECK-NEXT:   "col": 8, 
-// CHECK-NEXT:   "file": "{{.*}}", 
+// CHECK-NEXT:   "col": 8,
+// CHECK-NEXT:   "file": "{{.*}}",
 // CHECK-NEXT:   "line": 84
-// CHECK-NEXT:  }, 
+// CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
-// CHECK-NEXT:    "col": 1, 
-// CHECK-NEXT:    "file": "{{.*}}", 
+// CHECK-NEXT:    "col": 1,
+// CHECK-NEXT:    "file": "{{.*}}",
 // CHECK-NEXT:    "line": 84
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
-// CHECK-NEXT:    "col": 1, 
-// CHECK-NEXT:    "file": "{{.*}}", 
+// CHECK-NEXT:    "col": 1,
+// CHECK-NEXT:    "file": "{{.*}}",
 // CHECK-NEXT:    "line": 85
 // CHECK-NEXT:   }
-// CHECK-NEXT:  }, 
-// CHECK-NEXT:  "name": "Derived6", 
-// CHECK-NEXT:  "tagUsed": "struct", 
-// CHECK-NEXT:  "completeDefinition": true, 
+// CHECK-NEXT:  },
+// CHECK-NEXT:  "name": "Derived6",
+// CHECK-NEXT:  "tagUsed": "struct",
+// CHECK-NEXT:  "completeDefinition": true,
 // CHECK-NEXT:  "definitionData": {
-// CHECK-NEXT:   "canConstDefaultInit": true, 
+// CHECK-NEXT:   "canConstDefaultInit": true,
 // CHECK-NEXT:   "copyAssign": {
-// CHECK-NEXT:    "hasConstParam": true, 
-// CHECK-NEXT:    "implicitHasConstParam": true, 
-// CHECK-NEXT:    "needsImplicit": true, 
+// CHECK-NEXT:    "hasConstParam": true,
+// CHECK-NEXT:    "implicitHasConstParam": true,
+// CHECK-NEXT:    "needsImplicit": true,
 // CHECK-NEXT:    "trivial": true
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   "copyCtor": {
-// CHECK-NEXT:    "hasConstParam": true, 
-// CHECK-NEXT:    "implicitHasConstParam": true, 
-// CHECK-NEXT:    "needsImplicit": true, 
-// CHECK-NEXT:    "simple": true, 
+// CHECK-NEXT:    "hasConstParam": true,
+// CHECK-NEXT:    "implicitHasConstParam": true,
+// CHECK-NEXT:    "needsImplicit": true,
+// CHECK-NEXT:    "simple": true,
 // CHECK-NEXT:    "trivial": true
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   "defaultCtor": {
-// CHECK-NEXT:    "defaultedIsConstexpr": true, 
-// CHECK-NEXT:    "exists": true, 
-// CHECK-NEXT:    "isConstexpr": true, 
-// CHECK-NEXT:    "needsImplicit": true, 
+// CHECK-NEXT:    "defaultedIsConstexpr": true,
+// CHECK-NEXT:    "exists": true,
+// CHECK-NEXT:    "isConstexpr": true,
+// CHECK-NEXT:    "needsImplicit": true,
 // CHECK-NEXT:    "trivial": true
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   "dtor": {
-// CHECK-NEXT:    "irrelevant": true, 
-// CHECK-NEXT:    "needsImplicit": true, 
-// CHECK-NEXT:    "simple": true, 
-// CHECK-NEXT:    "trivial": true
-// CHECK-NEXT:   }, 
-// CHECK-NEXT:   "hasConstexprNonCopyMoveConstructor": true, 
-// CHECK-NEXT:   "isAggregate": true, 
-// CHECK-NEXT:   "isEmpty": true, 
-// CHECK-NEXT:   "isLiteral": true, 
-// CHECK-NEXT:   "isStandardLayout": true, 
-// CHECK-NEXT:   "isTrivial": true, 
-// CHECK-NEXT:   "isTriviallyCopyable": true, 
+// CHECK-NEXT:    "irrelevant": true,
+// CHECK-NEXT:    "needsImplicit": true,
+// CHECK-NEXT:    "simple": true,
+// CHECK-NEXT:    "trivial": true
+// CHECK-NEXT:   },
+// CHECK-NEXT:   "hasConstexprNonCopyMoveConstructor": true,
+// CHECK-NEXT:   "isAggregate": true,
+// CHECK-NEXT:   "isEmpty": true,
+// CHECK-NEXT:   "isLiteral": true,
+// CHECK-NEXT:   "isStandardLayout": true,
+// CHECK-NEXT:   "isTrivial": true,
+// CHECK-NEXT:   "isTriviallyCopyable": true,
 // CHECK-NEXT:   "moveAssign": {
-// CHECK-NEXT:    "exists": true, 
-// CHECK-NEXT:    "needsImplicit": true, 
-// CHECK-NEXT:    "simple": true, 
+// CHECK-NEXT:    "exists": true,
+// CHECK-NEXT:    "needsImplicit": true,
+// CHECK-NEXT:    "simple": true,
 // CHECK-NEXT:    "trivial": true
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   "moveCtor": {
-// CHECK-NEXT:    "exists": true, 
-// CHECK-NEXT:    "needsImplicit": true, 
-// CHECK-NEXT:    "simple": true, 
+// CHECK-NEXT:    "exists": true,
+// CHECK-NEXT:    "needsImplicit": true,
+// CHECK-NEXT:    "simple": true,
 // CHECK-NEXT:    "trivial": true
 // CHECK-NEXT:   }
-// CHECK-NEXT:  }, 
+// CHECK-NEXT:  },
 // CHECK-NEXT:  "bases": [
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "access": "public", 
-// CHECK-NEXT:    "isPackExpansion": true, 
-// CHECK-NEXT:    "isVirtual": true, 
+// CHECK-NEXT:    "access": "public",
+// CHECK-NEXT:    "isPackExpansion": true,
+// CHECK-NEXT:    "isVirtual": true,
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "Bases"
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "writtenAccess": "public"
 // CHECK-NEXT:   }
-// CHECK-NEXT:  ], 
+// CHECK-NEXT:  ],
 // CHECK-NEXT:  "inner": [
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "id": "0x{{.*}}", 
-// CHECK-NEXT:    "kind": "CXXRecordDecl", 
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "CXXRecordDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "col": 8, 
-// CHECK-NEXT:     "file": "{{.*}}", 
+// CHECK-NEXT:     "col": 8,
+// CHECK-NEXT:     "file": "{{.*}}",
 // CHECK-NEXT:     "line": 84
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "col": 1, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 1,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 84
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "col": 8, 
-// CHECK-NEXT:      "file": "{{.*}}", 
+// CHECK-NEXT:      "col": 8,
+// CHECK-NEXT:      "file": "{{.*}}",
 // CHECK-NEXT:      "line": 84
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "isImplicit": true, 
-// CHECK-NEXT:    "name": "Derived6", 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "isImplicit": true,
+// CHECK-NEXT:    "name": "Derived6",
 // CHECK-NEXT:    "tagUsed": "struct"
 // CHECK-NEXT:   }
 // CHECK-NEXT:  ]

Modified: cfe/trunk/test/AST/ast-dump-stmt-json.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/AST/ast-dump-stmt-json.cpp?rev=364043&r1=364042&r2=364043&view=diff
==============================================================================
--- cfe/trunk/test/AST/ast-dump-stmt-json.cpp (original)
+++ cfe/trunk/test/AST/ast-dump-stmt-json.cpp Fri Jun 21 06:22:35 2019
@@ -6565,7 +6565,14 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:           "qualType": "Ty"
 // CHECK-NEXT:          },
 // CHECK-NEXT:          "isDependent": true,
-// CHECK-NEXT:          "isInstantiationDependent": true
+// CHECK-NEXT:          "isInstantiationDependent": true,
+// CHECK-NEXT:          "depth": 0,
+// CHECK-NEXT:          "index": 0,
+// CHECK-NEXT:          "decl": {
+// CHECK-NEXT:           "id": "0x{{.*}}",
+// CHECK-NEXT:           "kind": "TemplateTypeParmDecl",
+// CHECK-NEXT:           "name": "Ty"
+// CHECK-NEXT:          }
 // CHECK-NEXT:         },
 // CHECK-NEXT:         {
 // CHECK-NEXT:          "associationKind": "case",
@@ -6685,7 +6692,14 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:           "qualType": "Ty"
 // CHECK-NEXT:          },
 // CHECK-NEXT:          "isDependent": true,
-// CHECK-NEXT:          "isInstantiationDependent": true
+// CHECK-NEXT:          "isInstantiationDependent": true,
+// CHECK-NEXT:          "depth": 0,
+// CHECK-NEXT:          "index": 0,
+// CHECK-NEXT:          "decl": {
+// CHECK-NEXT:           "id": "0x{{.*}}",
+// CHECK-NEXT:           "kind": "TemplateTypeParmDecl",
+// CHECK-NEXT:           "name": "Ty"
+// CHECK-NEXT:          }
 // CHECK-NEXT:         },
 // CHECK-NEXT:         {
 // CHECK-NEXT:          "associationKind": "default",

Modified: cfe/trunk/test/AST/ast-dump-template-decls-json.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/AST/ast-dump-template-decls-json.cpp?rev=364043&r1=364042&r2=364043&view=diff
==============================================================================
--- cfe/trunk/test/AST/ast-dump-template-decls-json.cpp (original)
+++ cfe/trunk/test/AST/ast-dump-template-decls-json.cpp Fri Jun 21 06:22:35 2019
@@ -56,7 +56,6 @@ template <typename Uy>
 void V<Ty>::f() {}
 
 
-
 // CHECK:  "kind": "TranslationUnitDecl",
 // CHECK-NEXT:  "loc": {},
 // CHECK-NEXT:  "range": {
@@ -129,6 +128,11 @@ void V<Ty>::f() {}
 // CHECK-NEXT:      "kind": "RecordType",
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "__NSConstantString_tag"
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "decl": {
+// CHECK-NEXT:       "id": "0x{{.*}}",
+// CHECK-NEXT:       "kind": "CXXRecordDecl",
+// CHECK-NEXT:       "name": "__NSConstantString_tag"
 // CHECK-NEXT:      }
 // CHECK-NEXT:     }
 // CHECK-NEXT:    ]
@@ -185,12 +189,18 @@ void V<Ty>::f() {}
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "__va_list_tag [1]"
 // CHECK-NEXT:      },
+// CHECK-NEXT:      "size": 1,
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
 // CHECK-NEXT:        "id": "0x{{.*}}",
 // CHECK-NEXT:        "kind": "RecordType",
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "__va_list_tag"
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "decl": {
+// CHECK-NEXT:         "id": "0x{{.*}}",
+// CHECK-NEXT:         "kind": "CXXRecordDecl",
+// CHECK-NEXT:         "name": "__va_list_tag"
 // CHECK-NEXT:        }
 // CHECK-NEXT:       }
 // CHECK-NEXT:      ]
@@ -2399,4 +2409,3 @@ void V<Ty>::f() {}
 // CHECK-NEXT:   }
 // CHECK-NEXT:  ]
 // CHECK-NEXT: }
-




More information about the cfe-commits mailing list