r374921 - Add more information to JSON AST dumping of source locations.

Aaron Ballman via cfe-commits cfe-commits at lists.llvm.org
Tue Oct 15 10:30:19 PDT 2019


Author: aaronballman
Date: Tue Oct 15 10:30:19 2019
New Revision: 374921

URL: http://llvm.org/viewvc/llvm-project?rev=374921&view=rev
Log:
Add more information to JSON AST dumping of source locations.

This adds information about the offset within the source file to the given source location as well as information about the include file a location is from. These pieces of information allow for more efficient post-processing of JSON AST dumps.

Added:
    cfe/trunk/test/AST/Inputs/json-dump-include.h
Modified:
    cfe/trunk/include/clang/AST/JSONNodeDumper.h
    cfe/trunk/lib/AST/JSONNodeDumper.cpp
    cfe/trunk/test/AST/ast-dump-comment-json.cpp
    cfe/trunk/test/AST/ast-dump-decl-context-json.cpp
    cfe/trunk/test/AST/ast-dump-decl-json.c
    cfe/trunk/test/AST/ast-dump-decl-json.m
    cfe/trunk/test/AST/ast-dump-enum-json.cpp
    cfe/trunk/test/AST/ast-dump-expr-json.c
    cfe/trunk/test/AST/ast-dump-expr-json.cpp
    cfe/trunk/test/AST/ast-dump-expr-json.m
    cfe/trunk/test/AST/ast-dump-funcs-json.cpp
    cfe/trunk/test/AST/ast-dump-if-json.cpp
    cfe/trunk/test/AST/ast-dump-macro-json.c
    cfe/trunk/test/AST/ast-dump-namespace-json.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.c
    cfe/trunk/test/AST/ast-dump-stmt-json.cpp
    cfe/trunk/test/AST/ast-dump-stmt-json.m
    cfe/trunk/test/AST/ast-dump-template-decls-json.cpp
    cfe/trunk/test/AST/ast-dump-temporaries-json.cpp
    cfe/trunk/test/AST/ast-dump-types-json.cpp
    cfe/trunk/test/AST/gen_ast_dump_json_test.py
    cfe/trunk/test/AST/multistep-explicit-cast-json.c
    cfe/trunk/test/AST/multistep-explicit-cast-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=374921&r1=374920&r2=374921&view=diff
==============================================================================
--- cfe/trunk/include/clang/AST/JSONNodeDumper.h (original)
+++ cfe/trunk/include/clang/AST/JSONNodeDumper.h Tue Oct 15 10:30:19 2019
@@ -141,6 +141,8 @@ class JSONNodeDumper
       JOS.attribute(Key, Value);
   }
 
+  void writeIncludeStack(PresumedLoc Loc, bool JustFirst = false);
+
   // Writes the attributes of a SourceLocation object without.
   void writeBareSourceLocation(SourceLocation Loc, bool IsSpelling);
 

Modified: cfe/trunk/lib/AST/JSONNodeDumper.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/AST/JSONNodeDumper.cpp?rev=374921&r1=374920&r2=374921&view=diff
==============================================================================
--- cfe/trunk/lib/AST/JSONNodeDumper.cpp (original)
+++ cfe/trunk/lib/AST/JSONNodeDumper.cpp Tue Oct 15 10:30:19 2019
@@ -180,12 +180,30 @@ void JSONNodeDumper::Visit(const Generic
   attributeOnlyIfTrue("selected", A.isSelected());
 }
 
+void JSONNodeDumper::writeIncludeStack(PresumedLoc Loc, bool JustFirst) {
+  if (Loc.isInvalid())
+    return;
+
+  JOS.attributeBegin("includedFrom");
+  JOS.objectBegin();
+
+  if (!JustFirst) {
+    // Walk the stack recursively, then print out the presumed location.
+    writeIncludeStack(SM.getPresumedLoc(Loc.getIncludeLoc()));
+  }
+
+  JOS.attribute("file", Loc.getFilename());
+  JOS.objectEnd();
+  JOS.attributeEnd();
+}
+
 void JSONNodeDumper::writeBareSourceLocation(SourceLocation Loc,
                                              bool IsSpelling) {
   PresumedLoc Presumed = SM.getPresumedLoc(Loc);
   unsigned ActualLine = IsSpelling ? SM.getSpellingLineNumber(Loc)
                                    : SM.getExpansionLineNumber(Loc);
   if (Presumed.isValid()) {
+    JOS.attribute("offset", SM.getDecomposedLoc(Loc).second);
     if (LastLocFilename != Presumed.getFilename()) {
       JOS.attribute("file", Presumed.getFilename());
       JOS.attribute("line", ActualLine);
@@ -202,6 +220,12 @@ void JSONNodeDumper::writeBareSourceLoca
     LastLocFilename = Presumed.getFilename();
     LastLocPresumedLine = PresumedLine;
     LastLocLine = ActualLine;
+
+    // Orthogonal to the file, line, and column de-duplication is whether the
+    // given location was a result of an include. If so, print where the
+    // include location came from.
+    writeIncludeStack(SM.getPresumedLoc(Presumed.getIncludeLoc()),
+                      /*JustFirst*/ true);
   }
 }
 

Added: cfe/trunk/test/AST/Inputs/json-dump-include.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/AST/Inputs/json-dump-include.h?rev=374921&view=auto
==============================================================================
--- cfe/trunk/test/AST/Inputs/json-dump-include.h (added)
+++ cfe/trunk/test/AST/Inputs/json-dump-include.h Tue Oct 15 10:30:19 2019
@@ -0,0 +1 @@
+typedef int TestTypedefFromInclude;

Modified: cfe/trunk/test/AST/ast-dump-comment-json.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/AST/ast-dump-comment-json.cpp?rev=374921&r1=374920&r2=374921&view=diff
==============================================================================
--- cfe/trunk/test/AST/ast-dump-comment-json.cpp (original)
+++ cfe/trunk/test/AST/ast-dump-comment-json.cpp Tue Oct 15 10:30:19 2019
@@ -41,16 +41,19 @@ void Test_TemplatedFunctionVariadic(int
 
 // CHECK:  "kind": "FullComment",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 72,
 // CHECK-NEXT:   "line": 3,
 // CHECK-NEXT:   "col": 4,
 // CHECK-NEXT:   "tokLen": 0
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 72,
 // CHECK-NEXT:    "col": 4,
 // CHECK-NEXT:    "tokLen": 0
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 75,
 // CHECK-NEXT:    "col": 7,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   }
@@ -60,15 +63,18 @@ void Test_TemplatedFunctionVariadic(int
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "ParagraphComment",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 72,
 // CHECK-NEXT:     "col": 4,
 // CHECK-NEXT:     "tokLen": 0
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 72,
 // CHECK-NEXT:      "col": 4,
 // CHECK-NEXT:      "tokLen": 0
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 75,
 // CHECK-NEXT:      "col": 7,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -78,15 +84,18 @@ void Test_TemplatedFunctionVariadic(int
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "TextComment",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 72,
 // CHECK-NEXT:       "col": 4,
 // CHECK-NEXT:       "tokLen": 0
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 72,
 // CHECK-NEXT:        "col": 4,
 // CHECK-NEXT:        "tokLen": 0
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 75,
 // CHECK-NEXT:        "col": 7,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -110,16 +119,19 @@ void Test_TemplatedFunctionVariadic(int
 
 // CHECK:  "kind": "FullComment",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 120,
 // CHECK-NEXT:   "line": 9,
 // CHECK-NEXT:   "col": 4,
 // CHECK-NEXT:   "tokLen": 0
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 120,
 // CHECK-NEXT:    "col": 4,
 // CHECK-NEXT:    "tokLen": 0
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 123,
 // CHECK-NEXT:    "col": 7,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   }
@@ -129,15 +141,18 @@ void Test_TemplatedFunctionVariadic(int
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "ParagraphComment",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 120,
 // CHECK-NEXT:     "col": 4,
 // CHECK-NEXT:     "tokLen": 0
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 120,
 // CHECK-NEXT:      "col": 4,
 // CHECK-NEXT:      "tokLen": 0
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 123,
 // CHECK-NEXT:      "col": 7,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -147,15 +162,18 @@ void Test_TemplatedFunctionVariadic(int
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "TextComment",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 120,
 // CHECK-NEXT:       "col": 4,
 // CHECK-NEXT:       "tokLen": 0
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 120,
 // CHECK-NEXT:        "col": 4,
 // CHECK-NEXT:        "tokLen": 0
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 123,
 // CHECK-NEXT:        "col": 7,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -170,16 +188,19 @@ void Test_TemplatedFunctionVariadic(int
 
 // CHECK:  "kind": "FullComment",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 151,
 // CHECK-NEXT:   "line": 12,
 // CHECK-NEXT:   "col": 4,
 // CHECK-NEXT:   "tokLen": 0
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 151,
 // CHECK-NEXT:    "col": 4,
 // CHECK-NEXT:    "tokLen": 0
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 161,
 // CHECK-NEXT:    "col": 14,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   }
@@ -189,15 +210,18 @@ void Test_TemplatedFunctionVariadic(int
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "ParagraphComment",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 151,
 // CHECK-NEXT:     "col": 4,
 // CHECK-NEXT:     "tokLen": 0
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 151,
 // CHECK-NEXT:      "col": 4,
 // CHECK-NEXT:      "tokLen": 0
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 151,
 // CHECK-NEXT:      "col": 4,
 // CHECK-NEXT:      "tokLen": 0
 // CHECK-NEXT:     }
@@ -207,15 +231,18 @@ void Test_TemplatedFunctionVariadic(int
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "TextComment",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 151,
 // CHECK-NEXT:       "col": 4,
 // CHECK-NEXT:       "tokLen": 0
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 151,
 // CHECK-NEXT:        "col": 4,
 // CHECK-NEXT:        "tokLen": 0
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 151,
 // CHECK-NEXT:        "col": 4,
 // CHECK-NEXT:        "tokLen": 0
 // CHECK-NEXT:       }
@@ -228,15 +255,18 @@ void Test_TemplatedFunctionVariadic(int
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "BlockCommandComment",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 153,
 // CHECK-NEXT:     "col": 6,
 // CHECK-NEXT:     "tokLen": 5
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 152,
 // CHECK-NEXT:      "col": 5,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 161,
 // CHECK-NEXT:      "col": 14,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -247,15 +277,18 @@ void Test_TemplatedFunctionVariadic(int
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "ParagraphComment",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 158,
 // CHECK-NEXT:       "col": 11,
 // CHECK-NEXT:       "tokLen": 0
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 158,
 // CHECK-NEXT:        "col": 11,
 // CHECK-NEXT:        "tokLen": 0
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 161,
 // CHECK-NEXT:        "col": 14,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -265,15 +298,18 @@ void Test_TemplatedFunctionVariadic(int
 // CHECK-NEXT:        "id": "0x{{.*}}",
 // CHECK-NEXT:        "kind": "TextComment",
 // CHECK-NEXT:        "loc": {
+// CHECK-NEXT:         "offset": 158,
 // CHECK-NEXT:         "col": 11,
 // CHECK-NEXT:         "tokLen": 0
 // CHECK-NEXT:        },
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 158,
 // CHECK-NEXT:          "col": 11,
 // CHECK-NEXT:          "tokLen": 0
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 161,
 // CHECK-NEXT:          "col": 14,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -290,16 +326,19 @@ void Test_TemplatedFunctionVariadic(int
 
 // CHECK:  "kind": "FullComment",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 197,
 // CHECK-NEXT:   "line": 15,
 // CHECK-NEXT:   "col": 4,
 // CHECK-NEXT:   "tokLen": 0
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 197,
 // CHECK-NEXT:    "col": 4,
 // CHECK-NEXT:    "tokLen": 0
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 239,
 // CHECK-NEXT:    "line": 16,
 // CHECK-NEXT:    "col": 27,
 // CHECK-NEXT:    "tokLen": 1
@@ -310,16 +349,19 @@ void Test_TemplatedFunctionVariadic(int
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "ParagraphComment",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 197,
 // CHECK-NEXT:     "line": 15,
 // CHECK-NEXT:     "col": 4,
 // CHECK-NEXT:     "tokLen": 0
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 197,
 // CHECK-NEXT:      "col": 4,
 // CHECK-NEXT:      "tokLen": 0
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 197,
 // CHECK-NEXT:      "col": 4,
 // CHECK-NEXT:      "tokLen": 0
 // CHECK-NEXT:     }
@@ -329,15 +371,18 @@ void Test_TemplatedFunctionVariadic(int
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "TextComment",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 197,
 // CHECK-NEXT:       "col": 4,
 // CHECK-NEXT:       "tokLen": 0
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 197,
 // CHECK-NEXT:        "col": 4,
 // CHECK-NEXT:        "tokLen": 0
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 197,
 // CHECK-NEXT:        "col": 4,
 // CHECK-NEXT:        "tokLen": 0
 // CHECK-NEXT:       }
@@ -350,15 +395,18 @@ void Test_TemplatedFunctionVariadic(int
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "ParamCommandComment",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 199,
 // CHECK-NEXT:     "col": 6,
 // CHECK-NEXT:     "tokLen": 5
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 198,
 // CHECK-NEXT:      "col": 5,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 216,
 // CHECK-NEXT:      "line": 16,
 // CHECK-NEXT:      "col": 4,
 // CHECK-NEXT:      "tokLen": 0
@@ -372,16 +420,19 @@ void Test_TemplatedFunctionVariadic(int
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "ParagraphComment",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 208,
 // CHECK-NEXT:       "line": 15,
 // CHECK-NEXT:       "col": 15,
 // CHECK-NEXT:       "tokLen": 0
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 208,
 // CHECK-NEXT:        "col": 15,
 // CHECK-NEXT:        "tokLen": 0
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 216,
 // CHECK-NEXT:        "line": 16,
 // CHECK-NEXT:        "col": 4,
 // CHECK-NEXT:        "tokLen": 0
@@ -392,16 +443,19 @@ void Test_TemplatedFunctionVariadic(int
 // CHECK-NEXT:        "id": "0x{{.*}}",
 // CHECK-NEXT:        "kind": "TextComment",
 // CHECK-NEXT:        "loc": {
+// CHECK-NEXT:         "offset": 208,
 // CHECK-NEXT:         "line": 15,
 // CHECK-NEXT:         "col": 15,
 // CHECK-NEXT:         "tokLen": 0
 // CHECK-NEXT:        },
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 208,
 // CHECK-NEXT:          "col": 15,
 // CHECK-NEXT:          "tokLen": 0
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 211,
 // CHECK-NEXT:          "col": 18,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -412,16 +466,19 @@ void Test_TemplatedFunctionVariadic(int
 // CHECK-NEXT:        "id": "0x{{.*}}",
 // CHECK-NEXT:        "kind": "TextComment",
 // CHECK-NEXT:        "loc": {
+// CHECK-NEXT:         "offset": 216,
 // CHECK-NEXT:         "line": 16,
 // CHECK-NEXT:         "col": 4,
 // CHECK-NEXT:         "tokLen": 0
 // CHECK-NEXT:        },
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 216,
 // CHECK-NEXT:          "col": 4,
 // CHECK-NEXT:          "tokLen": 0
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 216,
 // CHECK-NEXT:          "col": 4,
 // CHECK-NEXT:          "tokLen": 0
 // CHECK-NEXT:         }
@@ -436,15 +493,18 @@ void Test_TemplatedFunctionVariadic(int
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "ParamCommandComment",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 218,
 // CHECK-NEXT:     "col": 6,
 // CHECK-NEXT:     "tokLen": 5
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 217,
 // CHECK-NEXT:      "col": 5,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 239,
 // CHECK-NEXT:      "col": 27,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -458,15 +518,18 @@ void Test_TemplatedFunctionVariadic(int
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "ParagraphComment",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 236,
 // CHECK-NEXT:       "col": 24,
 // CHECK-NEXT:       "tokLen": 0
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 236,
 // CHECK-NEXT:        "col": 24,
 // CHECK-NEXT:        "tokLen": 0
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 239,
 // CHECK-NEXT:        "col": 27,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -476,15 +539,18 @@ void Test_TemplatedFunctionVariadic(int
 // CHECK-NEXT:        "id": "0x{{.*}}",
 // CHECK-NEXT:        "kind": "TextComment",
 // CHECK-NEXT:        "loc": {
+// CHECK-NEXT:         "offset": 236,
 // CHECK-NEXT:         "col": 24,
 // CHECK-NEXT:         "tokLen": 0
 // CHECK-NEXT:        },
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 236,
 // CHECK-NEXT:          "col": 24,
 // CHECK-NEXT:          "tokLen": 0
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 239,
 // CHECK-NEXT:          "col": 27,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -501,16 +567,19 @@ void Test_TemplatedFunctionVariadic(int
 
 // CHECK:  "kind": "FullComment",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 294,
 // CHECK-NEXT:   "line": 19,
 // CHECK-NEXT:   "col": 4,
 // CHECK-NEXT:   "tokLen": 0
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 294,
 // CHECK-NEXT:    "col": 4,
 // CHECK-NEXT:    "tokLen": 0
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 309,
 // CHECK-NEXT:    "col": 19,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   }
@@ -520,15 +589,18 @@ void Test_TemplatedFunctionVariadic(int
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "ParagraphComment",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 294,
 // CHECK-NEXT:     "col": 4,
 // CHECK-NEXT:     "tokLen": 0
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 294,
 // CHECK-NEXT:      "col": 4,
 // CHECK-NEXT:      "tokLen": 0
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 294,
 // CHECK-NEXT:      "col": 4,
 // CHECK-NEXT:      "tokLen": 0
 // CHECK-NEXT:     }
@@ -538,15 +610,18 @@ void Test_TemplatedFunctionVariadic(int
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "TextComment",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 294,
 // CHECK-NEXT:       "col": 4,
 // CHECK-NEXT:       "tokLen": 0
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 294,
 // CHECK-NEXT:        "col": 4,
 // CHECK-NEXT:        "tokLen": 0
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 294,
 // CHECK-NEXT:        "col": 4,
 // CHECK-NEXT:        "tokLen": 0
 // CHECK-NEXT:       }
@@ -559,15 +634,18 @@ void Test_TemplatedFunctionVariadic(int
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "TParamCommandComment",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 296,
 // CHECK-NEXT:     "col": 6,
 // CHECK-NEXT:     "tokLen": 6
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 295,
 // CHECK-NEXT:      "col": 5,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 309,
 // CHECK-NEXT:      "col": 19,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -578,15 +656,18 @@ void Test_TemplatedFunctionVariadic(int
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "ParagraphComment",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 306,
 // CHECK-NEXT:       "col": 16,
 // CHECK-NEXT:       "tokLen": 0
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 306,
 // CHECK-NEXT:        "col": 16,
 // CHECK-NEXT:        "tokLen": 0
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 309,
 // CHECK-NEXT:        "col": 19,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -596,15 +677,18 @@ void Test_TemplatedFunctionVariadic(int
 // CHECK-NEXT:        "id": "0x{{.*}}",
 // CHECK-NEXT:        "kind": "TextComment",
 // CHECK-NEXT:        "loc": {
+// CHECK-NEXT:         "offset": 306,
 // CHECK-NEXT:         "col": 16,
 // CHECK-NEXT:         "tokLen": 0
 // CHECK-NEXT:        },
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 306,
 // CHECK-NEXT:          "col": 16,
 // CHECK-NEXT:          "tokLen": 0
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 309,
 // CHECK-NEXT:          "col": 19,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -621,15 +705,18 @@ void Test_TemplatedFunctionVariadic(int
 
 // CHECK:  "kind": "FullComment",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 294,
 // CHECK-NEXT:   "col": 4,
 // CHECK-NEXT:   "tokLen": 0
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 294,
 // CHECK-NEXT:    "col": 4,
 // CHECK-NEXT:    "tokLen": 0
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 309,
 // CHECK-NEXT:    "col": 19,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   }
@@ -639,15 +726,18 @@ void Test_TemplatedFunctionVariadic(int
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "ParagraphComment",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 294,
 // CHECK-NEXT:     "col": 4,
 // CHECK-NEXT:     "tokLen": 0
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 294,
 // CHECK-NEXT:      "col": 4,
 // CHECK-NEXT:      "tokLen": 0
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 294,
 // CHECK-NEXT:      "col": 4,
 // CHECK-NEXT:      "tokLen": 0
 // CHECK-NEXT:     }
@@ -657,15 +747,18 @@ void Test_TemplatedFunctionVariadic(int
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "TextComment",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 294,
 // CHECK-NEXT:       "col": 4,
 // CHECK-NEXT:       "tokLen": 0
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 294,
 // CHECK-NEXT:        "col": 4,
 // CHECK-NEXT:        "tokLen": 0
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 294,
 // CHECK-NEXT:        "col": 4,
 // CHECK-NEXT:        "tokLen": 0
 // CHECK-NEXT:       }
@@ -678,15 +771,18 @@ void Test_TemplatedFunctionVariadic(int
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "TParamCommandComment",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 296,
 // CHECK-NEXT:     "col": 6,
 // CHECK-NEXT:     "tokLen": 6
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 295,
 // CHECK-NEXT:      "col": 5,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 309,
 // CHECK-NEXT:      "col": 19,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -700,15 +796,18 @@ void Test_TemplatedFunctionVariadic(int
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "ParagraphComment",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 306,
 // CHECK-NEXT:       "col": 16,
 // CHECK-NEXT:       "tokLen": 0
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 306,
 // CHECK-NEXT:        "col": 16,
 // CHECK-NEXT:        "tokLen": 0
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 309,
 // CHECK-NEXT:        "col": 19,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -718,15 +817,18 @@ void Test_TemplatedFunctionVariadic(int
 // CHECK-NEXT:        "id": "0x{{.*}}",
 // CHECK-NEXT:        "kind": "TextComment",
 // CHECK-NEXT:        "loc": {
+// CHECK-NEXT:         "offset": 306,
 // CHECK-NEXT:         "col": 16,
 // CHECK-NEXT:         "tokLen": 0
 // CHECK-NEXT:        },
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 306,
 // CHECK-NEXT:          "col": 16,
 // CHECK-NEXT:          "tokLen": 0
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 309,
 // CHECK-NEXT:          "col": 19,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -743,16 +845,19 @@ void Test_TemplatedFunctionVariadic(int
 
 // CHECK:  "kind": "FullComment",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 372,
 // CHECK-NEXT:   "line": 22,
 // CHECK-NEXT:   "col": 4,
 // CHECK-NEXT:   "tokLen": 0
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 372,
 // CHECK-NEXT:    "col": 4,
 // CHECK-NEXT:    "tokLen": 0
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 374,
 // CHECK-NEXT:    "col": 6,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   }
@@ -762,15 +867,18 @@ void Test_TemplatedFunctionVariadic(int
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "ParagraphComment",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 372,
 // CHECK-NEXT:     "col": 4,
 // CHECK-NEXT:     "tokLen": 0
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 372,
 // CHECK-NEXT:      "col": 4,
 // CHECK-NEXT:      "tokLen": 0
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 374,
 // CHECK-NEXT:      "col": 6,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -780,15 +888,18 @@ void Test_TemplatedFunctionVariadic(int
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "TextComment",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 372,
 // CHECK-NEXT:       "col": 4,
 // CHECK-NEXT:       "tokLen": 0
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 372,
 // CHECK-NEXT:        "col": 4,
 // CHECK-NEXT:        "tokLen": 0
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 372,
 // CHECK-NEXT:        "col": 4,
 // CHECK-NEXT:        "tokLen": 0
 // CHECK-NEXT:       }
@@ -799,15 +910,18 @@ void Test_TemplatedFunctionVariadic(int
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "InlineCommandComment",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 373,
 // CHECK-NEXT:       "col": 5,
 // CHECK-NEXT:       "tokLen": 1
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 373,
 // CHECK-NEXT:        "col": 5,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 374,
 // CHECK-NEXT:        "col": 6,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -826,16 +940,19 @@ void Test_TemplatedFunctionVariadic(int
 
 // CHECK:  "kind": "FullComment",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 415,
 // CHECK-NEXT:   "line": 25,
 // CHECK-NEXT:   "col": 4,
 // CHECK-NEXT:   "tokLen": 0
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 415,
 // CHECK-NEXT:    "col": 4,
 // CHECK-NEXT:    "tokLen": 0
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 434,
 // CHECK-NEXT:    "line": 26,
 // CHECK-NEXT:    "col": 8,
 // CHECK-NEXT:    "tokLen": 1
@@ -846,16 +963,19 @@ void Test_TemplatedFunctionVariadic(int
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "ParagraphComment",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 415,
 // CHECK-NEXT:     "line": 25,
 // CHECK-NEXT:     "col": 4,
 // CHECK-NEXT:     "tokLen": 0
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 415,
 // CHECK-NEXT:      "col": 4,
 // CHECK-NEXT:      "tokLen": 0
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 434,
 // CHECK-NEXT:      "line": 26,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 1
@@ -866,16 +986,19 @@ void Test_TemplatedFunctionVariadic(int
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "TextComment",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 415,
 // CHECK-NEXT:       "line": 25,
 // CHECK-NEXT:       "col": 4,
 // CHECK-NEXT:       "tokLen": 0
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 415,
 // CHECK-NEXT:        "col": 4,
 // CHECK-NEXT:        "tokLen": 0
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 415,
 // CHECK-NEXT:        "col": 4,
 // CHECK-NEXT:        "tokLen": 0
 // CHECK-NEXT:       }
@@ -886,15 +1009,18 @@ void Test_TemplatedFunctionVariadic(int
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "HTMLStartTagComment",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 417,
 // CHECK-NEXT:       "col": 6,
 // CHECK-NEXT:       "tokLen": 1
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 416,
 // CHECK-NEXT:        "col": 5,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 418,
 // CHECK-NEXT:        "col": 7,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -905,15 +1031,18 @@ void Test_TemplatedFunctionVariadic(int
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "TextComment",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 419,
 // CHECK-NEXT:       "col": 8,
 // CHECK-NEXT:       "tokLen": 3
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 419,
 // CHECK-NEXT:        "col": 8,
 // CHECK-NEXT:        "tokLen": 3
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 421,
 // CHECK-NEXT:        "col": 10,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -924,15 +1053,18 @@ void Test_TemplatedFunctionVariadic(int
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "HTMLEndTagComment",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 424,
 // CHECK-NEXT:       "col": 13,
 // CHECK-NEXT:       "tokLen": 1
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 422,
 // CHECK-NEXT:        "col": 11,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 425,
 // CHECK-NEXT:        "col": 14,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -943,16 +1075,19 @@ void Test_TemplatedFunctionVariadic(int
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "TextComment",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 430,
 // CHECK-NEXT:       "line": 26,
 // CHECK-NEXT:       "col": 4,
 // CHECK-NEXT:       "tokLen": 0
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 430,
 // CHECK-NEXT:        "col": 4,
 // CHECK-NEXT:        "tokLen": 0
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 430,
 // CHECK-NEXT:        "col": 4,
 // CHECK-NEXT:        "tokLen": 0
 // CHECK-NEXT:       }
@@ -963,15 +1098,18 @@ void Test_TemplatedFunctionVariadic(int
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "HTMLStartTagComment",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 432,
 // CHECK-NEXT:       "col": 6,
 // CHECK-NEXT:       "tokLen": 2
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 431,
 // CHECK-NEXT:        "col": 5,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 434,
 // CHECK-NEXT:        "col": 8,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -987,16 +1125,19 @@ void Test_TemplatedFunctionVariadic(int
 
 // CHECK:  "kind": "FullComment",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 466,
 // CHECK-NEXT:   "line": 29,
 // CHECK-NEXT:   "col": 4,
 // CHECK-NEXT:   "tokLen": 0
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 466,
 // CHECK-NEXT:    "col": 4,
 // CHECK-NEXT:    "tokLen": 0
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 476,
 // CHECK-NEXT:    "col": 14,
 // CHECK-NEXT:    "tokLen": 0
 // CHECK-NEXT:   }
@@ -1006,15 +1147,18 @@ void Test_TemplatedFunctionVariadic(int
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "ParagraphComment",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 466,
 // CHECK-NEXT:     "col": 4,
 // CHECK-NEXT:     "tokLen": 0
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 466,
 // CHECK-NEXT:      "col": 4,
 // CHECK-NEXT:      "tokLen": 0
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 466,
 // CHECK-NEXT:      "col": 4,
 // CHECK-NEXT:      "tokLen": 0
 // CHECK-NEXT:     }
@@ -1024,15 +1168,18 @@ void Test_TemplatedFunctionVariadic(int
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "TextComment",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 466,
 // CHECK-NEXT:       "col": 4,
 // CHECK-NEXT:       "tokLen": 0
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 466,
 // CHECK-NEXT:        "col": 4,
 // CHECK-NEXT:        "tokLen": 0
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 466,
 // CHECK-NEXT:        "col": 4,
 // CHECK-NEXT:        "tokLen": 0
 // CHECK-NEXT:       }
@@ -1045,15 +1192,18 @@ void Test_TemplatedFunctionVariadic(int
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "VerbatimBlockComment",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 468,
 // CHECK-NEXT:     "col": 6,
 // CHECK-NEXT:     "tokLen": 8
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 467,
 // CHECK-NEXT:      "col": 5,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 476,
 // CHECK-NEXT:      "col": 14,
 // CHECK-NEXT:      "tokLen": 0
 // CHECK-NEXT:     }
@@ -1065,16 +1215,19 @@ void Test_TemplatedFunctionVariadic(int
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "VerbatimBlockLineComment",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 480,
 // CHECK-NEXT:       "line": 30,
 // CHECK-NEXT:       "col": 4,
 // CHECK-NEXT:       "tokLen": 0
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 480,
 // CHECK-NEXT:        "col": 4,
 // CHECK-NEXT:        "tokLen": 0
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 484,
 // CHECK-NEXT:        "col": 8,
 // CHECK-NEXT:        "tokLen": 0
 // CHECK-NEXT:       }
@@ -1089,16 +1242,19 @@ void Test_TemplatedFunctionVariadic(int
 
 // CHECK:  "kind": "FullComment",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 537,
 // CHECK-NEXT:   "line": 34,
 // CHECK-NEXT:   "col": 4,
 // CHECK-NEXT:   "tokLen": 0
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 537,
 // CHECK-NEXT:    "col": 4,
 // CHECK-NEXT:    "tokLen": 0
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 562,
 // CHECK-NEXT:    "col": 29,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   }
@@ -1108,15 +1264,18 @@ void Test_TemplatedFunctionVariadic(int
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "ParagraphComment",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 537,
 // CHECK-NEXT:     "col": 4,
 // CHECK-NEXT:     "tokLen": 0
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 537,
 // CHECK-NEXT:      "col": 4,
 // CHECK-NEXT:      "tokLen": 0
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 537,
 // CHECK-NEXT:      "col": 4,
 // CHECK-NEXT:      "tokLen": 0
 // CHECK-NEXT:     }
@@ -1126,15 +1285,18 @@ void Test_TemplatedFunctionVariadic(int
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "TextComment",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 537,
 // CHECK-NEXT:       "col": 4,
 // CHECK-NEXT:       "tokLen": 0
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 537,
 // CHECK-NEXT:        "col": 4,
 // CHECK-NEXT:        "tokLen": 0
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 537,
 // CHECK-NEXT:        "col": 4,
 // CHECK-NEXT:        "tokLen": 0
 // CHECK-NEXT:       }
@@ -1147,15 +1309,18 @@ void Test_TemplatedFunctionVariadic(int
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "ParamCommandComment",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 539,
 // CHECK-NEXT:     "col": 6,
 // CHECK-NEXT:     "tokLen": 5
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 538,
 // CHECK-NEXT:      "col": 5,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 562,
 // CHECK-NEXT:      "col": 29,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -1167,15 +1332,18 @@ void Test_TemplatedFunctionVariadic(int
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "ParagraphComment",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 548,
 // CHECK-NEXT:       "col": 15,
 // CHECK-NEXT:       "tokLen": 0
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 548,
 // CHECK-NEXT:        "col": 15,
 // CHECK-NEXT:        "tokLen": 0
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 562,
 // CHECK-NEXT:        "col": 29,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -1185,15 +1353,18 @@ void Test_TemplatedFunctionVariadic(int
 // CHECK-NEXT:        "id": "0x{{.*}}",
 // CHECK-NEXT:        "kind": "TextComment",
 // CHECK-NEXT:        "loc": {
+// CHECK-NEXT:         "offset": 548,
 // CHECK-NEXT:         "col": 15,
 // CHECK-NEXT:         "tokLen": 0
 // CHECK-NEXT:        },
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 548,
 // CHECK-NEXT:          "col": 15,
 // CHECK-NEXT:          "tokLen": 0
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 562,
 // CHECK-NEXT:          "col": 29,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -1210,15 +1381,18 @@ void Test_TemplatedFunctionVariadic(int
 
 // CHECK:  "kind": "FullComment",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 537,
 // CHECK-NEXT:   "col": 4,
 // CHECK-NEXT:   "tokLen": 0
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 537,
 // CHECK-NEXT:    "col": 4,
 // CHECK-NEXT:    "tokLen": 0
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 562,
 // CHECK-NEXT:    "col": 29,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   }
@@ -1228,15 +1402,18 @@ void Test_TemplatedFunctionVariadic(int
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "ParagraphComment",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 537,
 // CHECK-NEXT:     "col": 4,
 // CHECK-NEXT:     "tokLen": 0
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 537,
 // CHECK-NEXT:      "col": 4,
 // CHECK-NEXT:      "tokLen": 0
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 537,
 // CHECK-NEXT:      "col": 4,
 // CHECK-NEXT:      "tokLen": 0
 // CHECK-NEXT:     }
@@ -1246,15 +1423,18 @@ void Test_TemplatedFunctionVariadic(int
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "TextComment",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 537,
 // CHECK-NEXT:       "col": 4,
 // CHECK-NEXT:       "tokLen": 0
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 537,
 // CHECK-NEXT:        "col": 4,
 // CHECK-NEXT:        "tokLen": 0
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 537,
 // CHECK-NEXT:        "col": 4,
 // CHECK-NEXT:        "tokLen": 0
 // CHECK-NEXT:       }
@@ -1267,15 +1447,18 @@ void Test_TemplatedFunctionVariadic(int
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "ParamCommandComment",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 539,
 // CHECK-NEXT:     "col": 6,
 // CHECK-NEXT:     "tokLen": 5
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 538,
 // CHECK-NEXT:      "col": 5,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 562,
 // CHECK-NEXT:      "col": 29,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -1287,15 +1470,18 @@ void Test_TemplatedFunctionVariadic(int
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "ParagraphComment",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 548,
 // CHECK-NEXT:       "col": 15,
 // CHECK-NEXT:       "tokLen": 0
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 548,
 // CHECK-NEXT:        "col": 15,
 // CHECK-NEXT:        "tokLen": 0
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 562,
 // CHECK-NEXT:        "col": 29,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -1305,15 +1491,18 @@ void Test_TemplatedFunctionVariadic(int
 // CHECK-NEXT:        "id": "0x{{.*}}",
 // CHECK-NEXT:        "kind": "TextComment",
 // CHECK-NEXT:        "loc": {
+// CHECK-NEXT:         "offset": 548,
 // CHECK-NEXT:         "col": 15,
 // CHECK-NEXT:         "tokLen": 0
 // CHECK-NEXT:        },
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 548,
 // CHECK-NEXT:          "col": 15,
 // CHECK-NEXT:          "tokLen": 0
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 562,
 // CHECK-NEXT:          "col": 29,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }

Modified: cfe/trunk/test/AST/ast-dump-decl-context-json.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/AST/ast-dump-decl-context-json.cpp?rev=374921&r1=374920&r2=374921&view=diff
==============================================================================
--- cfe/trunk/test/AST/ast-dump-decl-context-json.cpp (original)
+++ cfe/trunk/test/AST/ast-dump-decl-context-json.cpp Tue Oct 15 10:30:19 2019
@@ -14,8 +14,12 @@ void S::Method() {}
 
 } // namespace Test
 
+// NOTE: CHECK lines have been autogenerated by gen_ast_dump_json_test.py
+
+
 // CHECK:  "kind": "NamespaceDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 116,
 // CHECK-NEXT:   "file": "{{.*}}",
 // CHECK-NEXT:   "line": 3,
 // CHECK-NEXT:   "col": 11,
@@ -23,10 +27,12 @@ void S::Method() {}
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 106,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 9
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 234,
 // CHECK-NEXT:    "line": 15,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
@@ -35,19 +41,22 @@ void S::Method() {}
 // CHECK-NEXT:  "name": "Test",
 // CHECK-NEXT:  "inner": [
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "id": "0x[[NS_ID:.*]]",
+// CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "NamespaceDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 134,
 // CHECK-NEXT:     "line": 5,
 // CHECK-NEXT:     "col": 11,
 // CHECK-NEXT:     "tokLen": 2
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 124,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 9
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 156,
 // CHECK-NEXT:      "line": 7,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 1
@@ -56,19 +65,22 @@ void S::Method() {}
 // CHECK-NEXT:    "name": "NS",
 // CHECK-NEXT:    "inner": [
 // CHECK-NEXT:     {
-// CHECK-NEXT:      "id": "0x[[FUNCTION_ID:.*]]",
+// CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "FunctionDecl",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 144,
 // CHECK-NEXT:       "line": 6,
 // CHECK-NEXT:       "col": 6,
 // CHECK-NEXT:       "tokLen": 8
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 139,
 // CHECK-NEXT:        "col": 1,
 // CHECK-NEXT:        "tokLen": 4
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 153,
 // CHECK-NEXT:        "col": 15,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -84,22 +96,25 @@ void S::Method() {}
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "FunctionDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 167,
 // CHECK-NEXT:     "line": 8,
 // CHECK-NEXT:     "col": 10,
 // CHECK-NEXT:     "tokLen": 8
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 158,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 4
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 179,
 // CHECK-NEXT:      "col": 22,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
 // CHECK-NEXT:    },
-// CHECK-NEXT:    "parentDeclContextId": "0x[[NS_ID]]",
-// CHECK-NEXT:    "previousDecl": "0x[[FUNCTION_ID]]",
+// CHECK-NEXT:    "parentDeclContextId": "0x{{.*}}",
+// CHECK-NEXT:    "previousDecl": "0x{{.*}}",
 // CHECK-NEXT:    "name": "Function",
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "void ()"
@@ -110,10 +125,12 @@ void S::Method() {}
 // CHECK-NEXT:      "kind": "CompoundStmt",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 178,
 // CHECK-NEXT:        "col": 21,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 179,
 // CHECK-NEXT:        "col": 22,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -122,19 +139,22 @@ void S::Method() {}
 // CHECK-NEXT:    ]
 // CHECK-NEXT:   },
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "id": "0x[[S_ID:.*]]",
+// CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "CXXRecordDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 189,
 // CHECK-NEXT:     "line": 10,
 // CHECK-NEXT:     "col": 8,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 182,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 6
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 210,
 // CHECK-NEXT:      "line": 12,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 1
@@ -198,16 +218,19 @@ void S::Method() {}
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "CXXRecordDecl",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 189,
 // CHECK-NEXT:       "line": 10,
 // CHECK-NEXT:       "col": 8,
 // CHECK-NEXT:       "tokLen": 1
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 182,
 // CHECK-NEXT:        "col": 1,
 // CHECK-NEXT:        "tokLen": 6
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 189,
 // CHECK-NEXT:        "col": 8,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -217,19 +240,22 @@ void S::Method() {}
 // CHECK-NEXT:      "tagUsed": "struct"
 // CHECK-NEXT:     },
 // CHECK-NEXT:     {
-// CHECK-NEXT:      "id": "0x[[METHOD_ID:.*]]",
+// CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "CXXMethodDecl",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 200,
 // CHECK-NEXT:       "line": 11,
 // CHECK-NEXT:       "col": 8,
 // CHECK-NEXT:       "tokLen": 6
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 195,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 4
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 207,
 // CHECK-NEXT:        "col": 15,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -245,22 +271,25 @@ void S::Method() {}
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "CXXMethodDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 221,
 // CHECK-NEXT:     "line": 13,
 // CHECK-NEXT:     "col": 9,
 // CHECK-NEXT:     "tokLen": 6
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 213,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 4
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 231,
 // CHECK-NEXT:      "col": 19,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
 // CHECK-NEXT:    },
-// CHECK-NEXT:    "parentDeclContextId": "0x[[S_ID]]",
-// CHECK-NEXT:    "previousDecl": "0x[[METHOD_ID]]",
+// CHECK-NEXT:    "parentDeclContextId": "0x{{.*}}",
+// CHECK-NEXT:    "previousDecl": "0x{{.*}}",
 // CHECK-NEXT:    "name": "Method",
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "void ()"
@@ -271,10 +300,12 @@ void S::Method() {}
 // CHECK-NEXT:      "kind": "CompoundStmt",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 230,
 // CHECK-NEXT:        "col": 18,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 231,
 // CHECK-NEXT:        "col": 19,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }

Modified: cfe/trunk/test/AST/ast-dump-decl-json.c
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/AST/ast-dump-decl-json.c?rev=374921&r1=374920&r2=374921&view=diff
==============================================================================
--- cfe/trunk/test/AST/ast-dump-decl-json.c (original)
+++ cfe/trunk/test/AST/ast-dump-decl-json.c Tue Oct 15 10:30:19 2019
@@ -1,6 +1,9 @@
 // RUN: %clang_cc1 -triple x86_64-unknown-unknown -ast-dump=json -ast-dump-filter Test %s | FileCheck %s
 
+#include "Inputs/json-dump-include.h"
+
 int TestLocation;
+TestTypedefFromInclude TestLocationFromInclude;
 
 struct TestIndent {
   int x;
@@ -89,19 +92,68 @@ void testParmVarDecl(int TestParmVarDecl
 // NOTE: CHECK lines have been autogenerated by gen_ast_dump_json_test.py
 
 
+// CHECK:  "kind": "TypedefDecl",
+// CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 12,
+// CHECK-NEXT:   "file": "{{.*}}",
+// CHECK-NEXT:   "line": 1,
+// CHECK-NEXT:   "col": 13,
+// CHECK-NEXT:   "tokLen": 22,
+// CHECK-NEXT:   "includedFrom": {
+// CHECK-NEXT:    "file": "{{.*}}"
+// CHECK-NEXT:   }
+// CHECK-NEXT:  },
+// CHECK-NEXT:  "range": {
+// CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 0,
+// CHECK-NEXT:    "col": 1,
+// CHECK-NEXT:    "tokLen": 7,
+// CHECK-NEXT:    "includedFrom": {
+// CHECK-NEXT:     "file": "{{.*}}"
+// CHECK-NEXT:    }
+// CHECK-NEXT:   },
+// CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 12,
+// CHECK-NEXT:    "col": 13,
+// CHECK-NEXT:    "tokLen": 22,
+// CHECK-NEXT:    "includedFrom": {
+// CHECK-NEXT:     "file": "{{.*}}"
+// CHECK-NEXT:    }
+// CHECK-NEXT:   }
+// CHECK-NEXT:  },
+// CHECK-NEXT:  "isReferenced": true,
+// CHECK-NEXT:  "name": "TestTypedefFromInclude",
+// CHECK-NEXT:  "type": {
+// CHECK-NEXT:   "qualType": "int"
+// CHECK-NEXT:  },
+// CHECK-NEXT:  "inner": [
+// CHECK-NEXT:   {
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "BuiltinType",
+// CHECK-NEXT:    "type": {
+// CHECK-NEXT:     "qualType": "int"
+// CHECK-NEXT:    }
+// CHECK-NEXT:   }
+// CHECK-NEXT:  ]
+// CHECK-NEXT: }
+
+
 // CHECK:  "kind": "VarDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 149,
 // CHECK-NEXT:   "file": "{{.*}}",
-// CHECK-NEXT:   "line": 3,
+// CHECK-NEXT:   "line": 5,
 // CHECK-NEXT:   "col": 5,
 // CHECK-NEXT:   "tokLen": 12
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 145,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 3
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 149,
 // CHECK-NEXT:    "col": 5,
 // CHECK-NEXT:    "tokLen": 12
 // CHECK-NEXT:   }
@@ -113,20 +165,52 @@ void testParmVarDecl(int TestParmVarDecl
 // CHECK-NEXT: }
 
 
+// CHECK:  "kind": "VarDecl",
+// CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 186,
+// CHECK-NEXT:   "file": "{{.*}}",
+// CHECK-NEXT:   "line": 6,
+// CHECK-NEXT:   "col": 24,
+// CHECK-NEXT:   "tokLen": 23
+// CHECK-NEXT:  },
+// CHECK-NEXT:  "range": {
+// CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 163,
+// CHECK-NEXT:    "col": 1,
+// CHECK-NEXT:    "tokLen": 22
+// CHECK-NEXT:   },
+// CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 186,
+// CHECK-NEXT:    "col": 24,
+// CHECK-NEXT:    "tokLen": 23
+// CHECK-NEXT:   }
+// CHECK-NEXT:  },
+// CHECK-NEXT:  "name": "TestLocationFromInclude",
+// CHECK-NEXT:  "type": {
+// CHECK-NEXT:   "desugaredQualType": "int",
+// CHECK-NEXT:   "qualType": "TestTypedefFromInclude",
+// CHECK-NEXT:   "typeAliasDeclId": "0x{{.*}}"
+// CHECK-NEXT:  }
+// CHECK-NEXT: }
+
+
 // CHECK:  "kind": "RecordDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 219,
 // CHECK-NEXT:   "file": "{{.*}}",
-// CHECK-NEXT:   "line": 5,
+// CHECK-NEXT:   "line": 8,
 // CHECK-NEXT:   "col": 8,
 // CHECK-NEXT:   "tokLen": 10
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 212,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 6
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
-// CHECK-NEXT:    "line": 7,
+// CHECK-NEXT:    "offset": 241,
+// CHECK-NEXT:    "line": 10,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   }
@@ -139,16 +223,19 @@ void testParmVarDecl(int TestParmVarDecl
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "FieldDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "line": 6,
+// CHECK-NEXT:     "offset": 238,
+// CHECK-NEXT:     "line": 9,
 // CHECK-NEXT:     "col": 7,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 234,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 3
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 238,
 // CHECK-NEXT:      "col": 7,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -164,18 +251,21 @@ void testParmVarDecl(int TestParmVarDecl
 
 // CHECK:  "kind": "RecordDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 252,
 // CHECK-NEXT:   "file": "{{.*}}",
-// CHECK-NEXT:   "line": 9,
+// CHECK-NEXT:   "line": 12,
 // CHECK-NEXT:   "col": 8,
 // CHECK-NEXT:   "tokLen": 12
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 245,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 6
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
-// CHECK-NEXT:    "line": 14,
+// CHECK-NEXT:    "offset": 305,
+// CHECK-NEXT:    "line": 17,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   }
@@ -188,16 +278,19 @@ void testParmVarDecl(int TestParmVarDecl
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "FieldDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "line": 10,
+// CHECK-NEXT:     "offset": 273,
+// CHECK-NEXT:     "line": 13,
 // CHECK-NEXT:     "col": 7,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 269,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 3
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 273,
 // CHECK-NEXT:      "col": 7,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -211,17 +304,20 @@ void testParmVarDecl(int TestParmVarDecl
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "RecordDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "line": 11,
+// CHECK-NEXT:     "offset": 285,
+// CHECK-NEXT:     "line": 14,
 // CHECK-NEXT:     "col": 10,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 278,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 6
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "line": 13,
+// CHECK-NEXT:      "offset": 302,
+// CHECK-NEXT:      "line": 16,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -235,16 +331,19 @@ void testParmVarDecl(int TestParmVarDecl
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "FieldDecl",
 // CHECK-NEXT:      "loc": {
-// CHECK-NEXT:       "line": 12,
+// CHECK-NEXT:       "offset": 297,
+// CHECK-NEXT:       "line": 15,
 // CHECK-NEXT:       "col": 9,
 // CHECK-NEXT:       "tokLen": 1
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 293,
 // CHECK-NEXT:        "col": 5,
 // CHECK-NEXT:        "tokLen": 3
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 297,
 // CHECK-NEXT:        "col": 9,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -262,17 +361,20 @@ void testParmVarDecl(int TestParmVarDecl
 
 // CHECK:  "kind": "LabelDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 344,
 // CHECK-NEXT:   "file": "{{.*}}",
-// CHECK-NEXT:   "line": 17,
+// CHECK-NEXT:   "line": 20,
 // CHECK-NEXT:   "col": 13,
 // CHECK-NEXT:   "tokLen": 13
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 334,
 // CHECK-NEXT:    "col": 3,
 // CHECK-NEXT:    "tokLen": 9
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 344,
 // CHECK-NEXT:    "col": 13,
 // CHECK-NEXT:    "tokLen": 13
 // CHECK-NEXT:   }
@@ -284,17 +386,20 @@ void testParmVarDecl(int TestParmVarDecl
 
 // CHECK:  "kind": "TypedefDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 411,
 // CHECK-NEXT:   "file": "{{.*}}",
-// CHECK-NEXT:   "line": 21,
+// CHECK-NEXT:   "line": 24,
 // CHECK-NEXT:   "col": 13,
 // CHECK-NEXT:   "tokLen": 15
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 399,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 7
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 411,
 // CHECK-NEXT:    "col": 13,
 // CHECK-NEXT:    "tokLen": 15
 // CHECK-NEXT:   }
@@ -317,18 +422,21 @@ void testParmVarDecl(int TestParmVarDecl
 
 // CHECK:  "kind": "EnumDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 434,
 // CHECK-NEXT:   "file": "{{.*}}",
-// CHECK-NEXT:   "line": 23,
+// CHECK-NEXT:   "line": 26,
 // CHECK-NEXT:   "col": 6,
 // CHECK-NEXT:   "tokLen": 12
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 429,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 4
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
-// CHECK-NEXT:    "line": 25,
+// CHECK-NEXT:    "offset": 464,
+// CHECK-NEXT:    "line": 28,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   }
@@ -339,16 +447,19 @@ void testParmVarDecl(int TestParmVarDecl
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "EnumConstantDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "line": 24,
+// CHECK-NEXT:     "offset": 451,
+// CHECK-NEXT:     "line": 27,
 // CHECK-NEXT:     "col": 3,
 // CHECK-NEXT:     "tokLen": 12
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 451,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 12
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 451,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 12
 // CHECK-NEXT:     }
@@ -364,18 +475,21 @@ void testParmVarDecl(int TestParmVarDecl
 
 // CHECK:  "kind": "RecordDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 475,
 // CHECK-NEXT:   "file": "{{.*}}",
-// CHECK-NEXT:   "line": 27,
+// CHECK-NEXT:   "line": 30,
 // CHECK-NEXT:   "col": 8,
 // CHECK-NEXT:   "tokLen": 16
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 468,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 6
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
-// CHECK-NEXT:    "line": 31,
+// CHECK-NEXT:    "offset": 531,
+// CHECK-NEXT:    "line": 34,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   }
@@ -388,17 +502,20 @@ void testParmVarDecl(int TestParmVarDecl
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "EnumDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "line": 28,
+// CHECK-NEXT:     "offset": 496,
+// CHECK-NEXT:     "line": 31,
 // CHECK-NEXT:     "col": 3,
 // CHECK-NEXT:     "tokLen": 4
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 496,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 4
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "line": 30,
+// CHECK-NEXT:      "offset": 526,
+// CHECK-NEXT:      "line": 33,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -408,16 +525,19 @@ void testParmVarDecl(int TestParmVarDecl
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "EnumConstantDecl",
 // CHECK-NEXT:      "loc": {
-// CHECK-NEXT:       "line": 29,
+// CHECK-NEXT:       "offset": 507,
+// CHECK-NEXT:       "line": 32,
 // CHECK-NEXT:       "col": 5,
 // CHECK-NEXT:       "tokLen": 16
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 507,
 // CHECK-NEXT:        "col": 5,
 // CHECK-NEXT:        "tokLen": 16
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 507,
 // CHECK-NEXT:        "col": 5,
 // CHECK-NEXT:        "tokLen": 16
 // CHECK-NEXT:       }
@@ -433,26 +553,29 @@ void testParmVarDecl(int TestParmVarDecl
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "FieldDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "line": 30,
+// CHECK-NEXT:     "offset": 528,
+// CHECK-NEXT:     "line": 33,
 // CHECK-NEXT:     "col": 5,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "line": 28,
+// CHECK-NEXT:      "offset": 496,
+// CHECK-NEXT:      "line": 31,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 4
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "line": 30,
+// CHECK-NEXT:      "offset": 528,
+// CHECK-NEXT:      "line": 33,
 // CHECK-NEXT:      "col": 5,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "name": "e",
 // CHECK-NEXT:    "type": {
-// CHECK-NEXT:     "desugaredQualType": "enum TestEnumDeclAnon::(anonymous at {{.*}}:28:3)",
-// CHECK-NEXT:     "qualType": "enum (anonymous enum at {{.*}}:28:3)"
+// CHECK-NEXT:     "desugaredQualType": "enum TestEnumDeclAnon::(anonymous at {{.*}}:31:3)",
+// CHECK-NEXT:     "qualType": "enum (anonymous enum at {{.*}}:31:3)"
 // CHECK-NEXT:    }
 // CHECK-NEXT:   }
 // CHECK-NEXT:  ]
@@ -461,17 +584,20 @@ void testParmVarDecl(int TestParmVarDecl
 
 // CHECK:  "kind": "EnumDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 540,
 // CHECK-NEXT:   "file": "{{.*}}",
-// CHECK-NEXT:   "line": 33,
+// CHECK-NEXT:   "line": 36,
 // CHECK-NEXT:   "col": 6,
 // CHECK-NEXT:   "tokLen": 19
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 535,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 4
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 540,
 // CHECK-NEXT:    "col": 6,
 // CHECK-NEXT:    "tokLen": 19
 // CHECK-NEXT:   }
@@ -482,18 +608,21 @@ void testParmVarDecl(int TestParmVarDecl
 
 // CHECK:  "kind": "RecordDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 569,
 // CHECK-NEXT:   "file": "{{.*}}",
-// CHECK-NEXT:   "line": 35,
+// CHECK-NEXT:   "line": 38,
 // CHECK-NEXT:   "col": 8,
 // CHECK-NEXT:   "tokLen": 14
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 562,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 6
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
-// CHECK-NEXT:    "line": 37,
+// CHECK-NEXT:    "offset": 595,
+// CHECK-NEXT:    "line": 40,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   }
@@ -506,16 +635,19 @@ void testParmVarDecl(int TestParmVarDecl
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "FieldDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "line": 36,
+// CHECK-NEXT:     "offset": 592,
+// CHECK-NEXT:     "line": 39,
 // CHECK-NEXT:     "col": 7,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 588,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 3
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 592,
 // CHECK-NEXT:      "col": 7,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -531,18 +663,21 @@ void testParmVarDecl(int TestParmVarDecl
 
 // CHECK:  "kind": "RecordDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 606,
 // CHECK-NEXT:   "file": "{{.*}}",
-// CHECK-NEXT:   "line": 39,
+// CHECK-NEXT:   "line": 42,
 // CHECK-NEXT:   "col": 8,
 // CHECK-NEXT:   "tokLen": 19
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 599,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 6
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
-// CHECK-NEXT:    "line": 40,
+// CHECK-NEXT:    "offset": 628,
+// CHECK-NEXT:    "line": 43,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   }
@@ -555,18 +690,21 @@ void testParmVarDecl(int TestParmVarDecl
 
 // CHECK:  "kind": "RecordDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 639,
 // CHECK-NEXT:   "file": "{{.*}}",
-// CHECK-NEXT:   "line": 42,
+// CHECK-NEXT:   "line": 45,
 // CHECK-NEXT:   "col": 8,
 // CHECK-NEXT:   "tokLen": 19
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 632,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 6
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
-// CHECK-NEXT:    "line": 45,
+// CHECK-NEXT:    "offset": 697,
+// CHECK-NEXT:    "line": 48,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   }
@@ -579,17 +717,20 @@ void testParmVarDecl(int TestParmVarDecl
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "RecordDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "line": 43,
+// CHECK-NEXT:     "offset": 663,
+// CHECK-NEXT:     "line": 46,
 // CHECK-NEXT:     "col": 3,
 // CHECK-NEXT:     "tokLen": 6
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 663,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 6
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "line": 44,
+// CHECK-NEXT:      "offset": 674,
+// CHECK-NEXT:      "line": 47,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -601,25 +742,28 @@ void testParmVarDecl(int TestParmVarDecl
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "FieldDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 676,
 // CHECK-NEXT:     "col": 5,
 // CHECK-NEXT:     "tokLen": 19
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "line": 43,
+// CHECK-NEXT:      "offset": 663,
+// CHECK-NEXT:      "line": 46,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 6
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "line": 44,
+// CHECK-NEXT:      "offset": 676,
+// CHECK-NEXT:      "line": 47,
 // CHECK-NEXT:      "col": 5,
 // CHECK-NEXT:      "tokLen": 19
 // CHECK-NEXT:     }
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "name": "testRecordDeclAnon1",
 // CHECK-NEXT:    "type": {
-// CHECK-NEXT:     "desugaredQualType": "struct TestRecordDeclAnon1::(anonymous at {{.*}}:43:3)",
-// CHECK-NEXT:     "qualType": "struct (anonymous struct at {{.*}}:43:3)"
+// CHECK-NEXT:     "desugaredQualType": "struct TestRecordDeclAnon1::(anonymous at {{.*}}:46:3)",
+// CHECK-NEXT:     "qualType": "struct (anonymous struct at {{.*}}:46:3)"
 // CHECK-NEXT:    }
 // CHECK-NEXT:   }
 // CHECK-NEXT:  ]
@@ -628,18 +772,21 @@ void testParmVarDecl(int TestParmVarDecl
 
 // CHECK:  "kind": "RecordDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 708,
 // CHECK-NEXT:   "file": "{{.*}}",
-// CHECK-NEXT:   "line": 47,
+// CHECK-NEXT:   "line": 50,
 // CHECK-NEXT:   "col": 8,
 // CHECK-NEXT:   "tokLen": 19
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 701,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 6
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
-// CHECK-NEXT:    "line": 50,
+// CHECK-NEXT:    "offset": 746,
+// CHECK-NEXT:    "line": 53,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   }
@@ -652,17 +799,20 @@ void testParmVarDecl(int TestParmVarDecl
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "RecordDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "line": 48,
+// CHECK-NEXT:     "offset": 732,
+// CHECK-NEXT:     "line": 51,
 // CHECK-NEXT:     "col": 3,
 // CHECK-NEXT:     "tokLen": 6
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 732,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 6
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "line": 49,
+// CHECK-NEXT:      "offset": 743,
+// CHECK-NEXT:      "line": 52,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -674,23 +824,26 @@ void testParmVarDecl(int TestParmVarDecl
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "FieldDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "line": 48,
+// CHECK-NEXT:     "offset": 732,
+// CHECK-NEXT:     "line": 51,
 // CHECK-NEXT:     "col": 3,
 // CHECK-NEXT:     "tokLen": 6
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 732,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 6
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 732,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 6
 // CHECK-NEXT:     }
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "isImplicit": true,
 // CHECK-NEXT:    "type": {
-// CHECK-NEXT:     "qualType": "struct TestRecordDeclAnon2::(anonymous at {{.*}}:48:3)"
+// CHECK-NEXT:     "qualType": "struct TestRecordDeclAnon2::(anonymous at {{.*}}:51:3)"
 // CHECK-NEXT:    }
 // CHECK-NEXT:   }
 // CHECK-NEXT:  ]
@@ -699,17 +852,20 @@ void testParmVarDecl(int TestParmVarDecl
 
 // CHECK:  "kind": "RecordDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 757,
 // CHECK-NEXT:   "file": "{{.*}}",
-// CHECK-NEXT:   "line": 52,
+// CHECK-NEXT:   "line": 55,
 // CHECK-NEXT:   "col": 8,
 // CHECK-NEXT:   "tokLen": 21
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 750,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 6
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 757,
 // CHECK-NEXT:    "col": 8,
 // CHECK-NEXT:    "tokLen": 21
 // CHECK-NEXT:   }
@@ -721,17 +877,20 @@ void testParmVarDecl(int TestParmVarDecl
 
 // CHECK:  "kind": "EnumConstantDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 811,
 // CHECK-NEXT:   "file": "{{.*}}",
-// CHECK-NEXT:   "line": 55,
+// CHECK-NEXT:   "line": 58,
 // CHECK-NEXT:   "col": 3,
 // CHECK-NEXT:   "tokLen": 20
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 811,
 // CHECK-NEXT:    "col": 3,
 // CHECK-NEXT:    "tokLen": 20
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 811,
 // CHECK-NEXT:    "col": 3,
 // CHECK-NEXT:    "tokLen": 20
 // CHECK-NEXT:   }
@@ -745,17 +904,20 @@ void testParmVarDecl(int TestParmVarDecl
 
 // CHECK:  "kind": "EnumConstantDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 835,
 // CHECK-NEXT:   "file": "{{.*}}",
-// CHECK-NEXT:   "line": 56,
+// CHECK-NEXT:   "line": 59,
 // CHECK-NEXT:   "col": 3,
 // CHECK-NEXT:   "tokLen": 24
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 835,
 // CHECK-NEXT:    "col": 3,
 // CHECK-NEXT:    "tokLen": 24
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 862,
 // CHECK-NEXT:    "col": 30,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   }
@@ -770,10 +932,12 @@ void testParmVarDecl(int TestParmVarDecl
 // CHECK-NEXT:    "kind": "ConstantExpr",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 862,
 // CHECK-NEXT:      "col": 30,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 862,
 // CHECK-NEXT:      "col": 30,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -788,10 +952,12 @@ void testParmVarDecl(int TestParmVarDecl
 // CHECK-NEXT:      "kind": "IntegerLiteral",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 862,
 // CHECK-NEXT:        "col": 30,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 862,
 // CHECK-NEXT:        "col": 30,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -810,18 +976,21 @@ void testParmVarDecl(int TestParmVarDecl
 
 // CHECK:  "kind": "RecordDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 875,
 // CHECK-NEXT:   "file": "{{.*}}",
-// CHECK-NEXT:   "line": 59,
+// CHECK-NEXT:   "line": 62,
 // CHECK-NEXT:   "col": 8,
 // CHECK-NEXT:   "tokLen": 21
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 868,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 6
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
-// CHECK-NEXT:    "line": 63,
+// CHECK-NEXT:    "offset": 930,
+// CHECK-NEXT:    "line": 66,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   }
@@ -834,17 +1003,20 @@ void testParmVarDecl(int TestParmVarDecl
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "RecordDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "line": 60,
+// CHECK-NEXT:     "offset": 901,
+// CHECK-NEXT:     "line": 63,
 // CHECK-NEXT:     "col": 3,
 // CHECK-NEXT:     "tokLen": 6
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 901,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 6
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "line": 62,
+// CHECK-NEXT:      "offset": 927,
+// CHECK-NEXT:      "line": 65,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -856,16 +1028,19 @@ void testParmVarDecl(int TestParmVarDecl
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "FieldDecl",
 // CHECK-NEXT:      "loc": {
-// CHECK-NEXT:       "line": 61,
+// CHECK-NEXT:       "offset": 918,
+// CHECK-NEXT:       "line": 64,
 // CHECK-NEXT:       "col": 9,
 // CHECK-NEXT:       "tokLen": 5
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 914,
 // CHECK-NEXT:        "col": 5,
 // CHECK-NEXT:        "tokLen": 3
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 918,
 // CHECK-NEXT:        "col": 9,
 // CHECK-NEXT:        "tokLen": 5
 // CHECK-NEXT:       }
@@ -881,39 +1056,45 @@ void testParmVarDecl(int TestParmVarDecl
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "FieldDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "line": 60,
+// CHECK-NEXT:     "offset": 901,
+// CHECK-NEXT:     "line": 63,
 // CHECK-NEXT:     "col": 3,
 // CHECK-NEXT:     "tokLen": 6
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 901,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 6
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 901,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 6
 // CHECK-NEXT:     }
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "isImplicit": true,
 // CHECK-NEXT:    "type": {
-// CHECK-NEXT:     "qualType": "struct TestIndirectFieldDecl::(anonymous at {{.*}}:60:3)"
+// CHECK-NEXT:     "qualType": "struct TestIndirectFieldDecl::(anonymous at {{.*}}:63:3)"
 // CHECK-NEXT:    }
 // CHECK-NEXT:   },
 // CHECK-NEXT:   {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "IndirectFieldDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "line": 61,
+// CHECK-NEXT:     "offset": 918,
+// CHECK-NEXT:     "line": 64,
 // CHECK-NEXT:     "col": 9,
 // CHECK-NEXT:     "tokLen": 5
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 918,
 // CHECK-NEXT:      "col": 9,
 // CHECK-NEXT:      "tokLen": 5
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 918,
 // CHECK-NEXT:      "col": 9,
 // CHECK-NEXT:      "tokLen": 5
 // CHECK-NEXT:     }
@@ -927,41 +1108,47 @@ void testParmVarDecl(int TestParmVarDecl
 
 // CHECK:  "kind": "FunctionDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 1003,
 // CHECK-NEXT:   "file": "{{.*}}",
-// CHECK-NEXT:   "line": 66,
+// CHECK-NEXT:   "line": 69,
 // CHECK-NEXT:   "col": 5,
 // CHECK-NEXT:   "tokLen": 16
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 999,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 3
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
-// CHECK-NEXT:    "line": 68,
+// CHECK-NEXT:    "offset": 1055,
+// CHECK-NEXT:    "line": 71,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   }
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "name": "TestFunctionDecl",
 // CHECK-NEXT:  "type": {
-// CHECK-NEXT:   "qualType": "int (int, enum (anonymous enum at {{.*}}:66:29))"
+// CHECK-NEXT:   "qualType": "int (int, enum (anonymous enum at {{.*}}:69:29))"
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "inner": [
 // CHECK-NEXT:   {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "ParmVarDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "line": 66,
+// CHECK-NEXT:     "offset": 1024,
+// CHECK-NEXT:     "line": 69,
 // CHECK-NEXT:     "col": 26,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 1020,
 // CHECK-NEXT:      "col": 22,
 // CHECK-NEXT:      "tokLen": 3
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 1024,
 // CHECK-NEXT:      "col": 26,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -976,23 +1163,26 @@ void testParmVarDecl(int TestParmVarDecl
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "ParmVarDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 1038,
 // CHECK-NEXT:     "col": 40,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 1027,
 // CHECK-NEXT:      "col": 29,
 // CHECK-NEXT:      "tokLen": 4
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 1038,
 // CHECK-NEXT:      "col": 40,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "name": "y",
 // CHECK-NEXT:    "type": {
-// CHECK-NEXT:     "desugaredQualType": "enum (anonymous at {{.*}}:66:29)",
-// CHECK-NEXT:     "qualType": "enum (anonymous enum at {{.*}}:66:29)"
+// CHECK-NEXT:     "desugaredQualType": "enum (anonymous at {{.*}}:69:29)",
+// CHECK-NEXT:     "qualType": "enum (anonymous enum at {{.*}}:69:29)"
 // CHECK-NEXT:    }
 // CHECK-NEXT:   },
 // CHECK-NEXT:   {
@@ -1000,11 +1190,13 @@ void testParmVarDecl(int TestParmVarDecl
 // CHECK-NEXT:    "kind": "CompoundStmt",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 1041,
 // CHECK-NEXT:      "col": 43,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "line": 68,
+// CHECK-NEXT:      "offset": 1055,
+// CHECK-NEXT:      "line": 71,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -1015,11 +1207,13 @@ void testParmVarDecl(int TestParmVarDecl
 // CHECK-NEXT:      "kind": "ReturnStmt",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
-// CHECK-NEXT:        "line": 67,
+// CHECK-NEXT:        "offset": 1045,
+// CHECK-NEXT:        "line": 70,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 6
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1052,
 // CHECK-NEXT:        "col": 10,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -1030,10 +1224,12 @@ void testParmVarDecl(int TestParmVarDecl
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1052,
 // CHECK-NEXT:          "col": 10,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1052,
 // CHECK-NEXT:          "col": 10,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -1049,10 +1245,12 @@ void testParmVarDecl(int TestParmVarDecl
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 1052,
 // CHECK-NEXT:            "col": 10,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 1052,
 // CHECK-NEXT:            "col": 10,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -1082,17 +1280,20 @@ void testParmVarDecl(int TestParmVarDecl
 
 // CHECK:  "kind": "FunctionDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 1113,
 // CHECK-NEXT:   "file": "{{.*}}",
-// CHECK-NEXT:   "line": 71,
+// CHECK-NEXT:   "line": 74,
 // CHECK-NEXT:   "col": 5,
 // CHECK-NEXT:   "tokLen": 17
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 1109,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 3
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 1162,
 // CHECK-NEXT:    "col": 54,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   }
@@ -1106,15 +1307,18 @@ void testParmVarDecl(int TestParmVarDecl
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "ParmVarDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 1147,
 // CHECK-NEXT:     "col": 39,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 1131,
 // CHECK-NEXT:      "col": 23,
 // CHECK-NEXT:      "tokLen": 4
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 1147,
 // CHECK-NEXT:      "col": 39,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -1131,10 +1335,12 @@ void testParmVarDecl(int TestParmVarDecl
 // CHECK-NEXT:    "kind": "CompoundStmt",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 1150,
 // CHECK-NEXT:      "col": 42,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 1162,
 // CHECK-NEXT:      "col": 54,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -1145,10 +1351,12 @@ void testParmVarDecl(int TestParmVarDecl
 // CHECK-NEXT:      "kind": "ReturnStmt",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1152,
 // CHECK-NEXT:        "col": 44,
 // CHECK-NEXT:        "tokLen": 6
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1159,
 // CHECK-NEXT:        "col": 51,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -1159,10 +1367,12 @@ void testParmVarDecl(int TestParmVarDecl
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1159,
 // CHECK-NEXT:          "col": 51,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1159,
 // CHECK-NEXT:          "col": 51,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -1178,10 +1388,12 @@ void testParmVarDecl(int TestParmVarDecl
 // CHECK-NEXT:          "kind": "ImplicitCastExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 1159,
 // CHECK-NEXT:            "col": 51,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 1159,
 // CHECK-NEXT:            "col": 51,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -1198,10 +1410,12 @@ void testParmVarDecl(int TestParmVarDecl
 // CHECK-NEXT:            "kind": "DeclRefExpr",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 1159,
 // CHECK-NEXT:              "col": 51,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 1159,
 // CHECK-NEXT:              "col": 51,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -1235,17 +1449,20 @@ void testParmVarDecl(int TestParmVarDecl
 
 // CHECK:  "kind": "FunctionDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 1168,
 // CHECK-NEXT:   "file": "{{.*}}",
-// CHECK-NEXT:   "line": 72,
+// CHECK-NEXT:   "line": 75,
 // CHECK-NEXT:   "col": 5,
 // CHECK-NEXT:   "tokLen": 21
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 1164,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 3
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 1195,
 // CHECK-NEXT:    "col": 32,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   }
@@ -1259,15 +1476,18 @@ void testParmVarDecl(int TestParmVarDecl
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "ParmVarDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 1194,
 // CHECK-NEXT:     "col": 31,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 1190,
 // CHECK-NEXT:      "col": 27,
 // CHECK-NEXT:      "tokLen": 3
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 1194,
 // CHECK-NEXT:      "col": 31,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -1283,17 +1503,20 @@ void testParmVarDecl(int TestParmVarDecl
 
 // CHECK:  "kind": "FunctionDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 1203,
 // CHECK-NEXT:   "file": "{{.*}}",
-// CHECK-NEXT:   "line": 73,
+// CHECK-NEXT:   "line": 76,
 // CHECK-NEXT:   "col": 6,
 // CHECK-NEXT:   "tokLen": 23
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 1198,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 4
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 1227,
 // CHECK-NEXT:    "col": 30,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   }
@@ -1307,17 +1530,20 @@ void testParmVarDecl(int TestParmVarDecl
 
 // CHECK:  "kind": "FunctionDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 1241,
 // CHECK-NEXT:   "file": "{{.*}}",
-// CHECK-NEXT:   "line": 74,
+// CHECK-NEXT:   "line": 77,
 // CHECK-NEXT:   "col": 12,
 // CHECK-NEXT:   "tokLen": 18
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 1230,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 6
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 1260,
 // CHECK-NEXT:    "col": 31,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   }
@@ -1332,17 +1558,20 @@ void testParmVarDecl(int TestParmVarDecl
 
 // CHECK:  "kind": "FunctionDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 1274,
 // CHECK-NEXT:   "file": "{{.*}}",
-// CHECK-NEXT:   "line": 75,
+// CHECK-NEXT:   "line": 78,
 // CHECK-NEXT:   "col": 12,
 // CHECK-NEXT:   "tokLen": 22
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 1263,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 6
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 1297,
 // CHECK-NEXT:    "col": 35,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   }
@@ -1357,17 +1586,20 @@ void testParmVarDecl(int TestParmVarDecl
 
 // CHECK:  "kind": "FieldDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 1330,
 // CHECK-NEXT:   "file": "{{.*}}",
-// CHECK-NEXT:   "line": 78,
+// CHECK-NEXT:   "line": 81,
 // CHECK-NEXT:   "col": 7,
 // CHECK-NEXT:   "tokLen": 13
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 1326,
 // CHECK-NEXT:    "col": 3,
 // CHECK-NEXT:    "tokLen": 3
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 1330,
 // CHECK-NEXT:    "col": 7,
 // CHECK-NEXT:    "tokLen": 13
 // CHECK-NEXT:   }
@@ -1381,17 +1613,20 @@ void testParmVarDecl(int TestParmVarDecl
 
 // CHECK:  "kind": "FieldDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 1351,
 // CHECK-NEXT:   "file": "{{.*}}",
-// CHECK-NEXT:   "line": 79,
+// CHECK-NEXT:   "line": 82,
 // CHECK-NEXT:   "col": 7,
 // CHECK-NEXT:   "tokLen": 18
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 1347,
 // CHECK-NEXT:    "col": 3,
 // CHECK-NEXT:    "tokLen": 3
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 1372,
 // CHECK-NEXT:    "col": 28,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   }
@@ -1407,10 +1642,12 @@ void testParmVarDecl(int TestParmVarDecl
 // CHECK-NEXT:    "kind": "ConstantExpr",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 1372,
 // CHECK-NEXT:      "col": 28,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 1372,
 // CHECK-NEXT:      "col": 28,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -1425,10 +1662,12 @@ void testParmVarDecl(int TestParmVarDecl
 // CHECK-NEXT:      "kind": "IntegerLiteral",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1372,
 // CHECK-NEXT:        "col": 28,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1372,
 // CHECK-NEXT:        "col": 28,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -1447,17 +1686,20 @@ void testParmVarDecl(int TestParmVarDecl
 
 // CHECK:  "kind": "VarDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 1383,
 // CHECK-NEXT:   "file": "{{.*}}",
-// CHECK-NEXT:   "line": 82,
+// CHECK-NEXT:   "line": 85,
 // CHECK-NEXT:   "col": 5,
 // CHECK-NEXT:   "tokLen": 11
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 1379,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 3
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 1383,
 // CHECK-NEXT:    "col": 5,
 // CHECK-NEXT:    "tokLen": 11
 // CHECK-NEXT:   }
@@ -1471,17 +1713,20 @@ void testParmVarDecl(int TestParmVarDecl
 
 // CHECK:  "kind": "VarDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 1407,
 // CHECK-NEXT:   "file": "{{.*}}",
-// CHECK-NEXT:   "line": 83,
+// CHECK-NEXT:   "line": 86,
 // CHECK-NEXT:   "col": 12,
 // CHECK-NEXT:   "tokLen": 13
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 1396,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 6
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 1407,
 // CHECK-NEXT:    "col": 12,
 // CHECK-NEXT:    "tokLen": 13
 // CHECK-NEXT:   }
@@ -1496,17 +1741,20 @@ void testParmVarDecl(int TestParmVarDecl
 
 // CHECK:  "kind": "VarDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 1435,
 // CHECK-NEXT:   "file": "{{.*}}",
-// CHECK-NEXT:   "line": 84,
+// CHECK-NEXT:   "line": 87,
 // CHECK-NEXT:   "col": 14,
 // CHECK-NEXT:   "tokLen": 17
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 1422,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 8
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 1435,
 // CHECK-NEXT:    "col": 14,
 // CHECK-NEXT:    "tokLen": 17
 // CHECK-NEXT:   }
@@ -1521,17 +1769,20 @@ void testParmVarDecl(int TestParmVarDecl
 
 // CHECK:  "kind": "VarDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 1458,
 // CHECK-NEXT:   "file": "{{.*}}",
-// CHECK-NEXT:   "line": 85,
+// CHECK-NEXT:   "line": 88,
 // CHECK-NEXT:   "col": 5,
 // CHECK-NEXT:   "tokLen": 15
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 1454,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 3
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 1476,
 // CHECK-NEXT:    "col": 23,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   }
@@ -1547,10 +1798,12 @@ void testParmVarDecl(int TestParmVarDecl
 // CHECK-NEXT:    "kind": "IntegerLiteral",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 1476,
 // CHECK-NEXT:      "col": 23,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 1476,
 // CHECK-NEXT:      "col": 23,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -1567,17 +1820,20 @@ void testParmVarDecl(int TestParmVarDecl
 
 // CHECK:  "kind": "ParmVarDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 1505,
 // CHECK-NEXT:   "file": "{{.*}}",
-// CHECK-NEXT:   "line": 87,
+// CHECK-NEXT:   "line": 90,
 // CHECK-NEXT:   "col": 26,
 // CHECK-NEXT:   "tokLen": 15
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 1501,
 // CHECK-NEXT:    "col": 22,
 // CHECK-NEXT:    "tokLen": 3
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 1505,
 // CHECK-NEXT:    "col": 26,
 // CHECK-NEXT:    "tokLen": 15
 // CHECK-NEXT:   }

Modified: cfe/trunk/test/AST/ast-dump-decl-json.m
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/AST/ast-dump-decl-json.m?rev=374921&r1=374920&r2=374921&view=diff
==============================================================================
--- cfe/trunk/test/AST/ast-dump-decl-json.m (original)
+++ cfe/trunk/test/AST/ast-dump-decl-json.m Tue Oct 15 10:30:19 2019
@@ -86,232 +86,259 @@ void f() {
 // NOTE: CHECK lines have been autogenerated by gen_ast_dump_json_test.py
 
 
-// CHECK:  "kind": "ObjCInterfaceDecl", 
+// CHECK:  "kind": "ObjCInterfaceDecl",
 // CHECK-NEXT:  "loc": {
-// CHECK-NEXT:   "file": "{{.*}}", 
-// CHECK-NEXT:   "line": 9, 
-// CHECK-NEXT:   "col": 12, 
+// CHECK-NEXT:   "offset": 144,
+// CHECK-NEXT:   "file": "{{.*}}",
+// CHECK-NEXT:   "line": 9,
+// CHECK-NEXT:   "col": 12,
 // CHECK-NEXT:   "tokLen": 16
-// CHECK-NEXT:  }, 
+// CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
-// CHECK-NEXT:    "col": 1, 
+// CHECK-NEXT:    "offset": 133,
+// CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
-// CHECK-NEXT:    "line": 10, 
-// CHECK-NEXT:    "col": 2, 
+// CHECK-NEXT:    "offset": 166,
+// CHECK-NEXT:    "line": 10,
+// CHECK-NEXT:    "col": 2,
 // CHECK-NEXT:    "tokLen": 3
 // CHECK-NEXT:   }
-// CHECK-NEXT:  }, 
-// CHECK-NEXT:  "name": "TestObjCIvarDecl", 
+// CHECK-NEXT:  },
+// CHECK-NEXT:  "name": "TestObjCIvarDecl",
 // CHECK-NEXT:  "super": {
-// CHECK-NEXT:   "id": "0x{{.*}}", 
-// CHECK-NEXT:   "kind": "ObjCInterfaceDecl", 
+// CHECK-NEXT:   "id": "0x{{.*}}",
+// CHECK-NEXT:   "kind": "ObjCInterfaceDecl",
 // CHECK-NEXT:   "name": "A"
-// CHECK-NEXT:  }, 
+// CHECK-NEXT:  },
 // CHECK-NEXT:  "implementation": {
-// CHECK-NEXT:   "id": "0x{{.*}}", 
-// CHECK-NEXT:   "kind": "ObjCImplementationDecl", 
+// CHECK-NEXT:   "id": "0x{{.*}}",
+// CHECK-NEXT:   "kind": "ObjCImplementationDecl",
 // CHECK-NEXT:   "name": "TestObjCIvarDecl"
 // CHECK-NEXT:  }
 // CHECK-NEXT: }
 
 
-// CHECK:  "kind": "ObjCImplementationDecl", 
+// CHECK:  "kind": "ObjCImplementationDecl",
 // CHECK-NEXT:  "loc": {
-// CHECK-NEXT:   "file": "{{.*}}", 
-// CHECK-NEXT:   "line": 12, 
-// CHECK-NEXT:   "col": 17, 
+// CHECK-NEXT:   "offset": 187,
+// CHECK-NEXT:   "file": "{{.*}}",
+// CHECK-NEXT:   "line": 12,
+// CHECK-NEXT:   "col": 17,
 // CHECK-NEXT:   "tokLen": 16
-// CHECK-NEXT:  }, 
+// CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
-// CHECK-NEXT:    "col": 1, 
+// CHECK-NEXT:    "offset": 171,
+// CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
-// CHECK-NEXT:    "line": 19, 
-// CHECK-NEXT:    "col": 1, 
+// CHECK-NEXT:    "offset": 336,
+// CHECK-NEXT:    "line": 19,
+// CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   }
-// CHECK-NEXT:  }, 
-// CHECK-NEXT:  "name": "TestObjCIvarDecl", 
+// CHECK-NEXT:  },
+// CHECK-NEXT:  "name": "TestObjCIvarDecl",
 // CHECK-NEXT:  "super": {
-// CHECK-NEXT:   "id": "0x{{.*}}"
-// CHECK-NEXT:  }, 
+// CHECK-NEXT:   "id": "0x0"
+// CHECK-NEXT:  },
 // CHECK-NEXT:  "interface": {
-// CHECK-NEXT:   "id": "0x{{.*}}", 
-// CHECK-NEXT:   "kind": "ObjCInterfaceDecl", 
+// CHECK-NEXT:   "id": "0x{{.*}}",
+// CHECK-NEXT:   "kind": "ObjCInterfaceDecl",
 // CHECK-NEXT:   "name": "TestObjCIvarDecl"
-// CHECK-NEXT:  }, 
+// CHECK-NEXT:  },
 // CHECK-NEXT:  "inner": [
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "id": "0x{{.*}}", 
-// CHECK-NEXT:    "kind": "ObjCIvarDecl", 
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "ObjCIvarDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "line": 13, 
-// CHECK-NEXT:     "col": 7, 
+// CHECK-NEXT:     "offset": 212,
+// CHECK-NEXT:     "line": 13,
+// CHECK-NEXT:     "col": 7,
 // CHECK-NEXT:     "tokLen": 10
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "col": 3, 
+// CHECK-NEXT:      "offset": 208,
+// CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 3
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "col": 7, 
+// CHECK-NEXT:      "offset": 212,
+// CHECK-NEXT:      "col": 7,
 // CHECK-NEXT:      "tokLen": 10
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "name": "varDefault", 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "name": "varDefault",
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "int"
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "access": "private"
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "id": "0x{{.*}}", 
-// CHECK-NEXT:    "kind": "ObjCIvarDecl", 
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "ObjCIvarDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "line": 14, 
-// CHECK-NEXT:     "col": 16, 
+// CHECK-NEXT:     "offset": 239,
+// CHECK-NEXT:     "line": 14,
+// CHECK-NEXT:     "col": 16,
 // CHECK-NEXT:     "tokLen": 10
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "col": 12, 
+// CHECK-NEXT:      "offset": 235,
+// CHECK-NEXT:      "col": 12,
 // CHECK-NEXT:      "tokLen": 3
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "col": 16, 
+// CHECK-NEXT:      "offset": 239,
+// CHECK-NEXT:      "col": 16,
 // CHECK-NEXT:      "tokLen": 10
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "name": "varPrivate", 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "name": "varPrivate",
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "int"
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "access": "private"
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "id": "0x{{.*}}", 
-// CHECK-NEXT:    "kind": "ObjCIvarDecl", 
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "ObjCIvarDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "line": 15, 
-// CHECK-NEXT:     "col": 18, 
+// CHECK-NEXT:     "offset": 268,
+// CHECK-NEXT:     "line": 15,
+// CHECK-NEXT:     "col": 18,
 // CHECK-NEXT:     "tokLen": 12
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "col": 14, 
+// CHECK-NEXT:      "offset": 264,
+// CHECK-NEXT:      "col": 14,
 // CHECK-NEXT:      "tokLen": 3
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "col": 18, 
+// CHECK-NEXT:      "offset": 268,
+// CHECK-NEXT:      "col": 18,
 // CHECK-NEXT:      "tokLen": 12
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "name": "varProtected", 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "name": "varProtected",
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "int"
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "access": "protected"
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "id": "0x{{.*}}", 
-// CHECK-NEXT:    "kind": "ObjCIvarDecl", 
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "ObjCIvarDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "line": 16, 
-// CHECK-NEXT:     "col": 15, 
+// CHECK-NEXT:     "offset": 296,
+// CHECK-NEXT:     "line": 16,
+// CHECK-NEXT:     "col": 15,
 // CHECK-NEXT:     "tokLen": 9
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "col": 11, 
+// CHECK-NEXT:      "offset": 292,
+// CHECK-NEXT:      "col": 11,
 // CHECK-NEXT:      "tokLen": 3
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "col": 15, 
+// CHECK-NEXT:      "offset": 296,
+// CHECK-NEXT:      "col": 15,
 // CHECK-NEXT:      "tokLen": 9
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "name": "varPublic", 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "name": "varPublic",
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "int"
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "access": "public"
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "id": "0x{{.*}}", 
-// CHECK-NEXT:    "kind": "ObjCIvarDecl", 
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "ObjCIvarDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "line": 17, 
-// CHECK-NEXT:     "col": 16, 
+// CHECK-NEXT:     "offset": 322,
+// CHECK-NEXT:     "line": 17,
+// CHECK-NEXT:     "col": 16,
 // CHECK-NEXT:     "tokLen": 10
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "col": 12, 
+// CHECK-NEXT:      "offset": 318,
+// CHECK-NEXT:      "col": 12,
 // CHECK-NEXT:      "tokLen": 3
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "col": 16, 
+// CHECK-NEXT:      "offset": 322,
+// CHECK-NEXT:      "col": 16,
 // CHECK-NEXT:      "tokLen": 10
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "name": "varPackage", 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "name": "varPackage",
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "int"
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "access": "package"
 // CHECK-NEXT:   }
 // CHECK-NEXT:  ]
 // CHECK-NEXT: }
 
 
-// CHECK:  "kind": "ObjCMethodDecl", 
+// CHECK:  "kind": "ObjCMethodDecl",
 // CHECK-NEXT:  "loc": {
-// CHECK-NEXT:   "file": "{{.*}}", 
-// CHECK-NEXT:   "line": 23, 
-// CHECK-NEXT:   "col": 1, 
+// CHECK-NEXT:   "offset": 380,
+// CHECK-NEXT:   "file": "{{.*}}",
+// CHECK-NEXT:   "line": 23,
+// CHECK-NEXT:   "col": 1,
 // CHECK-NEXT:   "tokLen": 1
-// CHECK-NEXT:  }, 
+// CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
-// CHECK-NEXT:    "col": 1, 
+// CHECK-NEXT:    "offset": 380,
+// CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
-// CHECK-NEXT:    "col": 40, 
+// CHECK-NEXT:    "offset": 419,
+// CHECK-NEXT:    "col": 40,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   }
-// CHECK-NEXT:  }, 
-// CHECK-NEXT:  "name": "TestObjCMethodDecl:", 
+// CHECK-NEXT:  },
+// CHECK-NEXT:  "name": "TestObjCMethodDecl:",
 // CHECK-NEXT:  "returnType": {
 // CHECK-NEXT:   "qualType": "int"
-// CHECK-NEXT:  }, 
-// CHECK-NEXT:  "instance": true, 
-// CHECK-NEXT:  "variadic": true, 
+// CHECK-NEXT:  },
+// CHECK-NEXT:  "instance": true,
+// CHECK-NEXT:  "variadic": true,
 // 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": 34, 
+// CHECK-NEXT:     "offset": 413,
+// CHECK-NEXT:     "col": 34,
 // CHECK-NEXT:     "tokLen": 1
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "col": 30, 
+// CHECK-NEXT:      "offset": 409,
+// CHECK-NEXT:      "col": 30,
 // CHECK-NEXT:      "tokLen": 3
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "col": 34, 
+// CHECK-NEXT:      "offset": 413,
+// CHECK-NEXT:      "col": 34,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "name": "i", 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "name": "i",
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "int"
 // CHECK-NEXT:    }
@@ -320,131 +347,143 @@ void f() {
 // CHECK-NEXT: }
 
 
-// CHECK:  "kind": "ObjCMethodDecl", 
+// CHECK:  "kind": "ObjCMethodDecl",
 // CHECK-NEXT:  "loc": {
-// CHECK-NEXT:   "file": "{{.*}}", 
-// CHECK-NEXT:   "line": 27, 
-// CHECK-NEXT:   "col": 1, 
+// CHECK-NEXT:   "offset": 462,
+// CHECK-NEXT:   "file": "{{.*}}",
+// CHECK-NEXT:   "line": 27,
+// CHECK-NEXT:   "col": 1,
 // CHECK-NEXT:   "tokLen": 1
-// CHECK-NEXT:  }, 
+// CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
-// CHECK-NEXT:    "col": 1, 
+// CHECK-NEXT:    "offset": 462,
+// CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
-// CHECK-NEXT:    "line": 29, 
-// CHECK-NEXT:    "col": 1, 
+// CHECK-NEXT:    "offset": 516,
+// CHECK-NEXT:    "line": 29,
+// CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   }
-// CHECK-NEXT:  }, 
-// CHECK-NEXT:  "name": "TestObjCMethodDecl:", 
+// CHECK-NEXT:  },
+// CHECK-NEXT:  "name": "TestObjCMethodDecl:",
 // CHECK-NEXT:  "returnType": {
 // CHECK-NEXT:   "qualType": "int"
-// CHECK-NEXT:  }, 
-// CHECK-NEXT:  "instance": true, 
-// CHECK-NEXT:  "variadic": true, 
+// CHECK-NEXT:  },
+// CHECK-NEXT:  "instance": true,
+// CHECK-NEXT:  "variadic": true,
 // CHECK-NEXT:  "inner": [
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "id": "0x{{.*}}", 
-// CHECK-NEXT:    "kind": "ImplicitParamDecl", 
-// CHECK-NEXT:    "loc": {}, 
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "ImplicitParamDecl",
+// CHECK-NEXT:    "loc": {},
 // CHECK-NEXT:    "range": {
-// CHECK-NEXT:     "begin": {}, 
+// CHECK-NEXT:     "begin": {},
 // CHECK-NEXT:     "end": {}
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "isImplicit": true, 
-// CHECK-NEXT:    "name": "self", 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "isImplicit": true,
+// CHECK-NEXT:    "name": "self",
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "testObjCMethodDecl *"
 // CHECK-NEXT:    }
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "id": "0x{{.*}}", 
-// CHECK-NEXT:    "kind": "ImplicitParamDecl", 
-// CHECK-NEXT:    "loc": {}, 
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "ImplicitParamDecl",
+// CHECK-NEXT:    "loc": {},
 // CHECK-NEXT:    "range": {
-// CHECK-NEXT:     "begin": {}, 
+// CHECK-NEXT:     "begin": {},
 // CHECK-NEXT:     "end": {}
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "isImplicit": true, 
-// CHECK-NEXT:    "name": "_cmd", 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "isImplicit": true,
+// CHECK-NEXT:    "name": "_cmd",
 // CHECK-NEXT:    "type": {
-// CHECK-NEXT:     "desugaredQualType": "SEL *", 
-// CHECK-NEXT:     "qualType": "SEL", 
+// CHECK-NEXT:     "desugaredQualType": "SEL *",
+// CHECK-NEXT:     "qualType": "SEL",
 // CHECK-NEXT:     "typeAliasDeclId": "0x{{.*}}"
 // CHECK-NEXT:    }
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "id": "0x{{.*}}", 
-// CHECK-NEXT:    "kind": "ParmVarDecl", 
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "ParmVarDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "line": 27, 
-// CHECK-NEXT:     "col": 34, 
+// CHECK-NEXT:     "offset": 495,
+// CHECK-NEXT:     "line": 27,
+// CHECK-NEXT:     "col": 34,
 // CHECK-NEXT:     "tokLen": 1
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "col": 30, 
+// CHECK-NEXT:      "offset": 491,
+// CHECK-NEXT:      "col": 30,
 // CHECK-NEXT:      "tokLen": 3
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "col": 34, 
+// CHECK-NEXT:      "offset": 495,
+// CHECK-NEXT:      "col": 34,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "name": "i", 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "name": "i",
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "int"
 // CHECK-NEXT:    }
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "id": "0x{{.*}}", 
-// CHECK-NEXT:    "kind": "CompoundStmt", 
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "CompoundStmt",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "col": 41, 
+// CHECK-NEXT:      "offset": 502,
+// CHECK-NEXT:      "col": 41,
 // CHECK-NEXT:      "tokLen": 1
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "line": 29, 
-// CHECK-NEXT:      "col": 1, 
+// CHECK-NEXT:      "offset": 516,
+// CHECK-NEXT:      "line": 29,
+// CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "inner": [
 // CHECK-NEXT:     {
-// CHECK-NEXT:      "id": "0x{{.*}}", 
-// CHECK-NEXT:      "kind": "ReturnStmt", 
+// CHECK-NEXT:      "id": "0x{{.*}}",
+// CHECK-NEXT:      "kind": "ReturnStmt",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
-// CHECK-NEXT:        "line": 28, 
-// CHECK-NEXT:        "col": 3, 
+// CHECK-NEXT:        "offset": 506,
+// CHECK-NEXT:        "line": 28,
+// CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 6
-// CHECK-NEXT:       }, 
+// CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
-// CHECK-NEXT:        "col": 10, 
+// CHECK-NEXT:        "offset": 513,
+// CHECK-NEXT:        "col": 10,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
-// CHECK-NEXT:      }, 
+// CHECK-NEXT:      },
 // 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": 10, 
+// CHECK-NEXT:          "offset": 513,
+// CHECK-NEXT:          "col": 10,
 // CHECK-NEXT:          "tokLen": 1
-// CHECK-NEXT:         }, 
+// CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "col": 10, 
+// CHECK-NEXT:          "offset": 513,
+// CHECK-NEXT:          "col": 10,
 // CHECK-NEXT:          "tokLen": 1
 // 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:      ]
@@ -455,240 +494,263 @@ void f() {
 // CHECK-NEXT: }
 
 
-// CHECK:  "kind": "ObjCProtocolDecl", 
+// CHECK:  "kind": "ObjCProtocolDecl",
 // CHECK-NEXT:  "loc": {
-// CHECK-NEXT:   "file": "{{.*}}", 
-// CHECK-NEXT:   "line": 32, 
-// CHECK-NEXT:   "col": 11, 
+// CHECK-NEXT:   "offset": 534,
+// CHECK-NEXT:   "file": "{{.*}}",
+// CHECK-NEXT:   "line": 32,
+// CHECK-NEXT:   "col": 11,
 // CHECK-NEXT:   "tokLen": 20
-// CHECK-NEXT:  }, 
+// CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
-// CHECK-NEXT:    "col": 1, 
+// CHECK-NEXT:    "offset": 524,
+// CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
-// CHECK-NEXT:    "line": 34, 
-// CHECK-NEXT:    "col": 2, 
+// CHECK-NEXT:    "offset": 570,
+// CHECK-NEXT:    "line": 34,
+// CHECK-NEXT:    "col": 2,
 // CHECK-NEXT:    "tokLen": 3
 // CHECK-NEXT:   }
-// CHECK-NEXT:  }, 
-// CHECK-NEXT:  "name": "TestObjCProtocolDecl", 
+// CHECK-NEXT:  },
+// CHECK-NEXT:  "name": "TestObjCProtocolDecl",
 // CHECK-NEXT:  "inner": [
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "id": "0x{{.*}}", 
-// CHECK-NEXT:    "kind": "ObjCMethodDecl", 
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "ObjCMethodDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "line": 33, 
-// CHECK-NEXT:     "col": 1, 
+// CHECK-NEXT:     "offset": 555,
+// CHECK-NEXT:     "line": 33,
+// CHECK-NEXT:     "col": 1,
 // CHECK-NEXT:     "tokLen": 1
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "col": 1, 
+// CHECK-NEXT:      "offset": 555,
+// CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 1
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "col": 13, 
+// CHECK-NEXT:      "offset": 567,
+// CHECK-NEXT:      "col": 13,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "name": "foo", 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "name": "foo",
 // CHECK-NEXT:    "returnType": {
 // CHECK-NEXT:     "qualType": "void"
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "instance": true
 // CHECK-NEXT:   }
 // CHECK-NEXT:  ]
 // CHECK-NEXT: }
 
 
-// CHECK:  "kind": "ObjCInterfaceDecl", 
+// CHECK:  "kind": "ObjCInterfaceDecl",
 // CHECK-NEXT:  "loc": {
-// CHECK-NEXT:   "file": "{{.*}}", 
-// CHECK-NEXT:   "line": 36, 
-// CHECK-NEXT:   "col": 12, 
+// CHECK-NEXT:   "offset": 586,
+// CHECK-NEXT:   "file": "{{.*}}",
+// CHECK-NEXT:   "line": 36,
+// CHECK-NEXT:   "col": 12,
 // CHECK-NEXT:   "tokLen": 13
-// CHECK-NEXT:  }, 
+// CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
-// CHECK-NEXT:    "col": 1, 
+// CHECK-NEXT:    "offset": 575,
+// CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
-// CHECK-NEXT:    "line": 38, 
-// CHECK-NEXT:    "col": 2, 
+// CHECK-NEXT:    "offset": 623,
+// CHECK-NEXT:    "line": 38,
+// CHECK-NEXT:    "col": 2,
 // CHECK-NEXT:    "tokLen": 3
 // CHECK-NEXT:   }
-// CHECK-NEXT:  }, 
-// CHECK-NEXT:  "name": "TestObjCClass", 
+// CHECK-NEXT:  },
+// CHECK-NEXT:  "name": "TestObjCClass",
 // CHECK-NEXT:  "super": {
-// CHECK-NEXT:   "id": "0x{{.*}}", 
-// CHECK-NEXT:   "kind": "ObjCInterfaceDecl", 
+// CHECK-NEXT:   "id": "0x{{.*}}",
+// CHECK-NEXT:   "kind": "ObjCInterfaceDecl",
 // CHECK-NEXT:   "name": "A"
-// CHECK-NEXT:  }, 
+// CHECK-NEXT:  },
 // CHECK-NEXT:  "implementation": {
-// CHECK-NEXT:   "id": "0x{{.*}}", 
-// CHECK-NEXT:   "kind": "ObjCImplementationDecl", 
+// CHECK-NEXT:   "id": "0x{{.*}}",
+// CHECK-NEXT:   "kind": "ObjCImplementationDecl",
 // CHECK-NEXT:   "name": "TestObjCClass"
-// CHECK-NEXT:  }, 
+// CHECK-NEXT:  },
 // CHECK-NEXT:  "protocols": [
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "id": "0x{{.*}}", 
-// CHECK-NEXT:    "kind": "ObjCProtocolDecl", 
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "ObjCProtocolDecl",
 // CHECK-NEXT:    "name": "P"
 // CHECK-NEXT:   }
-// CHECK-NEXT:  ], 
+// CHECK-NEXT:  ],
 // CHECK-NEXT:  "inner": [
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "id": "0x{{.*}}", 
-// CHECK-NEXT:    "kind": "ObjCMethodDecl", 
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "ObjCMethodDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "line": 37, 
-// CHECK-NEXT:     "col": 1, 
+// CHECK-NEXT:     "offset": 608,
+// CHECK-NEXT:     "line": 37,
+// CHECK-NEXT:     "col": 1,
 // CHECK-NEXT:     "tokLen": 1
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "col": 1, 
+// CHECK-NEXT:      "offset": 608,
+// CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 1
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "col": 13, 
+// CHECK-NEXT:      "offset": 620,
+// CHECK-NEXT:      "col": 13,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "name": "foo", 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "name": "foo",
 // CHECK-NEXT:    "returnType": {
 // CHECK-NEXT:     "qualType": "void"
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "instance": true
 // CHECK-NEXT:   }
 // CHECK-NEXT:  ]
 // CHECK-NEXT: }
 
 
-// CHECK:  "kind": "ObjCImplementationDecl", 
+// CHECK:  "kind": "ObjCImplementationDecl",
 // CHECK-NEXT:  "loc": {
-// CHECK-NEXT:   "file": "{{.*}}", 
-// CHECK-NEXT:   "line": 40, 
-// CHECK-NEXT:   "col": 17, 
+// CHECK-NEXT:   "offset": 644,
+// CHECK-NEXT:   "file": "{{.*}}",
+// CHECK-NEXT:   "line": 40,
+// CHECK-NEXT:   "col": 17,
 // CHECK-NEXT:   "tokLen": 13
-// CHECK-NEXT:  }, 
+// CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
-// CHECK-NEXT:    "col": 1, 
+// CHECK-NEXT:    "offset": 628,
+// CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
-// CHECK-NEXT:    "line": 45, 
-// CHECK-NEXT:    "col": 1, 
+// CHECK-NEXT:    "offset": 692,
+// CHECK-NEXT:    "line": 45,
+// CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   }
-// CHECK-NEXT:  }, 
-// CHECK-NEXT:  "name": "TestObjCClass", 
+// CHECK-NEXT:  },
+// CHECK-NEXT:  "name": "TestObjCClass",
 // CHECK-NEXT:  "super": {
-// CHECK-NEXT:   "id": "0x{{.*}}", 
-// CHECK-NEXT:   "kind": "ObjCInterfaceDecl", 
+// CHECK-NEXT:   "id": "0x{{.*}}",
+// CHECK-NEXT:   "kind": "ObjCInterfaceDecl",
 // CHECK-NEXT:   "name": "A"
-// CHECK-NEXT:  }, 
+// CHECK-NEXT:  },
 // CHECK-NEXT:  "interface": {
-// CHECK-NEXT:   "id": "0x{{.*}}", 
-// CHECK-NEXT:   "kind": "ObjCInterfaceDecl", 
+// CHECK-NEXT:   "id": "0x{{.*}}",
+// CHECK-NEXT:   "kind": "ObjCInterfaceDecl",
 // CHECK-NEXT:   "name": "TestObjCClass"
-// CHECK-NEXT:  }, 
+// CHECK-NEXT:  },
 // CHECK-NEXT:  "inner": [
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "id": "0x{{.*}}", 
-// CHECK-NEXT:    "kind": "ObjCIvarDecl", 
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "ObjCIvarDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "line": 41, 
-// CHECK-NEXT:     "col": 7, 
+// CHECK-NEXT:     "offset": 670,
+// CHECK-NEXT:     "line": 41,
+// CHECK-NEXT:     "col": 7,
 // CHECK-NEXT:     "tokLen": 1
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "col": 3, 
+// CHECK-NEXT:      "offset": 666,
+// CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 3
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "col": 7, 
+// CHECK-NEXT:      "offset": 670,
+// CHECK-NEXT:      "col": 7,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "name": "i", 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "name": "i",
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "int"
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "access": "private"
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "id": "0x{{.*}}", 
-// CHECK-NEXT:    "kind": "ObjCMethodDecl", 
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "ObjCMethodDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "line": 43, 
-// CHECK-NEXT:     "col": 1, 
+// CHECK-NEXT:     "offset": 675,
+// CHECK-NEXT:     "line": 43,
+// CHECK-NEXT:     "col": 1,
 // CHECK-NEXT:     "tokLen": 1
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "col": 1, 
+// CHECK-NEXT:      "offset": 675,
+// CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 1
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "line": 44, 
-// CHECK-NEXT:      "col": 1, 
+// CHECK-NEXT:      "offset": 690,
+// CHECK-NEXT:      "line": 44,
+// CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "name": "foo", 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "name": "foo",
 // CHECK-NEXT:    "returnType": {
 // CHECK-NEXT:     "qualType": "void"
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "instance": true, 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "instance": true,
 // CHECK-NEXT:    "inner": [
 // CHECK-NEXT:     {
-// CHECK-NEXT:      "id": "0x{{.*}}", 
-// CHECK-NEXT:      "kind": "ImplicitParamDecl", 
-// CHECK-NEXT:      "loc": {}, 
+// CHECK-NEXT:      "id": "0x{{.*}}",
+// CHECK-NEXT:      "kind": "ImplicitParamDecl",
+// CHECK-NEXT:      "loc": {},
 // CHECK-NEXT:      "range": {
-// CHECK-NEXT:       "begin": {}, 
+// CHECK-NEXT:       "begin": {},
 // CHECK-NEXT:       "end": {}
-// CHECK-NEXT:      }, 
-// CHECK-NEXT:      "isImplicit": true, 
-// CHECK-NEXT:      "name": "self", 
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "isImplicit": true,
+// CHECK-NEXT:      "name": "self",
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "TestObjCClass *"
 // CHECK-NEXT:      }
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     {
-// CHECK-NEXT:      "id": "0x{{.*}}", 
-// CHECK-NEXT:      "kind": "ImplicitParamDecl", 
-// CHECK-NEXT:      "loc": {}, 
+// CHECK-NEXT:      "id": "0x{{.*}}",
+// CHECK-NEXT:      "kind": "ImplicitParamDecl",
+// CHECK-NEXT:      "loc": {},
 // CHECK-NEXT:      "range": {
-// CHECK-NEXT:       "begin": {}, 
+// CHECK-NEXT:       "begin": {},
 // CHECK-NEXT:       "end": {}
-// CHECK-NEXT:      }, 
-// CHECK-NEXT:      "isImplicit": true, 
-// CHECK-NEXT:      "name": "_cmd", 
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "isImplicit": true,
+// CHECK-NEXT:      "name": "_cmd",
 // CHECK-NEXT:      "type": {
-// CHECK-NEXT:       "desugaredQualType": "SEL *", 
-// CHECK-NEXT:       "qualType": "SEL", 
+// CHECK-NEXT:       "desugaredQualType": "SEL *",
+// CHECK-NEXT:       "qualType": "SEL",
 // CHECK-NEXT:       "typeAliasDeclId": "0x{{.*}}"
 // CHECK-NEXT:      }
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     {
-// CHECK-NEXT:      "id": "0x{{.*}}", 
-// CHECK-NEXT:      "kind": "CompoundStmt", 
+// CHECK-NEXT:      "id": "0x{{.*}}",
+// CHECK-NEXT:      "kind": "CompoundStmt",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
-// CHECK-NEXT:        "line": 43, 
-// CHECK-NEXT:        "col": 14, 
+// CHECK-NEXT:        "offset": 688,
+// CHECK-NEXT:        "line": 43,
+// CHECK-NEXT:        "col": 14,
 // CHECK-NEXT:        "tokLen": 1
-// CHECK-NEXT:       }, 
+// CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
-// CHECK-NEXT:        "line": 44, 
-// CHECK-NEXT:        "col": 1, 
+// CHECK-NEXT:        "offset": 690,
+// CHECK-NEXT:        "line": 44,
+// CHECK-NEXT:        "col": 1,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
 // CHECK-NEXT:      }
@@ -699,128 +761,140 @@ void f() {
 // CHECK-NEXT: }
 
 
-// CHECK:  "kind": "ObjCCategoryDecl", 
+// CHECK:  "kind": "ObjCCategoryDecl",
 // CHECK-NEXT:  "loc": {
-// CHECK-NEXT:   "file": "{{.*}}", 
-// CHECK-NEXT:   "line": 47, 
-// CHECK-NEXT:   "col": 12, 
+// CHECK-NEXT:   "offset": 709,
+// CHECK-NEXT:   "file": "{{.*}}",
+// CHECK-NEXT:   "line": 47,
+// CHECK-NEXT:   "col": 12,
 // CHECK-NEXT:   "tokLen": 13
-// CHECK-NEXT:  }, 
+// CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
-// CHECK-NEXT:    "col": 1, 
+// CHECK-NEXT:    "offset": 698,
+// CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
-// CHECK-NEXT:    "line": 49, 
-// CHECK-NEXT:    "col": 2, 
+// CHECK-NEXT:    "offset": 765,
+// CHECK-NEXT:    "line": 49,
+// CHECK-NEXT:    "col": 2,
 // CHECK-NEXT:    "tokLen": 3
 // CHECK-NEXT:   }
-// CHECK-NEXT:  }, 
-// CHECK-NEXT:  "name": "TestObjCCategoryDecl", 
+// CHECK-NEXT:  },
+// CHECK-NEXT:  "name": "TestObjCCategoryDecl",
 // CHECK-NEXT:  "interface": {
-// CHECK-NEXT:   "id": "0x{{.*}}", 
-// CHECK-NEXT:   "kind": "ObjCInterfaceDecl", 
+// CHECK-NEXT:   "id": "0x{{.*}}",
+// CHECK-NEXT:   "kind": "ObjCInterfaceDecl",
 // CHECK-NEXT:   "name": "TestObjCClass"
-// CHECK-NEXT:  }, 
+// CHECK-NEXT:  },
 // CHECK-NEXT:  "implementation": {
-// CHECK-NEXT:   "id": "0x{{.*}}", 
-// CHECK-NEXT:   "kind": "ObjCCategoryImplDecl", 
+// CHECK-NEXT:   "id": "0x{{.*}}",
+// CHECK-NEXT:   "kind": "ObjCCategoryImplDecl",
 // CHECK-NEXT:   "name": "TestObjCCategoryDecl"
-// CHECK-NEXT:  }, 
+// CHECK-NEXT:  },
 // CHECK-NEXT:  "protocols": [
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "id": "0x{{.*}}", 
-// CHECK-NEXT:    "kind": "ObjCProtocolDecl", 
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "ObjCProtocolDecl",
 // CHECK-NEXT:    "name": "P"
 // CHECK-NEXT:   }
-// CHECK-NEXT:  ], 
+// CHECK-NEXT:  ],
 // CHECK-NEXT:  "inner": [
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "id": "0x{{.*}}", 
-// CHECK-NEXT:    "kind": "ObjCMethodDecl", 
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "ObjCMethodDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "line": 48, 
-// CHECK-NEXT:     "col": 1, 
+// CHECK-NEXT:     "offset": 750,
+// CHECK-NEXT:     "line": 48,
+// CHECK-NEXT:     "col": 1,
 // CHECK-NEXT:     "tokLen": 1
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "col": 1, 
+// CHECK-NEXT:      "offset": 750,
+// CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 1
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "col": 13, 
+// CHECK-NEXT:      "offset": 762,
+// CHECK-NEXT:      "col": 13,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "name": "bar", 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "name": "bar",
 // CHECK-NEXT:    "returnType": {
 // CHECK-NEXT:     "qualType": "void"
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "instance": true
 // CHECK-NEXT:   }
 // CHECK-NEXT:  ]
 // CHECK-NEXT: }
 
 
-// CHECK:  "kind": "ObjCInterfaceDecl", 
+// CHECK:  "kind": "ObjCInterfaceDecl",
 // CHECK-NEXT:  "loc": {
-// CHECK-NEXT:   "file": "{{.*}}", 
-// CHECK-NEXT:   "line": 51, 
-// CHECK-NEXT:   "col": 12, 
+// CHECK-NEXT:   "offset": 781,
+// CHECK-NEXT:   "file": "{{.*}}",
+// CHECK-NEXT:   "line": 51,
+// CHECK-NEXT:   "col": 12,
 // CHECK-NEXT:   "tokLen": 20
-// CHECK-NEXT:  }, 
+// CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
-// CHECK-NEXT:    "col": 1, 
+// CHECK-NEXT:    "offset": 770,
+// CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
-// CHECK-NEXT:    "line": 53, 
-// CHECK-NEXT:    "col": 2, 
+// CHECK-NEXT:    "offset": 817,
+// CHECK-NEXT:    "line": 53,
+// CHECK-NEXT:    "col": 2,
 // CHECK-NEXT:    "tokLen": 3
 // CHECK-NEXT:   }
-// CHECK-NEXT:  }, 
-// CHECK-NEXT:  "name": "TestGenericInterface", 
+// CHECK-NEXT:  },
+// CHECK-NEXT:  "name": "TestGenericInterface",
 // CHECK-NEXT:  "super": {
-// CHECK-NEXT:   "id": "0x{{.*}}", 
-// CHECK-NEXT:   "kind": "ObjCInterfaceDecl", 
+// CHECK-NEXT:   "id": "0x{{.*}}",
+// CHECK-NEXT:   "kind": "ObjCInterfaceDecl",
 // CHECK-NEXT:   "name": "A"
-// CHECK-NEXT:  }, 
+// CHECK-NEXT:  },
 // CHECK-NEXT:  "implementation": {
-// CHECK-NEXT:   "id": "0x{{.*}}"
-// CHECK-NEXT:  }, 
+// CHECK-NEXT:   "id": "0x0"
+// CHECK-NEXT:  },
 // CHECK-NEXT:  "protocols": [
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "id": "0x{{.*}}", 
-// CHECK-NEXT:    "kind": "ObjCProtocolDecl", 
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "ObjCProtocolDecl",
 // CHECK-NEXT:    "name": "P"
 // CHECK-NEXT:   }
-// CHECK-NEXT:  ], 
+// CHECK-NEXT:  ],
 // CHECK-NEXT:  "inner": [
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "id": "0x{{.*}}", 
-// CHECK-NEXT:    "kind": "ObjCTypeParamDecl", 
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "ObjCTypeParamDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "line": 51, 
-// CHECK-NEXT:     "col": 33, 
+// CHECK-NEXT:     "offset": 802,
+// CHECK-NEXT:     "line": 51,
+// CHECK-NEXT:     "col": 33,
 // CHECK-NEXT:     "tokLen": 1
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "col": 33, 
+// CHECK-NEXT:      "offset": 802,
+// CHECK-NEXT:      "col": 33,
 // CHECK-NEXT:      "tokLen": 1
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "col": 33, 
+// CHECK-NEXT:      "offset": 802,
+// CHECK-NEXT:      "col": 33,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "name": "T", 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "name": "T",
 // CHECK-NEXT:    "type": {
-// CHECK-NEXT:     "desugaredQualType": "id", 
-// CHECK-NEXT:     "qualType": "id", 
+// CHECK-NEXT:     "desugaredQualType": "id",
+// CHECK-NEXT:     "qualType": "id",
 // CHECK-NEXT:     "typeAliasDeclId": "0x{{.*}}"
 // CHECK-NEXT:    }
 // CHECK-NEXT:   }
@@ -828,103 +902,111 @@ void f() {
 // CHECK-NEXT: }
 
 
-// CHECK:  "kind": "ObjCCategoryImplDecl", 
+// CHECK:  "kind": "ObjCCategoryImplDecl",
 // CHECK-NEXT:  "loc": {
-// CHECK-NEXT:   "file": "{{.*}}", 
-// CHECK-NEXT:   "line": 55, 
-// CHECK-NEXT:   "col": 17, 
+// CHECK-NEXT:   "offset": 838,
+// CHECK-NEXT:   "file": "{{.*}}",
+// CHECK-NEXT:   "line": 55,
+// CHECK-NEXT:   "col": 17,
 // CHECK-NEXT:   "tokLen": 13
-// CHECK-NEXT:  }, 
+// CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
-// CHECK-NEXT:    "col": 1, 
+// CHECK-NEXT:    "offset": 822,
+// CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
-// CHECK-NEXT:    "line": 58, 
-// CHECK-NEXT:    "col": 1, 
+// CHECK-NEXT:    "offset": 892,
+// CHECK-NEXT:    "line": 58,
+// CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   }
-// CHECK-NEXT:  }, 
-// CHECK-NEXT:  "name": "TestObjCCategoryDecl", 
+// CHECK-NEXT:  },
+// CHECK-NEXT:  "name": "TestObjCCategoryDecl",
 // CHECK-NEXT:  "interface": {
-// CHECK-NEXT:   "id": "0x{{.*}}", 
-// CHECK-NEXT:   "kind": "ObjCInterfaceDecl", 
+// CHECK-NEXT:   "id": "0x{{.*}}",
+// CHECK-NEXT:   "kind": "ObjCInterfaceDecl",
 // CHECK-NEXT:   "name": "TestObjCClass"
-// CHECK-NEXT:  }, 
+// CHECK-NEXT:  },
 // CHECK-NEXT:  "categoryDecl": {
-// CHECK-NEXT:   "id": "0x{{.*}}", 
-// CHECK-NEXT:   "kind": "ObjCCategoryDecl", 
+// CHECK-NEXT:   "id": "0x{{.*}}",
+// CHECK-NEXT:   "kind": "ObjCCategoryDecl",
 // CHECK-NEXT:   "name": "TestObjCCategoryDecl"
-// CHECK-NEXT:  }, 
+// CHECK-NEXT:  },
 // CHECK-NEXT:  "inner": [
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "id": "0x{{.*}}", 
-// CHECK-NEXT:    "kind": "ObjCMethodDecl", 
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "ObjCMethodDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "line": 56, 
-// CHECK-NEXT:     "col": 1, 
+// CHECK-NEXT:     "offset": 875,
+// CHECK-NEXT:     "line": 56,
+// CHECK-NEXT:     "col": 1,
 // CHECK-NEXT:     "tokLen": 1
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "col": 1, 
+// CHECK-NEXT:      "offset": 875,
+// CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 1
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "line": 57, 
-// CHECK-NEXT:      "col": 1, 
+// CHECK-NEXT:      "offset": 890,
+// CHECK-NEXT:      "line": 57,
+// CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "name": "bar", 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "name": "bar",
 // CHECK-NEXT:    "returnType": {
 // CHECK-NEXT:     "qualType": "void"
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "instance": true, 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "instance": true,
 // CHECK-NEXT:    "inner": [
 // CHECK-NEXT:     {
-// CHECK-NEXT:      "id": "0x{{.*}}", 
-// CHECK-NEXT:      "kind": "ImplicitParamDecl", 
-// CHECK-NEXT:      "loc": {}, 
+// CHECK-NEXT:      "id": "0x{{.*}}",
+// CHECK-NEXT:      "kind": "ImplicitParamDecl",
+// CHECK-NEXT:      "loc": {},
 // CHECK-NEXT:      "range": {
-// CHECK-NEXT:       "begin": {}, 
+// CHECK-NEXT:       "begin": {},
 // CHECK-NEXT:       "end": {}
-// CHECK-NEXT:      }, 
-// CHECK-NEXT:      "isImplicit": true, 
-// CHECK-NEXT:      "name": "self", 
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "isImplicit": true,
+// CHECK-NEXT:      "name": "self",
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "TestObjCClass *"
 // CHECK-NEXT:      }
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     {
-// CHECK-NEXT:      "id": "0x{{.*}}", 
-// CHECK-NEXT:      "kind": "ImplicitParamDecl", 
-// CHECK-NEXT:      "loc": {}, 
+// CHECK-NEXT:      "id": "0x{{.*}}",
+// CHECK-NEXT:      "kind": "ImplicitParamDecl",
+// CHECK-NEXT:      "loc": {},
 // CHECK-NEXT:      "range": {
-// CHECK-NEXT:       "begin": {}, 
+// CHECK-NEXT:       "begin": {},
 // CHECK-NEXT:       "end": {}
-// CHECK-NEXT:      }, 
-// CHECK-NEXT:      "isImplicit": true, 
-// CHECK-NEXT:      "name": "_cmd", 
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "isImplicit": true,
+// CHECK-NEXT:      "name": "_cmd",
 // CHECK-NEXT:      "type": {
-// CHECK-NEXT:       "desugaredQualType": "SEL *", 
-// CHECK-NEXT:       "qualType": "SEL", 
+// CHECK-NEXT:       "desugaredQualType": "SEL *",
+// CHECK-NEXT:       "qualType": "SEL",
 // CHECK-NEXT:       "typeAliasDeclId": "0x{{.*}}"
 // CHECK-NEXT:      }
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     {
-// CHECK-NEXT:      "id": "0x{{.*}}", 
-// CHECK-NEXT:      "kind": "CompoundStmt", 
+// CHECK-NEXT:      "id": "0x{{.*}}",
+// CHECK-NEXT:      "kind": "CompoundStmt",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
-// CHECK-NEXT:        "line": 56, 
-// CHECK-NEXT:        "col": 14, 
+// CHECK-NEXT:        "offset": 888,
+// CHECK-NEXT:        "line": 56,
+// CHECK-NEXT:        "col": 14,
 // CHECK-NEXT:        "tokLen": 1
-// CHECK-NEXT:       }, 
+// CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
-// CHECK-NEXT:        "line": 57, 
-// CHECK-NEXT:        "col": 1, 
+// CHECK-NEXT:        "offset": 890,
+// CHECK-NEXT:        "line": 57,
+// CHECK-NEXT:        "col": 1,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
 // CHECK-NEXT:      }
@@ -935,266 +1017,296 @@ void f() {
 // CHECK-NEXT: }
 
 
-// CHECK:  "kind": "ObjCCompatibleAliasDecl", 
+// CHECK:  "kind": "ObjCCompatibleAliasDecl",
 // CHECK-NEXT:  "loc": {
-// CHECK-NEXT:   "file": "{{.*}}", 
-// CHECK-NEXT:   "line": 60, 
-// CHECK-NEXT:   "col": 1, 
+// CHECK-NEXT:   "offset": 898,
+// CHECK-NEXT:   "file": "{{.*}}",
+// CHECK-NEXT:   "line": 60,
+// CHECK-NEXT:   "col": 1,
 // CHECK-NEXT:   "tokLen": 1
-// CHECK-NEXT:  }, 
+// CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
-// CHECK-NEXT:    "col": 1, 
+// CHECK-NEXT:    "offset": 898,
+// CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
-// CHECK-NEXT:    "col": 1, 
+// CHECK-NEXT:    "offset": 898,
+// CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   }
-// CHECK-NEXT:  }, 
-// CHECK-NEXT:  "name": "TestObjCCompatibleAliasDecl", 
+// CHECK-NEXT:  },
+// CHECK-NEXT:  "name": "TestObjCCompatibleAliasDecl",
 // CHECK-NEXT:  "interface": {
-// CHECK-NEXT:   "id": "0x{{.*}}", 
-// CHECK-NEXT:   "kind": "ObjCInterfaceDecl", 
+// CHECK-NEXT:   "id": "0x{{.*}}",
+// CHECK-NEXT:   "kind": "ObjCInterfaceDecl",
 // CHECK-NEXT:   "name": "A"
 // CHECK-NEXT:  }
 // CHECK-NEXT: }
 
 
-// CHECK:  "kind": "ObjCInterfaceDecl", 
+// CHECK:  "kind": "ObjCInterfaceDecl",
 // CHECK-NEXT:  "loc": {
-// CHECK-NEXT:   "file": "{{.*}}", 
-// CHECK-NEXT:   "line": 62, 
-// CHECK-NEXT:   "col": 12, 
+// CHECK-NEXT:   "offset": 962,
+// CHECK-NEXT:   "file": "{{.*}}",
+// CHECK-NEXT:   "line": 62,
+// CHECK-NEXT:   "col": 12,
 // CHECK-NEXT:   "tokLen": 16
-// CHECK-NEXT:  }, 
+// CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
-// CHECK-NEXT:    "col": 1, 
+// CHECK-NEXT:    "offset": 951,
+// CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
-// CHECK-NEXT:    "line": 65, 
-// CHECK-NEXT:    "col": 2, 
+// CHECK-NEXT:    "offset": 1058,
+// CHECK-NEXT:    "line": 65,
+// CHECK-NEXT:    "col": 2,
 // CHECK-NEXT:    "tokLen": 3
 // CHECK-NEXT:   }
-// CHECK-NEXT:  }, 
-// CHECK-NEXT:  "name": "TestObjCProperty", 
+// CHECK-NEXT:  },
+// CHECK-NEXT:  "name": "TestObjCProperty",
 // CHECK-NEXT:  "super": {
-// CHECK-NEXT:   "id": "0x{{.*}}", 
-// CHECK-NEXT:   "kind": "ObjCInterfaceDecl", 
+// CHECK-NEXT:   "id": "0x{{.*}}",
+// CHECK-NEXT:   "kind": "ObjCInterfaceDecl",
 // CHECK-NEXT:   "name": "A"
-// CHECK-NEXT:  }, 
+// CHECK-NEXT:  },
 // CHECK-NEXT:  "implementation": {
-// CHECK-NEXT:   "id": "0x{{.*}}", 
-// CHECK-NEXT:   "kind": "ObjCImplementationDecl", 
+// CHECK-NEXT:   "id": "0x{{.*}}",
+// CHECK-NEXT:   "kind": "ObjCImplementationDecl",
 // CHECK-NEXT:   "name": "TestObjCProperty"
-// CHECK-NEXT:  }, 
+// CHECK-NEXT:  },
 // CHECK-NEXT:  "inner": [
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "id": "0x{{.*}}", 
-// CHECK-NEXT:    "kind": "ObjCPropertyDecl", 
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "ObjCPropertyDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "line": 63, 
-// CHECK-NEXT:     "col": 52, 
+// CHECK-NEXT:     "offset": 1033,
+// CHECK-NEXT:     "line": 63,
+// CHECK-NEXT:     "col": 52,
 // CHECK-NEXT:     "tokLen": 3
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "col": 1, 
+// CHECK-NEXT:      "offset": 982,
+// CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 1
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "col": 52, 
+// CHECK-NEXT:      "offset": 1033,
+// CHECK-NEXT:      "col": 52,
 // CHECK-NEXT:      "tokLen": 3
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "name": "foo", 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "name": "foo",
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "int"
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "getter": {
-// CHECK-NEXT:     "id": "0x{{.*}}", 
-// CHECK-NEXT:     "kind": "ObjCMethodDecl", 
+// CHECK-NEXT:     "id": "0x{{.*}}",
+// CHECK-NEXT:     "kind": "ObjCMethodDecl",
 // CHECK-NEXT:     "name": "getterFoo"
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "setter": {
-// CHECK-NEXT:     "id": "0x{{.*}}", 
-// CHECK-NEXT:     "kind": "ObjCMethodDecl", 
+// CHECK-NEXT:     "id": "0x{{.*}}",
+// CHECK-NEXT:     "kind": "ObjCMethodDecl",
 // CHECK-NEXT:     "name": "setterFoo:"
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "assign": true, 
-// CHECK-NEXT:    "readwrite": true, 
-// CHECK-NEXT:    "atomic": true, 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "assign": true,
+// CHECK-NEXT:    "readwrite": true,
+// CHECK-NEXT:    "atomic": true,
 // CHECK-NEXT:    "unsafe_unretained": true
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "id": "0x{{.*}}", 
-// CHECK-NEXT:    "kind": "ObjCPropertyDecl", 
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "ObjCPropertyDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "line": 64, 
-// CHECK-NEXT:     "col": 15, 
+// CHECK-NEXT:     "offset": 1052,
+// CHECK-NEXT:     "line": 64,
+// CHECK-NEXT:     "col": 15,
 // CHECK-NEXT:     "tokLen": 3
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "col": 1, 
+// CHECK-NEXT:      "offset": 1038,
+// CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 1
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "col": 15, 
+// CHECK-NEXT:      "offset": 1052,
+// CHECK-NEXT:      "col": 15,
 // CHECK-NEXT:      "tokLen": 3
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "name": "bar", 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "name": "bar",
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "int"
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "assign": true, 
-// CHECK-NEXT:    "readwrite": true, 
-// CHECK-NEXT:    "atomic": true, 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "assign": true,
+// CHECK-NEXT:    "readwrite": true,
+// CHECK-NEXT:    "atomic": true,
 // CHECK-NEXT:    "unsafe_unretained": true
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "id": "0x{{.*}}", 
-// CHECK-NEXT:    "kind": "ObjCMethodDecl", 
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "ObjCMethodDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "line": 63, 
-// CHECK-NEXT:     "col": 52, 
+// CHECK-NEXT:     "offset": 1033,
+// CHECK-NEXT:     "line": 63,
+// CHECK-NEXT:     "col": 52,
 // CHECK-NEXT:     "tokLen": 3
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "col": 52, 
+// CHECK-NEXT:      "offset": 1033,
+// CHECK-NEXT:      "col": 52,
 // CHECK-NEXT:      "tokLen": 3
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "col": 52, 
+// CHECK-NEXT:      "offset": 1033,
+// CHECK-NEXT:      "col": 52,
 // CHECK-NEXT:      "tokLen": 3
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "isImplicit": true, 
-// CHECK-NEXT:    "name": "getterFoo", 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "isImplicit": true,
+// CHECK-NEXT:    "name": "getterFoo",
 // CHECK-NEXT:    "returnType": {
 // CHECK-NEXT:     "qualType": "int"
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "instance": true
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "id": "0x{{.*}}", 
-// CHECK-NEXT:    "kind": "ObjCMethodDecl", 
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "ObjCMethodDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "col": 52, 
+// CHECK-NEXT:     "offset": 1033,
+// CHECK-NEXT:     "col": 52,
 // CHECK-NEXT:     "tokLen": 3
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "col": 52, 
+// CHECK-NEXT:      "offset": 1033,
+// CHECK-NEXT:      "col": 52,
 // CHECK-NEXT:      "tokLen": 3
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "col": 52, 
+// CHECK-NEXT:      "offset": 1033,
+// CHECK-NEXT:      "col": 52,
 // CHECK-NEXT:      "tokLen": 3
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "isImplicit": true, 
-// CHECK-NEXT:    "name": "setterFoo:", 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "isImplicit": true,
+// CHECK-NEXT:    "name": "setterFoo:",
 // CHECK-NEXT:    "returnType": {
 // CHECK-NEXT:     "qualType": "void"
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "instance": true, 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "instance": true,
 // 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": 52, 
+// CHECK-NEXT:       "offset": 1033,
+// CHECK-NEXT:       "col": 52,
 // CHECK-NEXT:       "tokLen": 3
-// CHECK-NEXT:      }, 
+// CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
-// CHECK-NEXT:        "col": 52, 
+// CHECK-NEXT:        "offset": 1033,
+// CHECK-NEXT:        "col": 52,
 // CHECK-NEXT:        "tokLen": 3
-// CHECK-NEXT:       }, 
+// CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
-// CHECK-NEXT:        "col": 52, 
+// CHECK-NEXT:        "offset": 1033,
+// CHECK-NEXT:        "col": 52,
 // CHECK-NEXT:        "tokLen": 3
 // CHECK-NEXT:       }
-// CHECK-NEXT:      }, 
-// CHECK-NEXT:      "name": "foo", 
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "name": "foo",
 // 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": "ObjCMethodDecl", 
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "ObjCMethodDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "line": 64, 
-// CHECK-NEXT:     "col": 15, 
+// CHECK-NEXT:     "offset": 1052,
+// CHECK-NEXT:     "line": 64,
+// CHECK-NEXT:     "col": 15,
 // CHECK-NEXT:     "tokLen": 3
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "col": 15, 
+// CHECK-NEXT:      "offset": 1052,
+// CHECK-NEXT:      "col": 15,
 // CHECK-NEXT:      "tokLen": 3
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "col": 15, 
+// CHECK-NEXT:      "offset": 1052,
+// CHECK-NEXT:      "col": 15,
 // CHECK-NEXT:      "tokLen": 3
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "isImplicit": true, 
-// CHECK-NEXT:    "name": "bar", 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "isImplicit": true,
+// CHECK-NEXT:    "name": "bar",
 // CHECK-NEXT:    "returnType": {
 // CHECK-NEXT:     "qualType": "int"
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "instance": true
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "id": "0x{{.*}}", 
-// CHECK-NEXT:    "kind": "ObjCMethodDecl", 
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "ObjCMethodDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "col": 15, 
+// CHECK-NEXT:     "offset": 1052,
+// CHECK-NEXT:     "col": 15,
 // CHECK-NEXT:     "tokLen": 3
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "col": 15, 
+// CHECK-NEXT:      "offset": 1052,
+// CHECK-NEXT:      "col": 15,
 // CHECK-NEXT:      "tokLen": 3
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "col": 15, 
+// CHECK-NEXT:      "offset": 1052,
+// CHECK-NEXT:      "col": 15,
 // CHECK-NEXT:      "tokLen": 3
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "isImplicit": true, 
-// CHECK-NEXT:    "name": "setBar:", 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "isImplicit": true,
+// CHECK-NEXT:    "name": "setBar:",
 // CHECK-NEXT:    "returnType": {
 // CHECK-NEXT:     "qualType": "void"
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "instance": true, 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "instance": true,
 // 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": 15, 
+// CHECK-NEXT:       "offset": 1052,
+// CHECK-NEXT:       "col": 15,
 // CHECK-NEXT:       "tokLen": 3
-// CHECK-NEXT:      }, 
+// CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
-// CHECK-NEXT:        "col": 15, 
+// CHECK-NEXT:        "offset": 1052,
+// CHECK-NEXT:        "col": 15,
 // CHECK-NEXT:        "tokLen": 3
-// CHECK-NEXT:       }, 
+// CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
-// CHECK-NEXT:        "col": 15, 
+// CHECK-NEXT:        "offset": 1052,
+// CHECK-NEXT:        "col": 15,
 // CHECK-NEXT:        "tokLen": 3
 // CHECK-NEXT:       }
-// CHECK-NEXT:      }, 
-// CHECK-NEXT:      "name": "bar", 
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "name": "bar",
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "int"
 // CHECK-NEXT:      }
@@ -1205,145 +1317,160 @@ void f() {
 // CHECK-NEXT: }
 
 
-// CHECK:  "kind": "ObjCImplementationDecl", 
+// CHECK:  "kind": "ObjCImplementationDecl",
 // CHECK-NEXT:  "loc": {
-// CHECK-NEXT:   "file": "{{.*}}", 
-// CHECK-NEXT:   "line": 67, 
-// CHECK-NEXT:   "col": 17, 
+// CHECK-NEXT:   "offset": 1079,
+// CHECK-NEXT:   "file": "{{.*}}",
+// CHECK-NEXT:   "line": 67,
+// CHECK-NEXT:   "col": 17,
 // CHECK-NEXT:   "tokLen": 16
-// CHECK-NEXT:  }, 
+// CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
-// CHECK-NEXT:    "col": 1, 
+// CHECK-NEXT:    "offset": 1063,
+// CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
-// CHECK-NEXT:    "line": 72, 
-// CHECK-NEXT:    "col": 1, 
+// CHECK-NEXT:    "offset": 1145,
+// CHECK-NEXT:    "line": 72,
+// CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   }
-// CHECK-NEXT:  }, 
-// CHECK-NEXT:  "name": "TestObjCProperty", 
+// CHECK-NEXT:  },
+// CHECK-NEXT:  "name": "TestObjCProperty",
 // CHECK-NEXT:  "super": {
-// CHECK-NEXT:   "id": "0x{{.*}}"
-// CHECK-NEXT:  }, 
+// CHECK-NEXT:   "id": "0x0"
+// CHECK-NEXT:  },
 // CHECK-NEXT:  "interface": {
-// CHECK-NEXT:   "id": "0x{{.*}}", 
-// CHECK-NEXT:   "kind": "ObjCInterfaceDecl", 
+// CHECK-NEXT:   "id": "0x{{.*}}",
+// CHECK-NEXT:   "kind": "ObjCInterfaceDecl",
 // CHECK-NEXT:   "name": "TestObjCProperty"
-// CHECK-NEXT:  }, 
+// CHECK-NEXT:  },
 // CHECK-NEXT:  "inner": [
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "id": "0x{{.*}}", 
-// CHECK-NEXT:    "kind": "ObjCIvarDecl", 
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "ObjCIvarDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "line": 68, 
-// CHECK-NEXT:     "col": 7, 
+// CHECK-NEXT:     "offset": 1104,
+// CHECK-NEXT:     "line": 68,
+// CHECK-NEXT:     "col": 7,
 // CHECK-NEXT:     "tokLen": 1
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "col": 3, 
+// CHECK-NEXT:      "offset": 1100,
+// CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 3
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "col": 7, 
+// CHECK-NEXT:      "offset": 1104,
+// CHECK-NEXT:      "col": 7,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "name": "i", 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "name": "i",
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "int"
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "access": "private"
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "id": "0x{{.*}}", 
-// CHECK-NEXT:    "kind": "ObjCPropertyImplDecl", 
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "ObjCPropertyImplDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "line": 70, 
-// CHECK-NEXT:     "col": 13, 
+// CHECK-NEXT:     "offset": 1121,
+// CHECK-NEXT:     "line": 70,
+// CHECK-NEXT:     "col": 13,
 // CHECK-NEXT:     "tokLen": 3
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "col": 1, 
+// CHECK-NEXT:      "offset": 1109,
+// CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 1
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "col": 17, 
+// CHECK-NEXT:      "offset": 1125,
+// CHECK-NEXT:      "col": 17,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "name": "foo", 
-// CHECK-NEXT:    "implKind": "synthesize", 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "name": "foo",
+// CHECK-NEXT:    "implKind": "synthesize",
 // CHECK-NEXT:    "propertyDecl": {
-// CHECK-NEXT:     "id": "0x{{.*}}", 
-// CHECK-NEXT:     "kind": "ObjCPropertyDecl", 
+// CHECK-NEXT:     "id": "0x{{.*}}",
+// CHECK-NEXT:     "kind": "ObjCPropertyDecl",
 // CHECK-NEXT:     "name": "foo"
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "ivarDecl": {
-// CHECK-NEXT:     "id": "0x{{.*}}", 
-// CHECK-NEXT:     "kind": "ObjCIvarDecl", 
-// CHECK-NEXT:     "name": "i", 
+// CHECK-NEXT:     "id": "0x{{.*}}",
+// CHECK-NEXT:     "kind": "ObjCIvarDecl",
+// CHECK-NEXT:     "name": "i",
 // CHECK-NEXT:     "type": {
 // CHECK-NEXT:      "qualType": "int"
 // CHECK-NEXT:     }
 // CHECK-NEXT:    }
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "id": "0x{{.*}}", 
-// CHECK-NEXT:    "kind": "ObjCIvarDecl", 
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "ObjCIvarDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "line": 71, 
-// CHECK-NEXT:     "col": 13, 
+// CHECK-NEXT:     "offset": 1140,
+// CHECK-NEXT:     "line": 71,
+// CHECK-NEXT:     "col": 13,
 // CHECK-NEXT:     "tokLen": 3
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "col": 13, 
+// CHECK-NEXT:      "offset": 1140,
+// CHECK-NEXT:      "col": 13,
 // CHECK-NEXT:      "tokLen": 3
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "col": 13, 
+// CHECK-NEXT:      "offset": 1140,
+// CHECK-NEXT:      "col": 13,
 // CHECK-NEXT:      "tokLen": 3
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "name": "bar", 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "name": "bar",
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "int"
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "synthesized": true, 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "synthesized": true,
 // CHECK-NEXT:    "access": "private"
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "id": "0x{{.*}}", 
-// CHECK-NEXT:    "kind": "ObjCPropertyImplDecl", 
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "ObjCPropertyImplDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "col": 13, 
+// CHECK-NEXT:     "offset": 1140,
+// CHECK-NEXT:     "col": 13,
 // CHECK-NEXT:     "tokLen": 3
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "col": 1, 
+// CHECK-NEXT:      "offset": 1128,
+// CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 1
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "col": 13, 
+// CHECK-NEXT:      "offset": 1140,
+// CHECK-NEXT:      "col": 13,
 // CHECK-NEXT:      "tokLen": 3
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "name": "bar", 
-// CHECK-NEXT:    "implKind": "synthesize", 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "name": "bar",
+// CHECK-NEXT:    "implKind": "synthesize",
 // CHECK-NEXT:    "propertyDecl": {
-// CHECK-NEXT:     "id": "0x{{.*}}", 
-// CHECK-NEXT:     "kind": "ObjCPropertyDecl", 
+// CHECK-NEXT:     "id": "0x{{.*}}",
+// CHECK-NEXT:     "kind": "ObjCPropertyDecl",
 // CHECK-NEXT:     "name": "bar"
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "ivarDecl": {
-// CHECK-NEXT:     "id": "0x{{.*}}", 
-// CHECK-NEXT:     "kind": "ObjCIvarDecl", 
-// CHECK-NEXT:     "name": "bar", 
+// CHECK-NEXT:     "id": "0x{{.*}}",
+// CHECK-NEXT:     "kind": "ObjCIvarDecl",
+// CHECK-NEXT:     "name": "bar",
 // CHECK-NEXT:     "type": {
 // CHECK-NEXT:      "qualType": "int"
 // CHECK-NEXT:     }
@@ -1353,218 +1480,242 @@ void f() {
 // CHECK-NEXT: }
 
 
-// CHECK:  "kind": "FunctionDecl", 
+// CHECK:  "kind": "FunctionDecl",
 // CHECK-NEXT:  "loc": {
-// CHECK-NEXT:   "file": "{{.*}}", 
-// CHECK-NEXT:   "line": 74, 
-// CHECK-NEXT:   "col": 6, 
+// CHECK-NEXT:   "offset": 1156,
+// CHECK-NEXT:   "file": "{{.*}}",
+// CHECK-NEXT:   "line": 74,
+// CHECK-NEXT:   "col": 6,
 // CHECK-NEXT:   "tokLen": 13
-// CHECK-NEXT:  }, 
+// CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
-// CHECK-NEXT:    "col": 1, 
+// CHECK-NEXT:    "offset": 1151,
+// CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 4
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
-// CHECK-NEXT:    "line": 76, 
-// CHECK-NEXT:    "col": 1, 
+// CHECK-NEXT:    "offset": 1202,
+// CHECK-NEXT:    "line": 76,
+// CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   }
-// CHECK-NEXT:  }, 
-// CHECK-NEXT:  "name": "TestBlockDecl", 
+// CHECK-NEXT:  },
+// CHECK-NEXT:  "name": "TestBlockDecl",
 // CHECK-NEXT:  "type": {
 // CHECK-NEXT:   "qualType": "void (int)"
-// CHECK-NEXT:  }, 
+// CHECK-NEXT:  },
 // 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:     "line": 74, 
-// CHECK-NEXT:     "col": 24, 
+// CHECK-NEXT:     "offset": 1174,
+// CHECK-NEXT:     "line": 74,
+// CHECK-NEXT:     "col": 24,
 // CHECK-NEXT:     "tokLen": 1
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "col": 20, 
+// CHECK-NEXT:      "offset": 1170,
+// CHECK-NEXT:      "col": 20,
 // CHECK-NEXT:      "tokLen": 3
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "col": 24, 
+// CHECK-NEXT:      "offset": 1174,
+// CHECK-NEXT:      "col": 24,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "isUsed": true, 
-// CHECK-NEXT:    "name": "x", 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "isUsed": true,
+// CHECK-NEXT:    "name": "x",
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "int"
 // CHECK-NEXT:    }
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "id": "0x{{.*}}", 
-// CHECK-NEXT:    "kind": "CompoundStmt", 
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "CompoundStmt",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "col": 27, 
+// CHECK-NEXT:      "offset": 1177,
+// CHECK-NEXT:      "col": 27,
 // CHECK-NEXT:      "tokLen": 1
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "line": 76, 
-// CHECK-NEXT:      "col": 1, 
+// CHECK-NEXT:      "offset": 1202,
+// CHECK-NEXT:      "line": 76,
+// CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "inner": [
 // CHECK-NEXT:     {
-// CHECK-NEXT:      "id": "0x{{.*}}", 
-// CHECK-NEXT:      "kind": "ExprWithCleanups", 
+// CHECK-NEXT:      "id": "0x{{.*}}",
+// CHECK-NEXT:      "kind": "ExprWithCleanups",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
-// CHECK-NEXT:        "line": 75, 
-// CHECK-NEXT:        "col": 3, 
+// CHECK-NEXT:        "offset": 1181,
+// CHECK-NEXT:        "line": 75,
+// CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
-// CHECK-NEXT:       }, 
+// CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
-// CHECK-NEXT:        "col": 21, 
+// CHECK-NEXT:        "offset": 1199,
+// CHECK-NEXT:        "col": 21,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
-// CHECK-NEXT:      }, 
+// CHECK-NEXT:      },
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "void (^)(int, ...)"
-// CHECK-NEXT:      }, 
-// CHECK-NEXT:      "valueCategory": "rvalue", 
-// CHECK-NEXT:      "cleanupsHaveSideEffects": true, 
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "cleanupsHaveSideEffects": true,
 // CHECK-NEXT:      "cleanups": [
 // CHECK-NEXT:       {
-// CHECK-NEXT:        "id": "0x{{.*}}", 
+// CHECK-NEXT:        "id": "0x{{.*}}",
 // CHECK-NEXT:        "kind": "BlockDecl"
 // CHECK-NEXT:       }
-// CHECK-NEXT:      ], 
+// CHECK-NEXT:      ],
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
-// CHECK-NEXT:        "id": "0x{{.*}}", 
-// CHECK-NEXT:        "kind": "BlockExpr", 
+// CHECK-NEXT:        "id": "0x{{.*}}",
+// CHECK-NEXT:        "kind": "BlockExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
-// CHECK-NEXT:          "col": 3, 
+// CHECK-NEXT:          "offset": 1181,
+// CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
-// CHECK-NEXT:         }, 
+// CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "col": 21, 
+// CHECK-NEXT:          "offset": 1199,
+// CHECK-NEXT:          "col": 21,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
-// CHECK-NEXT:        }, 
+// CHECK-NEXT:        },
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "void (^)(int, ...)"
-// CHECK-NEXT:        }, 
-// CHECK-NEXT:        "valueCategory": "rvalue", 
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "valueCategory": "rvalue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
-// CHECK-NEXT:          "id": "0x{{.*}}", 
-// CHECK-NEXT:          "kind": "BlockDecl", 
+// CHECK-NEXT:          "id": "0x{{.*}}",
+// CHECK-NEXT:          "kind": "BlockDecl",
 // CHECK-NEXT:          "loc": {
-// CHECK-NEXT:           "col": 3, 
+// CHECK-NEXT:           "offset": 1181,
+// CHECK-NEXT:           "col": 3,
 // CHECK-NEXT:           "tokLen": 1
-// CHECK-NEXT:          }, 
+// CHECK-NEXT:          },
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
-// CHECK-NEXT:            "col": 3, 
+// CHECK-NEXT:            "offset": 1181,
+// CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
-// CHECK-NEXT:           }, 
+// CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
-// CHECK-NEXT:            "col": 21, 
+// CHECK-NEXT:            "offset": 1199,
+// CHECK-NEXT:            "col": 21,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
-// CHECK-NEXT:          }, 
-// CHECK-NEXT:          "variadic": true, 
+// CHECK-NEXT:          },
+// CHECK-NEXT:          "variadic": true,
 // 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": 9, 
+// CHECK-NEXT:             "offset": 1187,
+// CHECK-NEXT:             "col": 9,
 // CHECK-NEXT:             "tokLen": 1
-// CHECK-NEXT:            }, 
+// CHECK-NEXT:            },
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
-// CHECK-NEXT:              "col": 5, 
+// CHECK-NEXT:              "offset": 1183,
+// CHECK-NEXT:              "col": 5,
 // CHECK-NEXT:              "tokLen": 3
-// CHECK-NEXT:             }, 
+// CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
-// CHECK-NEXT:              "col": 9, 
+// CHECK-NEXT:              "offset": 1187,
+// CHECK-NEXT:              "col": 9,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
-// CHECK-NEXT:            }, 
-// CHECK-NEXT:            "name": "y", 
+// CHECK-NEXT:            },
+// CHECK-NEXT:            "name": "y",
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "qualType": "int"
 // CHECK-NEXT:            }
-// CHECK-NEXT:           }, 
+// CHECK-NEXT:           },
 // CHECK-NEXT:           {
-// CHECK-NEXT:            "kind": "Capture", 
+// CHECK-NEXT:            "kind": "Capture",
 // CHECK-NEXT:            "var": {
-// CHECK-NEXT:             "id": "0x{{.*}}", 
-// CHECK-NEXT:             "kind": "ParmVarDecl", 
-// CHECK-NEXT:             "name": "x", 
+// CHECK-NEXT:             "id": "0x{{.*}}",
+// CHECK-NEXT:             "kind": "ParmVarDecl",
+// CHECK-NEXT:             "name": "x",
 // CHECK-NEXT:             "type": {
 // CHECK-NEXT:              "qualType": "int"
 // CHECK-NEXT:             }
 // CHECK-NEXT:            }
-// CHECK-NEXT:           }, 
+// CHECK-NEXT:           },
 // CHECK-NEXT:           {
-// CHECK-NEXT:            "id": "0x{{.*}}", 
-// CHECK-NEXT:            "kind": "CompoundStmt", 
+// CHECK-NEXT:            "id": "0x{{.*}}",
+// CHECK-NEXT:            "kind": "CompoundStmt",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
-// CHECK-NEXT:              "col": 16, 
+// CHECK-NEXT:              "offset": 1194,
+// CHECK-NEXT:              "col": 16,
 // CHECK-NEXT:              "tokLen": 1
-// CHECK-NEXT:             }, 
+// CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
-// CHECK-NEXT:              "col": 21, 
+// CHECK-NEXT:              "offset": 1199,
+// CHECK-NEXT:              "col": 21,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
-// CHECK-NEXT:            }, 
+// CHECK-NEXT:            },
 // CHECK-NEXT:            "inner": [
 // CHECK-NEXT:             {
-// CHECK-NEXT:              "id": "0x{{.*}}", 
-// CHECK-NEXT:              "kind": "ImplicitCastExpr", 
+// CHECK-NEXT:              "id": "0x{{.*}}",
+// CHECK-NEXT:              "kind": "ImplicitCastExpr",
 // CHECK-NEXT:              "range": {
 // CHECK-NEXT:               "begin": {
-// CHECK-NEXT:                "col": 18, 
+// CHECK-NEXT:                "offset": 1196,
+// CHECK-NEXT:                "col": 18,
 // CHECK-NEXT:                "tokLen": 1
-// CHECK-NEXT:               }, 
+// CHECK-NEXT:               },
 // CHECK-NEXT:               "end": {
-// CHECK-NEXT:                "col": 18, 
+// CHECK-NEXT:                "offset": 1196,
+// CHECK-NEXT:                "col": 18,
 // CHECK-NEXT:                "tokLen": 1
 // CHECK-NEXT:               }
-// CHECK-NEXT:              }, 
+// CHECK-NEXT:              },
 // CHECK-NEXT:              "type": {
 // CHECK-NEXT:               "qualType": "int"
-// CHECK-NEXT:              }, 
-// CHECK-NEXT:              "valueCategory": "rvalue", 
-// CHECK-NEXT:              "castKind": "LValueToRValue", 
+// CHECK-NEXT:              },
+// CHECK-NEXT:              "valueCategory": "rvalue",
+// CHECK-NEXT:              "castKind": "LValueToRValue",
 // CHECK-NEXT:              "inner": [
 // CHECK-NEXT:               {
-// CHECK-NEXT:                "id": "0x{{.*}}", 
-// CHECK-NEXT:                "kind": "DeclRefExpr", 
+// CHECK-NEXT:                "id": "0x{{.*}}",
+// CHECK-NEXT:                "kind": "DeclRefExpr",
 // CHECK-NEXT:                "range": {
 // CHECK-NEXT:                 "begin": {
-// CHECK-NEXT:                  "col": 18, 
+// CHECK-NEXT:                  "offset": 1196,
+// CHECK-NEXT:                  "col": 18,
 // CHECK-NEXT:                  "tokLen": 1
-// CHECK-NEXT:                 }, 
+// CHECK-NEXT:                 },
 // CHECK-NEXT:                 "end": {
-// CHECK-NEXT:                  "col": 18, 
+// CHECK-NEXT:                  "offset": 1196,
+// CHECK-NEXT:                  "col": 18,
 // CHECK-NEXT:                  "tokLen": 1
 // CHECK-NEXT:                 }
-// CHECK-NEXT:                }, 
+// CHECK-NEXT:                },
 // CHECK-NEXT:                "type": {
 // CHECK-NEXT:                 "qualType": "const int"
-// CHECK-NEXT:                }, 
-// CHECK-NEXT:                "valueCategory": "lvalue", 
+// CHECK-NEXT:                },
+// CHECK-NEXT:                "valueCategory": "lvalue",
 // CHECK-NEXT:                "referencedDecl": {
-// CHECK-NEXT:                 "id": "0x{{.*}}", 
-// CHECK-NEXT:                 "kind": "ParmVarDecl", 
-// CHECK-NEXT:                 "name": "x", 
+// CHECK-NEXT:                 "id": "0x{{.*}}",
+// CHECK-NEXT:                 "kind": "ParmVarDecl",
+// CHECK-NEXT:                 "name": "x",
 // CHECK-NEXT:                 "type": {
 // CHECK-NEXT:                  "qualType": "int"
 // CHECK-NEXT:                 }
@@ -1573,25 +1724,28 @@ void f() {
 // CHECK-NEXT:              ]
 // CHECK-NEXT:             }
 // CHECK-NEXT:            ]
-// CHECK-NEXT:           }, 
+// CHECK-NEXT:           },
 // CHECK-NEXT:           {
-// CHECK-NEXT:            "id": "0x{{.*}}", 
-// CHECK-NEXT:            "kind": "ParmVarDecl", 
+// CHECK-NEXT:            "id": "0x{{.*}}",
+// CHECK-NEXT:            "kind": "ParmVarDecl",
 // CHECK-NEXT:            "loc": {
-// CHECK-NEXT:             "col": 9, 
+// CHECK-NEXT:             "offset": 1187,
+// CHECK-NEXT:             "col": 9,
 // CHECK-NEXT:             "tokLen": 1
-// CHECK-NEXT:            }, 
+// CHECK-NEXT:            },
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
-// CHECK-NEXT:              "col": 5, 
+// CHECK-NEXT:              "offset": 1183,
+// CHECK-NEXT:              "col": 5,
 // CHECK-NEXT:              "tokLen": 3
-// CHECK-NEXT:             }, 
+// CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
-// CHECK-NEXT:              "col": 9, 
+// CHECK-NEXT:              "offset": 1187,
+// CHECK-NEXT:              "col": 9,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
-// CHECK-NEXT:            }, 
-// CHECK-NEXT:            "name": "y", 
+// CHECK-NEXT:            },
+// CHECK-NEXT:            "name": "y",
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "qualType": "int"
 // CHECK-NEXT:            }
@@ -1608,26 +1762,29 @@ void f() {
 // CHECK-NEXT: }
 
 
-// CHECK:  "kind": "VarDecl", 
+// CHECK:  "kind": "VarDecl",
 // CHECK-NEXT:  "loc": {
-// CHECK-NEXT:   "file": "{{.*}}", 
-// CHECK-NEXT:   "line": 83, 
-// CHECK-NEXT:   "col": 21, 
+// CHECK-NEXT:   "offset": 1268,
+// CHECK-NEXT:   "file": "{{.*}}",
+// CHECK-NEXT:   "line": 83,
+// CHECK-NEXT:   "col": 21,
 // CHECK-NEXT:   "tokLen": 4
-// CHECK-NEXT:  }, 
+// CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
-// CHECK-NEXT:    "col": 3, 
+// CHECK-NEXT:    "offset": 1250,
+// CHECK-NEXT:    "col": 3,
 // CHECK-NEXT:    "tokLen": 10
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
-// CHECK-NEXT:    "col": 21, 
+// CHECK-NEXT:    "offset": 1268,
+// CHECK-NEXT:    "col": 21,
 // CHECK-NEXT:    "tokLen": 4
 // CHECK-NEXT:   }
-// CHECK-NEXT:  }, 
-// CHECK-NEXT:  "name": "Test", 
+// CHECK-NEXT:  },
+// CHECK-NEXT:  "name": "Test",
 // CHECK-NEXT:  "type": {
-// CHECK-NEXT:   "desugaredQualType": "int", 
+// CHECK-NEXT:   "desugaredQualType": "int",
 // CHECK-NEXT:   "qualType": "typeof (B.foo)"
 // CHECK-NEXT:  }
 // CHECK-NEXT: }

Modified: cfe/trunk/test/AST/ast-dump-enum-json.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/AST/ast-dump-enum-json.cpp?rev=374921&r1=374920&r2=374921&view=diff
==============================================================================
--- cfe/trunk/test/AST/ast-dump-enum-json.cpp (original)
+++ cfe/trunk/test/AST/ast-dump-enum-json.cpp Tue Oct 15 10:30:19 2019
@@ -36,6 +36,7 @@ enum class I : int {
 
 // CHECK:  "kind": "EnumDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 88,
 // CHECK-NEXT:   "file": "{{.*}}",
 // CHECK-NEXT:   "line": 3,
 // CHECK-NEXT:   "col": 1,
@@ -43,10 +44,12 @@ enum class I : int {
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 88,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 4
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 108,
 // CHECK-NEXT:    "line": 6,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
@@ -57,16 +60,19 @@ enum class I : int {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "EnumConstantDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 97,
 // CHECK-NEXT:     "line": 4,
 // CHECK-NEXT:     "col": 3,
 // CHECK-NEXT:     "tokLen": 3
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 97,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 3
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 97,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 3
 // CHECK-NEXT:     }
@@ -80,16 +86,19 @@ enum class I : int {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "EnumConstantDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 104,
 // CHECK-NEXT:     "line": 5,
 // CHECK-NEXT:     "col": 3,
 // CHECK-NEXT:     "tokLen": 3
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 104,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 3
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 104,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 3
 // CHECK-NEXT:     }
@@ -105,16 +114,19 @@ enum class I : int {
 
 // CHECK:  "kind": "EnumDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 117,
 // CHECK-NEXT:   "line": 8,
 // CHECK-NEXT:   "col": 6,
 // CHECK-NEXT:   "tokLen": 1
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 112,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 4
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 137,
 // CHECK-NEXT:    "line": 11,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
@@ -126,16 +138,19 @@ enum class I : int {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "EnumConstantDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 123,
 // CHECK-NEXT:     "line": 9,
 // CHECK-NEXT:     "col": 3,
 // CHECK-NEXT:     "tokLen": 5
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 123,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 5
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 123,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 5
 // CHECK-NEXT:     }
@@ -149,16 +164,19 @@ enum class I : int {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "EnumConstantDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 132,
 // CHECK-NEXT:     "line": 10,
 // CHECK-NEXT:     "col": 3,
 // CHECK-NEXT:     "tokLen": 4
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 132,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 4
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 132,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 4
 // CHECK-NEXT:     }
@@ -174,16 +192,19 @@ enum class I : int {
 
 // CHECK:  "kind": "EnumDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 146,
 // CHECK-NEXT:   "line": 13,
 // CHECK-NEXT:   "col": 6,
 // CHECK-NEXT:   "tokLen": 1
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 141,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 4
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 172,
 // CHECK-NEXT:    "line": 16,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
@@ -198,16 +219,19 @@ enum class I : int {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "EnumConstantDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 160,
 // CHECK-NEXT:     "line": 14,
 // CHECK-NEXT:     "col": 3,
 // CHECK-NEXT:     "tokLen": 4
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 160,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 4
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 160,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 4
 // CHECK-NEXT:     }
@@ -221,16 +245,19 @@ enum class I : int {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "EnumConstantDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 168,
 // CHECK-NEXT:     "line": 15,
 // CHECK-NEXT:     "col": 3,
 // CHECK-NEXT:     "tokLen": 3
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 168,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 3
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 168,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 3
 // CHECK-NEXT:     }
@@ -246,16 +273,19 @@ enum class I : int {
 
 // CHECK:  "kind": "EnumDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 188,
 // CHECK-NEXT:   "line": 18,
 // CHECK-NEXT:   "col": 13,
 // CHECK-NEXT:   "tokLen": 1
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 176,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 4
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 209,
 // CHECK-NEXT:    "line": 21,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
@@ -271,16 +301,19 @@ enum class I : int {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "EnumConstantDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 194,
 // CHECK-NEXT:     "line": 19,
 // CHECK-NEXT:     "col": 3,
 // CHECK-NEXT:     "tokLen": 5
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 194,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 5
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 194,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 5
 // CHECK-NEXT:     }
@@ -294,16 +327,19 @@ enum class I : int {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "EnumConstantDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 203,
 // CHECK-NEXT:     "line": 20,
 // CHECK-NEXT:     "col": 3,
 // CHECK-NEXT:     "tokLen": 5
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 203,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 5
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 203,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 5
 // CHECK-NEXT:     }
@@ -319,16 +355,19 @@ enum class I : int {
 
 // CHECK:  "kind": "EnumDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 224,
 // CHECK-NEXT:   "line": 23,
 // CHECK-NEXT:   "col": 12,
 // CHECK-NEXT:   "tokLen": 1
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 213,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 4
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 242,
 // CHECK-NEXT:    "line": 26,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
@@ -344,16 +383,19 @@ enum class I : int {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "EnumConstantDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 230,
 // CHECK-NEXT:     "line": 24,
 // CHECK-NEXT:     "col": 3,
 // CHECK-NEXT:     "tokLen": 4
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 230,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 4
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 230,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 4
 // CHECK-NEXT:     }
@@ -367,16 +409,19 @@ enum class I : int {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "EnumConstantDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 238,
 // CHECK-NEXT:     "line": 25,
 // CHECK-NEXT:     "col": 3,
 // CHECK-NEXT:     "tokLen": 3
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 238,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 3
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 238,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 3
 // CHECK-NEXT:     }
@@ -392,16 +437,19 @@ enum class I : int {
 
 // CHECK:  "kind": "EnumDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 257,
 // CHECK-NEXT:   "line": 28,
 // CHECK-NEXT:   "col": 12,
 // CHECK-NEXT:   "tokLen": 1
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 246,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 4
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 286,
 // CHECK-NEXT:    "line": 31,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
@@ -417,16 +465,19 @@ enum class I : int {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "EnumConstantDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 269,
 // CHECK-NEXT:     "line": 29,
 // CHECK-NEXT:     "col": 3,
 // CHECK-NEXT:     "tokLen": 6
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 269,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 6
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 269,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 6
 // CHECK-NEXT:     }
@@ -440,16 +491,19 @@ enum class I : int {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "EnumConstantDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 279,
 // CHECK-NEXT:     "line": 30,
 // CHECK-NEXT:     "col": 3,
 // CHECK-NEXT:     "tokLen": 6
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 279,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 6
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 279,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 6
 // CHECK-NEXT:     }

Modified: cfe/trunk/test/AST/ast-dump-expr-json.c
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/AST/ast-dump-expr-json.c?rev=374921&r1=374920&r2=374921&view=diff
==============================================================================
--- cfe/trunk/test/AST/ast-dump-expr-json.c (original)
+++ cfe/trunk/test/AST/ast-dump-expr-json.c Tue Oct 15 10:30:19 2019
@@ -112,6 +112,7 @@ void PrimaryExpressions(int a) {
 
 // CHECK:  "kind": "FunctionDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 120,
 // CHECK-NEXT:   "file": "{{.*}}",
 // CHECK-NEXT:   "line": 3,
 // CHECK-NEXT:   "col": 6,
@@ -119,10 +120,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 115,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 4
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 147,
 // CHECK-NEXT:    "line": 5,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
@@ -138,11 +141,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:    "kind": "CompoundStmt",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 132,
 // CHECK-NEXT:      "line": 3,
 // CHECK-NEXT:      "col": 18,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 147,
 // CHECK-NEXT:      "line": 5,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 1
@@ -154,11 +159,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "kind": "BinaryOperator",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 137,
 // CHECK-NEXT:        "line": 4,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 143,
 // CHECK-NEXT:        "col": 9,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -174,10 +181,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "BinaryOperator",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 137,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 140,
 // CHECK-NEXT:          "col": 6,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -193,10 +202,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "IntegerLiteral",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 137,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 137,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -212,10 +223,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "IntegerLiteral",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 140,
 // CHECK-NEXT:            "col": 6,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 140,
 // CHECK-NEXT:            "col": 6,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -233,10 +246,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "IntegerLiteral",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 143,
 // CHECK-NEXT:          "col": 9,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 143,
 // CHECK-NEXT:          "col": 9,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -257,16 +272,19 @@ void PrimaryExpressions(int a) {
 
 // CHECK:  "kind": "FunctionDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 157,
 // CHECK-NEXT:   "line": 7,
 // CHECK-NEXT:   "col": 6,
 // CHECK-NEXT:   "tokLen": 10
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 152,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 4
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 200,
 // CHECK-NEXT:    "line": 10,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
@@ -281,16 +299,19 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "ParmVarDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 172,
 // CHECK-NEXT:     "line": 7,
 // CHECK-NEXT:     "col": 21,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 168,
 // CHECK-NEXT:      "col": 17,
 // CHECK-NEXT:      "tokLen": 3
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 172,
 // CHECK-NEXT:      "col": 21,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -306,10 +327,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:    "kind": "CompoundStmt",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 175,
 // CHECK-NEXT:      "col": 24,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 200,
 // CHECK-NEXT:      "line": 10,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 1
@@ -321,11 +344,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "kind": "BinaryOperator",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 180,
 // CHECK-NEXT:        "line": 8,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 184,
 // CHECK-NEXT:        "col": 7,
 // CHECK-NEXT:        "tokLen": 2
 // CHECK-NEXT:       }
@@ -341,10 +366,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "DeclRefExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 180,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 180,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -367,10 +394,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "IntegerLiteral",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 184,
 // CHECK-NEXT:          "col": 7,
 // CHECK-NEXT:          "tokLen": 2
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 184,
 // CHECK-NEXT:          "col": 7,
 // CHECK-NEXT:          "tokLen": 2
 // CHECK-NEXT:         }
@@ -388,11 +417,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "kind": "CompoundAssignOperator",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 191,
 // CHECK-NEXT:        "line": 9,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 196,
 // CHECK-NEXT:        "col": 8,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -414,10 +445,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "DeclRefExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 191,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 191,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -440,10 +473,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 196,
 // CHECK-NEXT:          "col": 8,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 196,
 // CHECK-NEXT:          "col": 8,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -459,10 +494,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 196,
 // CHECK-NEXT:            "col": 8,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 196,
 // CHECK-NEXT:            "col": 8,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -492,16 +529,19 @@ void PrimaryExpressions(int a) {
 
 // CHECK:  "kind": "FunctionDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 210,
 // CHECK-NEXT:   "line": 12,
 // CHECK-NEXT:   "col": 6,
 // CHECK-NEXT:   "tokLen": 12
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 205,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 4
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 258,
 // CHECK-NEXT:    "line": 15,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
@@ -516,16 +556,19 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "ParmVarDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 227,
 // CHECK-NEXT:     "line": 12,
 // CHECK-NEXT:     "col": 23,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 223,
 // CHECK-NEXT:      "col": 19,
 // CHECK-NEXT:      "tokLen": 3
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 227,
 // CHECK-NEXT:      "col": 23,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -541,10 +584,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:    "kind": "CompoundStmt",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 230,
 // CHECK-NEXT:      "col": 26,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 258,
 // CHECK-NEXT:      "line": 15,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 1
@@ -556,11 +601,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "kind": "ConditionalOperator",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 235,
 // CHECK-NEXT:        "line": 13,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 243,
 // CHECK-NEXT:        "col": 11,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -575,10 +622,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 235,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 235,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -594,10 +643,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 235,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 235,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -622,10 +673,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "IntegerLiteral",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 239,
 // CHECK-NEXT:          "col": 7,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 239,
 // CHECK-NEXT:          "col": 7,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -641,10 +694,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "IntegerLiteral",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 243,
 // CHECK-NEXT:          "col": 11,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 243,
 // CHECK-NEXT:          "col": 11,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -662,11 +717,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "kind": "BinaryConditionalOperator",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 249,
 // CHECK-NEXT:        "line": 14,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 254,
 // CHECK-NEXT:        "col": 8,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -681,10 +738,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 249,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 249,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -700,10 +759,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 249,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 249,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -728,10 +789,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "OpaqueValueExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 249,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 249,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -746,10 +809,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "ImplicitCastExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 249,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 249,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -765,10 +830,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:            "kind": "DeclRefExpr",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 249,
 // CHECK-NEXT:              "col": 3,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 249,
 // CHECK-NEXT:              "col": 3,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -795,10 +862,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "OpaqueValueExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 249,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 249,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -813,10 +882,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "ImplicitCastExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 249,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 249,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -832,10 +903,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:            "kind": "DeclRefExpr",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 249,
 // CHECK-NEXT:              "col": 3,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 249,
 // CHECK-NEXT:              "col": 3,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -862,10 +935,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "IntegerLiteral",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 254,
 // CHECK-NEXT:          "col": 8,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 254,
 // CHECK-NEXT:          "col": 8,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -886,16 +961,19 @@ void PrimaryExpressions(int a) {
 
 // CHECK:  "kind": "FunctionDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 268,
 // CHECK-NEXT:   "line": 17,
 // CHECK-NEXT:   "col": 6,
 // CHECK-NEXT:   "tokLen": 15
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 263,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 4
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 686,
 // CHECK-NEXT:    "line": 49,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
@@ -910,16 +988,19 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "ParmVarDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 288,
 // CHECK-NEXT:     "line": 17,
 // CHECK-NEXT:     "col": 26,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 284,
 // CHECK-NEXT:      "col": 22,
 // CHECK-NEXT:      "tokLen": 3
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 288,
 // CHECK-NEXT:      "col": 26,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -934,15 +1015,18 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "ParmVarDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 295,
 // CHECK-NEXT:     "col": 33,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 291,
 // CHECK-NEXT:      "col": 29,
 // CHECK-NEXT:      "tokLen": 3
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 295,
 // CHECK-NEXT:      "col": 33,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -958,10 +1042,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:    "kind": "CompoundStmt",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 298,
 // CHECK-NEXT:      "col": 36,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 686,
 // CHECK-NEXT:      "line": 49,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 1
@@ -973,11 +1059,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "kind": "BinaryOperator",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 327,
 // CHECK-NEXT:        "line": 19,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 332,
 // CHECK-NEXT:        "col": 8,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -993,10 +1081,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 327,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 327,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -1012,10 +1102,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 327,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 327,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -1040,10 +1132,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 332,
 // CHECK-NEXT:          "col": 8,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 332,
 // CHECK-NEXT:          "col": 8,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -1059,10 +1153,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 332,
 // CHECK-NEXT:            "col": 8,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 332,
 // CHECK-NEXT:            "col": 8,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -1089,11 +1185,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "kind": "BinaryOperator",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 338,
 // CHECK-NEXT:        "line": 20,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 343,
 // CHECK-NEXT:        "col": 8,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -1109,10 +1207,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 338,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 338,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -1128,10 +1228,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 338,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 338,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -1156,10 +1258,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 343,
 // CHECK-NEXT:          "col": 8,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 343,
 // CHECK-NEXT:          "col": 8,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -1175,10 +1279,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 343,
 // CHECK-NEXT:            "col": 8,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 343,
 // CHECK-NEXT:            "col": 8,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -1205,11 +1311,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "kind": "BinaryOperator",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 375,
 // CHECK-NEXT:        "line": 23,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 379,
 // CHECK-NEXT:        "col": 7,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -1225,10 +1333,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 375,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 375,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -1244,10 +1354,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 375,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 375,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -1272,10 +1384,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 379,
 // CHECK-NEXT:          "col": 7,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 379,
 // CHECK-NEXT:          "col": 7,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -1291,10 +1405,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 379,
 // CHECK-NEXT:            "col": 7,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 379,
 // CHECK-NEXT:            "col": 7,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -1321,11 +1437,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "kind": "BinaryOperator",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 385,
 // CHECK-NEXT:        "line": 24,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 389,
 // CHECK-NEXT:        "col": 7,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -1341,10 +1459,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 385,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 385,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -1360,10 +1480,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 385,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 385,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -1388,10 +1510,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 389,
 // CHECK-NEXT:          "col": 7,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 389,
 // CHECK-NEXT:          "col": 7,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -1407,10 +1531,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 389,
 // CHECK-NEXT:            "col": 7,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 389,
 // CHECK-NEXT:            "col": 7,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -1437,11 +1563,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "kind": "BinaryOperator",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 395,
 // CHECK-NEXT:        "line": 25,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 399,
 // CHECK-NEXT:        "col": 7,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -1457,10 +1585,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 395,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 395,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -1476,10 +1606,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 395,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 395,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -1504,10 +1636,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 399,
 // CHECK-NEXT:          "col": 7,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 399,
 // CHECK-NEXT:          "col": 7,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -1523,10 +1657,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 399,
 // CHECK-NEXT:            "col": 7,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 399,
 // CHECK-NEXT:            "col": 7,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -1553,11 +1689,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "kind": "BinaryOperator",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 432,
 // CHECK-NEXT:        "line": 28,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 437,
 // CHECK-NEXT:        "col": 8,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -1573,10 +1711,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 432,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 432,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -1592,10 +1732,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 432,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 432,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -1620,10 +1762,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 437,
 // CHECK-NEXT:          "col": 8,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 437,
 // CHECK-NEXT:          "col": 8,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -1639,10 +1783,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 437,
 // CHECK-NEXT:            "col": 8,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 437,
 // CHECK-NEXT:            "col": 8,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -1669,11 +1815,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "kind": "BinaryOperator",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 443,
 // CHECK-NEXT:        "line": 29,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 448,
 // CHECK-NEXT:        "col": 8,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -1689,10 +1837,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 443,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 443,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -1708,10 +1858,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 443,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 443,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -1736,10 +1888,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 448,
 // CHECK-NEXT:          "col": 8,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 448,
 // CHECK-NEXT:          "col": 8,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -1755,10 +1909,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 448,
 // CHECK-NEXT:            "col": 8,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 448,
 // CHECK-NEXT:            "col": 8,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -1785,11 +1941,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "kind": "BinaryOperator",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 483,
 // CHECK-NEXT:        "line": 32,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 487,
 // CHECK-NEXT:        "col": 7,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -1805,10 +1963,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 483,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 483,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -1824,10 +1984,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 483,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 483,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -1852,10 +2014,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 487,
 // CHECK-NEXT:          "col": 7,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 487,
 // CHECK-NEXT:          "col": 7,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -1871,10 +2035,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 487,
 // CHECK-NEXT:            "col": 7,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 487,
 // CHECK-NEXT:            "col": 7,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -1901,11 +2067,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "kind": "BinaryOperator",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 493,
 // CHECK-NEXT:        "line": 33,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 497,
 // CHECK-NEXT:        "col": 7,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -1921,10 +2089,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 493,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 493,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -1940,10 +2110,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 493,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 493,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -1968,10 +2140,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 497,
 // CHECK-NEXT:          "col": 7,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 497,
 // CHECK-NEXT:          "col": 7,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -1987,10 +2161,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 497,
 // CHECK-NEXT:            "col": 7,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 497,
 // CHECK-NEXT:            "col": 7,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -2017,11 +2193,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "kind": "BinaryOperator",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 503,
 // CHECK-NEXT:        "line": 34,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 508,
 // CHECK-NEXT:        "col": 8,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -2037,10 +2215,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 503,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 503,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -2056,10 +2236,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 503,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 503,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -2084,10 +2266,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 508,
 // CHECK-NEXT:          "col": 8,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 508,
 // CHECK-NEXT:          "col": 8,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -2103,10 +2287,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 508,
 // CHECK-NEXT:            "col": 8,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 508,
 // CHECK-NEXT:            "col": 8,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -2133,11 +2319,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "kind": "BinaryOperator",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 514,
 // CHECK-NEXT:        "line": 35,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 519,
 // CHECK-NEXT:        "col": 8,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -2153,10 +2341,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 514,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 514,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -2172,10 +2362,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 514,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 514,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -2200,10 +2392,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 519,
 // CHECK-NEXT:          "col": 8,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 519,
 // CHECK-NEXT:          "col": 8,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -2219,10 +2413,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 519,
 // CHECK-NEXT:            "col": 8,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 519,
 // CHECK-NEXT:            "col": 8,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -2249,11 +2445,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "kind": "BinaryOperator",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 556,
 // CHECK-NEXT:        "line": 38,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 561,
 // CHECK-NEXT:        "col": 8,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -2269,10 +2467,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 556,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 556,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -2288,10 +2488,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 556,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 556,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -2316,10 +2518,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 561,
 // CHECK-NEXT:          "col": 8,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 561,
 // CHECK-NEXT:          "col": 8,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -2335,10 +2539,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 561,
 // CHECK-NEXT:            "col": 8,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 561,
 // CHECK-NEXT:            "col": 8,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -2365,11 +2571,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "kind": "BinaryOperator",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 567,
 // CHECK-NEXT:        "line": 39,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 572,
 // CHECK-NEXT:        "col": 8,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -2385,10 +2593,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 567,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 567,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -2404,10 +2614,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 567,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 567,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -2432,10 +2644,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 572,
 // CHECK-NEXT:          "col": 8,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 572,
 // CHECK-NEXT:          "col": 8,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -2451,10 +2665,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 572,
 // CHECK-NEXT:            "col": 8,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 572,
 // CHECK-NEXT:            "col": 8,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -2481,11 +2697,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "kind": "BinaryOperator",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 605,
 // CHECK-NEXT:        "line": 42,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 609,
 // CHECK-NEXT:        "col": 7,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -2501,10 +2719,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 605,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 605,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -2520,10 +2740,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 605,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 605,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -2548,10 +2770,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 609,
 // CHECK-NEXT:          "col": 7,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 609,
 // CHECK-NEXT:          "col": 7,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -2567,10 +2791,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 609,
 // CHECK-NEXT:            "col": 7,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 609,
 // CHECK-NEXT:            "col": 7,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -2597,11 +2823,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "kind": "BinaryOperator",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 615,
 // CHECK-NEXT:        "line": 43,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 619,
 // CHECK-NEXT:        "col": 7,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -2617,10 +2845,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 615,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 615,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -2636,10 +2866,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 615,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 615,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -2664,10 +2896,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 619,
 // CHECK-NEXT:          "col": 7,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 619,
 // CHECK-NEXT:          "col": 7,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -2683,10 +2917,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 619,
 // CHECK-NEXT:            "col": 7,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 619,
 // CHECK-NEXT:            "col": 7,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -2713,11 +2949,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "kind": "BinaryOperator",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 658,
 // CHECK-NEXT:        "line": 46,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 662,
 // CHECK-NEXT:        "col": 7,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -2733,10 +2971,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 658,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 658,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -2752,10 +2992,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 658,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 658,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -2780,10 +3022,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 662,
 // CHECK-NEXT:          "col": 7,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 662,
 // CHECK-NEXT:          "col": 7,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -2799,10 +3043,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 662,
 // CHECK-NEXT:            "col": 7,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 662,
 // CHECK-NEXT:            "col": 7,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -2829,11 +3075,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "kind": "BinaryOperator",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 668,
 // CHECK-NEXT:        "line": 47,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 672,
 // CHECK-NEXT:        "col": 7,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -2849,10 +3097,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 668,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 668,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -2868,10 +3118,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 668,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 668,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -2896,10 +3148,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 672,
 // CHECK-NEXT:          "col": 7,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 672,
 // CHECK-NEXT:          "col": 7,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -2915,10 +3169,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 672,
 // CHECK-NEXT:            "col": 7,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 672,
 // CHECK-NEXT:            "col": 7,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -2945,11 +3201,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "kind": "BinaryOperator",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 678,
 // CHECK-NEXT:        "line": 48,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 682,
 // CHECK-NEXT:        "col": 7,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -2965,10 +3223,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 678,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 678,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -2984,10 +3244,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 678,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 678,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -3012,10 +3274,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 682,
 // CHECK-NEXT:          "col": 7,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 682,
 // CHECK-NEXT:          "col": 7,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -3031,10 +3295,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 682,
 // CHECK-NEXT:            "col": 7,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 682,
 // CHECK-NEXT:            "col": 7,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -3064,16 +3330,19 @@ void PrimaryExpressions(int a) {
 
 // CHECK:  "kind": "FunctionDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 696,
 // CHECK-NEXT:   "line": 51,
 // CHECK-NEXT:   "col": 6,
 // CHECK-NEXT:   "tokLen": 14
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 691,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 4
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 894,
 // CHECK-NEXT:    "line": 66,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
@@ -3089,16 +3358,19 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "ParmVarDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 715,
 // CHECK-NEXT:     "line": 51,
 // CHECK-NEXT:     "col": 25,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 711,
 // CHECK-NEXT:      "col": 21,
 // CHECK-NEXT:      "tokLen": 3
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 715,
 // CHECK-NEXT:      "col": 25,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -3113,15 +3385,18 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "ParmVarDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 723,
 // CHECK-NEXT:     "col": 33,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 718,
 // CHECK-NEXT:      "col": 28,
 // CHECK-NEXT:      "tokLen": 3
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 723,
 // CHECK-NEXT:      "col": 33,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -3137,10 +3412,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:    "kind": "CompoundStmt",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 726,
 // CHECK-NEXT:      "col": 36,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 894,
 // CHECK-NEXT:      "line": 66,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 1
@@ -3152,11 +3429,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "kind": "CStyleCastExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 752,
 // CHECK-NEXT:        "line": 53,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 759,
 // CHECK-NEXT:        "col": 10,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -3172,10 +3451,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 759,
 // CHECK-NEXT:          "col": 10,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 759,
 // CHECK-NEXT:          "col": 10,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -3192,10 +3473,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 759,
 // CHECK-NEXT:            "col": 10,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 759,
 // CHECK-NEXT:            "col": 10,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -3222,11 +3505,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "kind": "UnaryOperator",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 812,
 // CHECK-NEXT:        "line": 57,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 813,
 // CHECK-NEXT:        "col": 4,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -3243,10 +3528,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 813,
 // CHECK-NEXT:          "col": 4,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 813,
 // CHECK-NEXT:          "col": 4,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -3262,10 +3549,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 813,
 // CHECK-NEXT:            "col": 4,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 813,
 // CHECK-NEXT:            "col": 4,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -3292,11 +3581,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "kind": "UnaryOperator",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 819,
 // CHECK-NEXT:        "line": 58,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 820,
 // CHECK-NEXT:        "col": 4,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -3314,10 +3605,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 820,
 // CHECK-NEXT:          "col": 4,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 820,
 // CHECK-NEXT:          "col": 4,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -3333,10 +3626,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 820,
 // CHECK-NEXT:            "col": 4,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 820,
 // CHECK-NEXT:            "col": 4,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -3363,11 +3658,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "kind": "UnaryOperator",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 826,
 // CHECK-NEXT:        "line": 59,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 827,
 // CHECK-NEXT:        "col": 4,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -3385,10 +3682,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "DeclRefExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 827,
 // CHECK-NEXT:          "col": 4,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 827,
 // CHECK-NEXT:          "col": 4,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -3413,11 +3712,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "kind": "ImplicitCastExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 833,
 // CHECK-NEXT:        "line": 60,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 834,
 // CHECK-NEXT:        "col": 4,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -3433,10 +3734,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "UnaryOperator",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 833,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 834,
 // CHECK-NEXT:          "col": 4,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -3454,10 +3757,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "ImplicitCastExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 834,
 // CHECK-NEXT:            "col": 4,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 834,
 // CHECK-NEXT:            "col": 4,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -3473,10 +3778,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:            "kind": "DeclRefExpr",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 834,
 // CHECK-NEXT:              "col": 4,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 834,
 // CHECK-NEXT:              "col": 4,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -3505,11 +3812,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "kind": "UnaryOperator",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 840,
 // CHECK-NEXT:        "line": 61,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 841,
 // CHECK-NEXT:        "col": 4,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -3527,10 +3836,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 841,
 // CHECK-NEXT:          "col": 4,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 841,
 // CHECK-NEXT:          "col": 4,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -3546,10 +3857,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 841,
 // CHECK-NEXT:            "col": 4,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 841,
 // CHECK-NEXT:            "col": 4,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -3576,11 +3889,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "kind": "UnaryExprOrTypeTraitExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 849,
 // CHECK-NEXT:        "line": 63,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 6
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 856,
 // CHECK-NEXT:        "col": 10,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -3596,10 +3911,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "DeclRefExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 856,
 // CHECK-NEXT:          "col": 10,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 856,
 // CHECK-NEXT:          "col": 10,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -3625,11 +3942,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "kind": "UnaryExprOrTypeTraitExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 862,
 // CHECK-NEXT:        "line": 64,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 6
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 872,
 // CHECK-NEXT:        "col": 13,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -3648,11 +3967,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "kind": "UnaryExprOrTypeTraitExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 878,
 // CHECK-NEXT:        "line": 65,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 8
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 890,
 // CHECK-NEXT:        "col": 15,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -3674,16 +3995,19 @@ void PrimaryExpressions(int a) {
 
 // CHECK:  "kind": "FunctionDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 932,
 // CHECK-NEXT:   "line": 72,
 // CHECK-NEXT:   "col": 6,
 // CHECK-NEXT:   "tokLen": 16
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 927,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 4
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 1136,
 // CHECK-NEXT:    "line": 83,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
@@ -3698,16 +4022,19 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "ParmVarDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 954,
 // CHECK-NEXT:     "line": 72,
 // CHECK-NEXT:     "col": 28,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 949,
 // CHECK-NEXT:      "col": 23,
 // CHECK-NEXT:      "tokLen": 3
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 954,
 // CHECK-NEXT:      "col": 28,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -3722,15 +4049,18 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "ParmVarDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 966,
 // CHECK-NEXT:     "col": 40,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 957,
 // CHECK-NEXT:      "col": 31,
 // CHECK-NEXT:      "tokLen": 6
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 966,
 // CHECK-NEXT:      "col": 40,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -3746,15 +4076,18 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "ParmVarDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 979,
 // CHECK-NEXT:     "col": 53,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 969,
 // CHECK-NEXT:      "col": 43,
 // CHECK-NEXT:      "tokLen": 6
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 979,
 // CHECK-NEXT:      "col": 53,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -3770,10 +4103,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:    "kind": "CompoundStmt",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 982,
 // CHECK-NEXT:      "col": 56,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 1136,
 // CHECK-NEXT:      "line": 83,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 1
@@ -3785,11 +4120,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "kind": "ImplicitCastExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 987,
 // CHECK-NEXT:        "line": 73,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 990,
 // CHECK-NEXT:        "col": 6,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -3805,10 +4142,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "ArraySubscriptExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 987,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 990,
 // CHECK-NEXT:          "col": 6,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -3823,10 +4162,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "ImplicitCastExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 987,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 987,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -3842,10 +4183,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:            "kind": "DeclRefExpr",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 987,
 // CHECK-NEXT:              "col": 3,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 987,
 // CHECK-NEXT:              "col": 3,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -3870,10 +4213,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "IntegerLiteral",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 989,
 // CHECK-NEXT:            "col": 5,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 989,
 // CHECK-NEXT:            "col": 5,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -3893,11 +4238,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "kind": "CallExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 996,
 // CHECK-NEXT:        "line": 74,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 14
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1016,
 // CHECK-NEXT:        "col": 23,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -3912,10 +4259,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 996,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 14
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 996,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 14
 // CHECK-NEXT:         }
@@ -3931,10 +4280,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 996,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 14
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 996,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 14
 // CHECK-NEXT:           }
@@ -3959,10 +4310,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1011,
 // CHECK-NEXT:          "col": 18,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1012,
 // CHECK-NEXT:          "col": 19,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -3978,10 +4331,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "UnaryOperator",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 1011,
 // CHECK-NEXT:            "col": 18,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 1012,
 // CHECK-NEXT:            "col": 19,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -3999,10 +4354,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:            "kind": "ImplicitCastExpr",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 1012,
 // CHECK-NEXT:              "col": 19,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 1012,
 // CHECK-NEXT:              "col": 19,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -4018,10 +4375,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:              "kind": "DeclRefExpr",
 // CHECK-NEXT:              "range": {
 // CHECK-NEXT:               "begin": {
+// CHECK-NEXT:                "offset": 1012,
 // CHECK-NEXT:                "col": 19,
 // CHECK-NEXT:                "tokLen": 1
 // CHECK-NEXT:               },
 // CHECK-NEXT:               "end": {
+// CHECK-NEXT:                "offset": 1012,
 // CHECK-NEXT:                "col": 19,
 // CHECK-NEXT:                "tokLen": 1
 // CHECK-NEXT:               }
@@ -4050,10 +4409,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1015,
 // CHECK-NEXT:          "col": 22,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1015,
 // CHECK-NEXT:          "col": 22,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -4069,10 +4430,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 1015,
 // CHECK-NEXT:            "col": 22,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 1015,
 // CHECK-NEXT:            "col": 22,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -4099,11 +4462,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "kind": "ImplicitCastExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1024,
 // CHECK-NEXT:        "line": 76,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1026,
 // CHECK-NEXT:        "col": 5,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -4119,10 +4484,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "MemberExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1024,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1026,
 // CHECK-NEXT:          "col": 5,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -4140,10 +4507,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 1024,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 1024,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -4172,11 +4541,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "kind": "ImplicitCastExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1032,
 // CHECK-NEXT:        "line": 77,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1035,
 // CHECK-NEXT:        "col": 6,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -4192,10 +4563,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "MemberExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1032,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1035,
 // CHECK-NEXT:          "col": 6,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -4213,10 +4586,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "ImplicitCastExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 1032,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 1032,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -4232,10 +4607,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:            "kind": "DeclRefExpr",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 1032,
 // CHECK-NEXT:              "col": 3,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 1032,
 // CHECK-NEXT:              "col": 3,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -4264,11 +4641,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "kind": "ImplicitCastExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1092,
 // CHECK-NEXT:        "line": 81,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1114,
 // CHECK-NEXT:        "col": 25,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -4284,10 +4663,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "CompoundLiteralExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1092,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1114,
 // CHECK-NEXT:          "col": 25,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -4302,10 +4683,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "InitListExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 1101,
 // CHECK-NEXT:            "col": 12,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 1114,
 // CHECK-NEXT:            "col": 25,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -4320,10 +4703,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:            "kind": "IntegerLiteral",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 1102,
 // CHECK-NEXT:              "col": 13,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 1102,
 // CHECK-NEXT:              "col": 13,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -4339,10 +4724,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:            "kind": "IntegerLiteral",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 1105,
 // CHECK-NEXT:              "col": 16,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 1105,
 // CHECK-NEXT:              "col": 16,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -4358,10 +4745,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:            "kind": "IntegerLiteral",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 1108,
 // CHECK-NEXT:              "col": 19,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 1108,
 // CHECK-NEXT:              "col": 19,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -4377,10 +4766,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:            "kind": "IntegerLiteral",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 1111,
 // CHECK-NEXT:              "col": 22,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 1111,
 // CHECK-NEXT:              "col": 22,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -4402,11 +4793,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "kind": "ImplicitCastExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1120,
 // CHECK-NEXT:        "line": 82,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1132,
 // CHECK-NEXT:        "col": 15,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -4423,10 +4816,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "CompoundLiteralExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1120,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1132,
 // CHECK-NEXT:          "col": 15,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -4442,10 +4837,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "InitListExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 1130,
 // CHECK-NEXT:            "col": 13,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 1132,
 // CHECK-NEXT:            "col": 15,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -4461,10 +4858,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:            "kind": "IntegerLiteral",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 1131,
 // CHECK-NEXT:              "col": 14,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 1131,
 // CHECK-NEXT:              "col": 14,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -4489,16 +4888,19 @@ void PrimaryExpressions(int a) {
 
 // CHECK:  "kind": "FunctionDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 1165,
 // CHECK-NEXT:   "line": 87,
 // CHECK-NEXT:   "col": 6,
 // CHECK-NEXT:   "tokLen": 18
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 1160,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 4
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 1360,
 // CHECK-NEXT:    "line": 107,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
@@ -4513,16 +4915,19 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "ParmVarDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 1188,
 // CHECK-NEXT:     "line": 87,
 // CHECK-NEXT:     "col": 29,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 1184,
 // CHECK-NEXT:      "col": 25,
 // CHECK-NEXT:      "tokLen": 3
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 1188,
 // CHECK-NEXT:      "col": 29,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -4538,10 +4943,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:    "kind": "CompoundStmt",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 1191,
 // CHECK-NEXT:      "col": 32,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 1360,
 // CHECK-NEXT:      "line": 107,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 1
@@ -4553,11 +4960,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "kind": "ImplicitCastExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1196,
 // CHECK-NEXT:        "line": 88,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1196,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -4573,10 +4982,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "DeclRefExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1196,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1196,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -4601,11 +5012,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "kind": "CharacterLiteral",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1202,
 // CHECK-NEXT:        "line": 89,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 3
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1202,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 3
 // CHECK-NEXT:       }
@@ -4621,11 +5034,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "kind": "CharacterLiteral",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1210,
 // CHECK-NEXT:        "line": 90,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 4
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1210,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 4
 // CHECK-NEXT:       }
@@ -4641,11 +5056,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "kind": "ImplicitCastExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1219,
 // CHECK-NEXT:        "line": 91,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 3
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1219,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 3
 // CHECK-NEXT:       }
@@ -4661,10 +5078,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "StringLiteral",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1219,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 3
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1219,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 3
 // CHECK-NEXT:         }
@@ -4682,11 +5101,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "kind": "ImplicitCastExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1227,
 // CHECK-NEXT:        "line": 92,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 4
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1227,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 4
 // CHECK-NEXT:       }
@@ -4702,10 +5123,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "StringLiteral",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1227,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 4
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1227,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 4
 // CHECK-NEXT:         }
@@ -4723,11 +5146,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "kind": "ImplicitCastExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1236,
 // CHECK-NEXT:        "line": 93,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 5
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1236,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 5
 // CHECK-NEXT:       }
@@ -4743,10 +5168,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "StringLiteral",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1236,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 5
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1236,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 5
 // CHECK-NEXT:         }
@@ -4764,11 +5191,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "kind": "ImplicitCastExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1246,
 // CHECK-NEXT:        "line": 94,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 4
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1246,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 4
 // CHECK-NEXT:       }
@@ -4784,10 +5213,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "StringLiteral",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1246,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 4
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1246,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 4
 // CHECK-NEXT:         }
@@ -4805,11 +5236,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "kind": "ImplicitCastExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1255,
 // CHECK-NEXT:        "line": 95,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 4
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1255,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 4
 // CHECK-NEXT:       }
@@ -4825,10 +5258,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "StringLiteral",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1255,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 4
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1255,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 4
 // CHECK-NEXT:         }
@@ -4846,11 +5281,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "kind": "IntegerLiteral",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1266,
 // CHECK-NEXT:        "line": 97,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1266,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -4866,11 +5303,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "kind": "IntegerLiteral",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1272,
 // CHECK-NEXT:        "line": 98,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 2
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1272,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 2
 // CHECK-NEXT:       }
@@ -4886,11 +5325,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "kind": "IntegerLiteral",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1279,
 // CHECK-NEXT:        "line": 99,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 3
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1279,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 3
 // CHECK-NEXT:       }
@@ -4906,11 +5347,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "kind": "FloatingLiteral",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1287,
 // CHECK-NEXT:        "line": 100,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 3
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1287,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 3
 // CHECK-NEXT:       }
@@ -4926,11 +5369,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "kind": "FloatingLiteral",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1295,
 // CHECK-NEXT:        "line": 101,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 4
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1295,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 4
 // CHECK-NEXT:       }
@@ -4946,11 +5391,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "kind": "FloatingLiteral",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1304,
 // CHECK-NEXT:        "line": 102,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 26
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1304,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 26
 // CHECK-NEXT:       }
@@ -4966,11 +5413,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "kind": "FloatingLiteral",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1335,
 // CHECK-NEXT:        "line": 103,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 4
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1335,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 4
 // CHECK-NEXT:       }
@@ -4986,11 +5435,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "kind": "DeclRefExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1344,
 // CHECK-NEXT:        "line": 104,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 3
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1344,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 3
 // CHECK-NEXT:       }
@@ -5013,11 +5464,13 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:      "kind": "ImplicitCastExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1354,
 // CHECK-NEXT:        "line": 106,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1356,
 // CHECK-NEXT:        "col": 5,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -5033,10 +5486,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:        "kind": "ParenExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1354,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1356,
 // CHECK-NEXT:          "col": 5,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -5051,10 +5506,12 @@ void PrimaryExpressions(int a) {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 1355,
 // CHECK-NEXT:            "col": 4,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 1355,
 // CHECK-NEXT:            "col": 4,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }

Modified: cfe/trunk/test/AST/ast-dump-expr-json.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/AST/ast-dump-expr-json.cpp?rev=374921&r1=374920&r2=374921&view=diff
==============================================================================
--- cfe/trunk/test/AST/ast-dump-expr-json.cpp (original)
+++ cfe/trunk/test/AST/ast-dump-expr-json.cpp Tue Oct 15 10:30:19 2019
@@ -158,6 +158,7 @@ void TestNonADLCall3() {
 
 // CHECK:  "kind": "FunctionDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 952,
 // CHECK-NEXT:   "file": "{{.*}}",
 // CHECK-NEXT:   "line": 41,
 // CHECK-NEXT:   "col": 6,
@@ -165,10 +166,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 947,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 4
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 987,
 // CHECK-NEXT:    "line": 44,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
@@ -184,11 +187,13 @@ void TestNonADLCall3() {
 // CHECK-NEXT:    "kind": "CompoundStmt",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 964,
 // CHECK-NEXT:      "line": 41,
 // CHECK-NEXT:      "col": 18,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 987,
 // CHECK-NEXT:      "line": 44,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 1
@@ -200,11 +205,13 @@ void TestNonADLCall3() {
 // CHECK-NEXT:      "kind": "CXXThrowExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 968,
 // CHECK-NEXT:        "line": 42,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 5
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 974,
 // CHECK-NEXT:        "col": 9,
 // CHECK-NEXT:        "tokLen": 2
 // CHECK-NEXT:       }
@@ -219,10 +226,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "kind": "IntegerLiteral",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 974,
 // CHECK-NEXT:          "col": 9,
 // CHECK-NEXT:          "tokLen": 2
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 974,
 // CHECK-NEXT:          "col": 9,
 // CHECK-NEXT:          "tokLen": 2
 // CHECK-NEXT:         }
@@ -240,11 +249,13 @@ void TestNonADLCall3() {
 // CHECK-NEXT:      "kind": "CXXThrowExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 980,
 // CHECK-NEXT:        "line": 43,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 5
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 980,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 5
 // CHECK-NEXT:       }
@@ -262,6 +273,7 @@ void TestNonADLCall3() {
 
 // CHECK:  "kind": "FunctionDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 995,
 // CHECK-NEXT:   "file": "{{.*}}",
 // CHECK-NEXT:   "line": 46,
 // CHECK-NEXT:   "col": 6,
@@ -269,10 +281,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 990,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 4
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 1141,
 // CHECK-NEXT:    "line": 51,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
@@ -287,16 +301,19 @@ void TestNonADLCall3() {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "ParmVarDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 1017,
 // CHECK-NEXT:     "line": 46,
 // CHECK-NEXT:     "col": 28,
 // CHECK-NEXT:     "tokLen": 4
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 1015,
 // CHECK-NEXT:      "col": 26,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 1017,
 // CHECK-NEXT:      "col": 28,
 // CHECK-NEXT:      "tokLen": 4
 // CHECK-NEXT:     }
@@ -311,15 +328,18 @@ void TestNonADLCall3() {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "ParmVarDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 1026,
 // CHECK-NEXT:     "col": 37,
 // CHECK-NEXT:     "tokLen": 4
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 1023,
 // CHECK-NEXT:      "col": 34,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 1026,
 // CHECK-NEXT:      "col": 37,
 // CHECK-NEXT:      "tokLen": 4
 // CHECK-NEXT:     }
@@ -334,15 +354,18 @@ void TestNonADLCall3() {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "ParmVarDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 1041,
 // CHECK-NEXT:     "col": 52,
 // CHECK-NEXT:     "tokLen": 4
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 1032,
 // CHECK-NEXT:      "col": 43,
 // CHECK-NEXT:      "tokLen": 3
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 1041,
 // CHECK-NEXT:      "col": 52,
 // CHECK-NEXT:      "tokLen": 4
 // CHECK-NEXT:     }
@@ -357,15 +380,18 @@ void TestNonADLCall3() {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "ParmVarDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 1057,
 // CHECK-NEXT:     "col": 68,
 // CHECK-NEXT:     "tokLen": 4
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 1047,
 // CHECK-NEXT:      "col": 58,
 // CHECK-NEXT:      "tokLen": 4
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 1066,
 // CHECK-NEXT:      "col": 77,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -381,10 +407,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:    "kind": "CompoundStmt",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 1069,
 // CHECK-NEXT:      "col": 80,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 1141,
 // CHECK-NEXT:      "line": 51,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 1
@@ -396,11 +424,13 @@ void TestNonADLCall3() {
 // CHECK-NEXT:      "kind": "BinaryOperator",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1073,
 // CHECK-NEXT:        "line": 47,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 4
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1079,
 // CHECK-NEXT:        "col": 9,
 // CHECK-NEXT:        "tokLen": 4
 // CHECK-NEXT:       }
@@ -416,10 +446,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "kind": "DeclRefExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1073,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 4
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1073,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 4
 // CHECK-NEXT:         }
@@ -442,10 +474,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1079,
 // CHECK-NEXT:          "col": 9,
 // CHECK-NEXT:          "tokLen": 4
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1079,
 // CHECK-NEXT:          "col": 9,
 // CHECK-NEXT:          "tokLen": 4
 // CHECK-NEXT:         }
@@ -461,10 +495,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 1079,
 // CHECK-NEXT:            "col": 9,
 // CHECK-NEXT:            "tokLen": 4
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 1079,
 // CHECK-NEXT:            "col": 9,
 // CHECK-NEXT:            "tokLen": 4
 // CHECK-NEXT:           }
@@ -491,11 +527,13 @@ void TestNonADLCall3() {
 // CHECK-NEXT:      "kind": "BinaryOperator",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1087,
 // CHECK-NEXT:        "line": 48,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 4
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1094,
 // CHECK-NEXT:        "col": 10,
 // CHECK-NEXT:        "tokLen": 4
 // CHECK-NEXT:       }
@@ -511,10 +549,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1087,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 4
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1087,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 4
 // CHECK-NEXT:         }
@@ -530,10 +570,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 1087,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 4
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 1087,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 4
 // CHECK-NEXT:           }
@@ -558,10 +600,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1094,
 // CHECK-NEXT:          "col": 10,
 // CHECK-NEXT:          "tokLen": 4
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1094,
 // CHECK-NEXT:          "col": 10,
 // CHECK-NEXT:          "tokLen": 4
 // CHECK-NEXT:         }
@@ -577,10 +621,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 1094,
 // CHECK-NEXT:            "col": 10,
 // CHECK-NEXT:            "tokLen": 4
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 1094,
 // CHECK-NEXT:            "col": 10,
 // CHECK-NEXT:            "tokLen": 4
 // CHECK-NEXT:           }
@@ -607,11 +653,13 @@ void TestNonADLCall3() {
 // CHECK-NEXT:      "kind": "CXXMemberCallExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1102,
 // CHECK-NEXT:        "line": 49,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1117,
 // CHECK-NEXT:        "col": 18,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -626,10 +674,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "kind": "ParenExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1102,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1113,
 // CHECK-NEXT:          "col": 14,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -644,10 +694,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:          "kind": "BinaryOperator",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 1103,
 // CHECK-NEXT:            "col": 4,
 // CHECK-NEXT:            "tokLen": 4
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 1109,
 // CHECK-NEXT:            "col": 10,
 // CHECK-NEXT:            "tokLen": 4
 // CHECK-NEXT:           }
@@ -663,10 +715,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:            "kind": "DeclRefExpr",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 1103,
 // CHECK-NEXT:              "col": 4,
 // CHECK-NEXT:              "tokLen": 4
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 1103,
 // CHECK-NEXT:              "col": 4,
 // CHECK-NEXT:              "tokLen": 4
 // CHECK-NEXT:             }
@@ -689,10 +743,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:            "kind": "ImplicitCastExpr",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 1109,
 // CHECK-NEXT:              "col": 10,
 // CHECK-NEXT:              "tokLen": 4
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 1109,
 // CHECK-NEXT:              "col": 10,
 // CHECK-NEXT:              "tokLen": 4
 // CHECK-NEXT:             }
@@ -708,10 +764,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:              "kind": "DeclRefExpr",
 // CHECK-NEXT:              "range": {
 // CHECK-NEXT:               "begin": {
+// CHECK-NEXT:                "offset": 1109,
 // CHECK-NEXT:                "col": 10,
 // CHECK-NEXT:                "tokLen": 4
 // CHECK-NEXT:               },
 // CHECK-NEXT:               "end": {
+// CHECK-NEXT:                "offset": 1109,
 // CHECK-NEXT:                "col": 10,
 // CHECK-NEXT:                "tokLen": 4
 // CHECK-NEXT:               }
@@ -740,10 +798,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "kind": "IntegerLiteral",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1115,
 // CHECK-NEXT:          "col": 16,
 // CHECK-NEXT:          "tokLen": 2
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1115,
 // CHECK-NEXT:          "col": 16,
 // CHECK-NEXT:          "tokLen": 2
 // CHECK-NEXT:         }
@@ -761,11 +821,13 @@ void TestNonADLCall3() {
 // CHECK-NEXT:      "kind": "CXXMemberCallExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1122,
 // CHECK-NEXT:        "line": 50,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1138,
 // CHECK-NEXT:        "col": 19,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -780,10 +842,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "kind": "ParenExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1122,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1134,
 // CHECK-NEXT:          "col": 15,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -798,10 +862,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:          "kind": "BinaryOperator",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 1123,
 // CHECK-NEXT:            "col": 4,
 // CHECK-NEXT:            "tokLen": 4
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 1130,
 // CHECK-NEXT:            "col": 11,
 // CHECK-NEXT:            "tokLen": 4
 // CHECK-NEXT:           }
@@ -817,10 +883,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:            "kind": "ImplicitCastExpr",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 1123,
 // CHECK-NEXT:              "col": 4,
 // CHECK-NEXT:              "tokLen": 4
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 1123,
 // CHECK-NEXT:              "col": 4,
 // CHECK-NEXT:              "tokLen": 4
 // CHECK-NEXT:             }
@@ -836,10 +904,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:              "kind": "DeclRefExpr",
 // CHECK-NEXT:              "range": {
 // CHECK-NEXT:               "begin": {
+// CHECK-NEXT:                "offset": 1123,
 // CHECK-NEXT:                "col": 4,
 // CHECK-NEXT:                "tokLen": 4
 // CHECK-NEXT:               },
 // CHECK-NEXT:               "end": {
+// CHECK-NEXT:                "offset": 1123,
 // CHECK-NEXT:                "col": 4,
 // CHECK-NEXT:                "tokLen": 4
 // CHECK-NEXT:               }
@@ -864,10 +934,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:            "kind": "ImplicitCastExpr",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 1130,
 // CHECK-NEXT:              "col": 11,
 // CHECK-NEXT:              "tokLen": 4
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 1130,
 // CHECK-NEXT:              "col": 11,
 // CHECK-NEXT:              "tokLen": 4
 // CHECK-NEXT:             }
@@ -883,10 +955,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:              "kind": "DeclRefExpr",
 // CHECK-NEXT:              "range": {
 // CHECK-NEXT:               "begin": {
+// CHECK-NEXT:                "offset": 1130,
 // CHECK-NEXT:                "col": 11,
 // CHECK-NEXT:                "tokLen": 4
 // CHECK-NEXT:               },
 // CHECK-NEXT:               "end": {
+// CHECK-NEXT:                "offset": 1130,
 // CHECK-NEXT:                "col": 11,
 // CHECK-NEXT:                "tokLen": 4
 // CHECK-NEXT:               }
@@ -915,10 +989,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "kind": "IntegerLiteral",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1136,
 // CHECK-NEXT:          "col": 17,
 // CHECK-NEXT:          "tokLen": 2
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1136,
 // CHECK-NEXT:          "col": 17,
 // CHECK-NEXT:          "tokLen": 2
 // CHECK-NEXT:         }
@@ -939,6 +1015,7 @@ void TestNonADLCall3() {
 
 // CHECK:  "kind": "FunctionDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 1149,
 // CHECK-NEXT:   "file": "{{.*}}",
 // CHECK-NEXT:   "line": 53,
 // CHECK-NEXT:   "col": 6,
@@ -946,10 +1023,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 1144,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 4
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 1292,
 // CHECK-NEXT:    "line": 58,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
@@ -964,16 +1043,19 @@ void TestNonADLCall3() {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "ParmVarDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 1170,
 // CHECK-NEXT:     "line": 53,
 // CHECK-NEXT:     "col": 27,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 1161,
 // CHECK-NEXT:      "col": 18,
 // CHECK-NEXT:      "tokLen": 5
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 1170,
 // CHECK-NEXT:      "col": 27,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -989,10 +1071,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:    "kind": "CompoundStmt",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 1173,
 // CHECK-NEXT:      "col": 30,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 1292,
 // CHECK-NEXT:      "line": 58,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 1
@@ -1004,11 +1088,13 @@ void TestNonADLCall3() {
 // CHECK-NEXT:      "kind": "CXXConstCastExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1177,
 // CHECK-NEXT:        "line": 54,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 10
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1194,
 // CHECK-NEXT:        "col": 20,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -1024,10 +1110,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1193,
 // CHECK-NEXT:          "col": 19,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1193,
 // CHECK-NEXT:          "col": 19,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -1044,10 +1132,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 1193,
 // CHECK-NEXT:            "col": 19,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 1193,
 // CHECK-NEXT:            "col": 19,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -1074,11 +1164,13 @@ void TestNonADLCall3() {
 // CHECK-NEXT:      "kind": "CXXStaticCastExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1199,
 // CHECK-NEXT:        "line": 55,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 11
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1223,
 // CHECK-NEXT:        "col": 27,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -1099,10 +1191,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1222,
 // CHECK-NEXT:          "col": 26,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1222,
 // CHECK-NEXT:          "col": 26,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -1119,10 +1213,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 1222,
 // CHECK-NEXT:            "col": 26,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 1222,
 // CHECK-NEXT:            "col": 26,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -1149,11 +1245,13 @@ void TestNonADLCall3() {
 // CHECK-NEXT:      "kind": "CXXDynamicCastExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1228,
 // CHECK-NEXT:        "line": 56,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 12
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1253,
 // CHECK-NEXT:        "col": 28,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -1169,10 +1267,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1252,
 // CHECK-NEXT:          "col": 27,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1252,
 // CHECK-NEXT:          "col": 27,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -1189,10 +1289,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 1252,
 // CHECK-NEXT:            "col": 27,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 1252,
 // CHECK-NEXT:            "col": 27,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -1219,11 +1321,13 @@ void TestNonADLCall3() {
 // CHECK-NEXT:      "kind": "CXXReinterpretCastExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1258,
 // CHECK-NEXT:        "line": 57,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 16
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1289,
 // CHECK-NEXT:        "col": 34,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -1239,10 +1343,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1288,
 // CHECK-NEXT:          "col": 33,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1288,
 // CHECK-NEXT:          "col": 33,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -1259,10 +1365,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 1288,
 // CHECK-NEXT:            "col": 33,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 1288,
 // CHECK-NEXT:            "col": 33,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -1292,6 +1400,7 @@ void TestNonADLCall3() {
 
 // CHECK:  "kind": "FunctionTemplateDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 1326,
 // CHECK-NEXT:   "file": "{{.*}}",
 // CHECK-NEXT:   "line": 61,
 // CHECK-NEXT:   "col": 6,
@@ -1299,11 +1408,13 @@ void TestNonADLCall3() {
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 1295,
 // CHECK-NEXT:    "line": 60,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 8
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 1533,
 // CHECK-NEXT:    "line": 75,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
@@ -1315,16 +1426,19 @@ void TestNonADLCall3() {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "TemplateTypeParmDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 1317,
 // CHECK-NEXT:     "line": 60,
 // CHECK-NEXT:     "col": 23,
 // CHECK-NEXT:     "tokLen": 2
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 1305,
 // CHECK-NEXT:      "col": 11,
 // CHECK-NEXT:      "tokLen": 8
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 1317,
 // CHECK-NEXT:      "col": 23,
 // CHECK-NEXT:      "tokLen": 2
 // CHECK-NEXT:     }
@@ -1340,16 +1454,19 @@ void TestNonADLCall3() {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "FunctionDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 1326,
 // CHECK-NEXT:     "line": 61,
 // CHECK-NEXT:     "col": 6,
 // CHECK-NEXT:     "tokLen": 20
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 1321,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 4
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 1533,
 // CHECK-NEXT:      "line": 75,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 1
@@ -1364,16 +1481,19 @@ void TestNonADLCall3() {
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "ParmVarDecl",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 1352,
 // CHECK-NEXT:       "line": 61,
 // CHECK-NEXT:       "col": 32,
 // CHECK-NEXT:       "tokLen": 1
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1347,
 // CHECK-NEXT:        "col": 27,
 // CHECK-NEXT:        "tokLen": 3
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1352,
 // CHECK-NEXT:        "col": 32,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -1389,10 +1509,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:      "kind": "CompoundStmt",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1355,
 // CHECK-NEXT:        "col": 35,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1533,
 // CHECK-NEXT:        "line": 75,
 // CHECK-NEXT:        "col": 1,
 // CHECK-NEXT:        "tokLen": 1
@@ -1404,11 +1526,13 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "kind": "SizeOfPackExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1359,
 // CHECK-NEXT:          "line": 62,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 6
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1371,
 // CHECK-NEXT:          "col": 15,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -1424,11 +1548,13 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "kind": "CXXNoexceptExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1376,
 // CHECK-NEXT:          "line": 63,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 8
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1390,
 // CHECK-NEXT:          "col": 17,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -1443,10 +1569,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:          "kind": "BinaryOperator",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 1385,
 // CHECK-NEXT:            "col": 12,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 1389,
 // CHECK-NEXT:            "col": 16,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -1462,10 +1590,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:            "kind": "ImplicitCastExpr",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 1385,
 // CHECK-NEXT:              "col": 12,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 1385,
 // CHECK-NEXT:              "col": 12,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -1481,10 +1611,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:              "kind": "DeclRefExpr",
 // CHECK-NEXT:              "range": {
 // CHECK-NEXT:               "begin": {
+// CHECK-NEXT:                "offset": 1385,
 // CHECK-NEXT:                "col": 12,
 // CHECK-NEXT:                "tokLen": 1
 // CHECK-NEXT:               },
 // CHECK-NEXT:               "end": {
+// CHECK-NEXT:                "offset": 1385,
 // CHECK-NEXT:                "col": 12,
 // CHECK-NEXT:                "tokLen": 1
 // CHECK-NEXT:               }
@@ -1510,10 +1642,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:            "kind": "ImplicitCastExpr",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 1389,
 // CHECK-NEXT:              "col": 16,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 1389,
 // CHECK-NEXT:              "col": 16,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -1529,10 +1663,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:              "kind": "DeclRefExpr",
 // CHECK-NEXT:              "range": {
 // CHECK-NEXT:               "begin": {
+// CHECK-NEXT:                "offset": 1389,
 // CHECK-NEXT:                "col": 16,
 // CHECK-NEXT:                "tokLen": 1
 // CHECK-NEXT:               },
 // CHECK-NEXT:               "end": {
+// CHECK-NEXT:                "offset": 1389,
 // CHECK-NEXT:                "col": 16,
 // CHECK-NEXT:                "tokLen": 1
 // CHECK-NEXT:               }
@@ -1562,11 +1698,13 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "kind": "CXXNewExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1396,
 // CHECK-NEXT:          "line": 65,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 2
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1402,
 // CHECK-NEXT:          "col": 9,
 // CHECK-NEXT:          "tokLen": 3
 // CHECK-NEXT:         }
@@ -1590,11 +1728,13 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "kind": "CXXNewExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1409,
 // CHECK-NEXT:          "line": 66,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 3
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1417,
 // CHECK-NEXT:          "col": 11,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -1617,11 +1757,13 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "kind": "CXXNewExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1422,
 // CHECK-NEXT:          "line": 67,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 3
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1432,
 // CHECK-NEXT:          "col": 13,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -1645,10 +1787,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:          "kind": "InitListExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 1429,
 // CHECK-NEXT:            "col": 10,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 1432,
 // CHECK-NEXT:            "col": 13,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -1663,10 +1807,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:            "kind": "IntegerLiteral",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 1430,
 // CHECK-NEXT:              "col": 11,
 // CHECK-NEXT:              "tokLen": 2
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 1430,
 // CHECK-NEXT:              "col": 11,
 // CHECK-NEXT:              "tokLen": 2
 // CHECK-NEXT:             }
@@ -1686,11 +1832,13 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "kind": "CXXNewExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1437,
 // CHECK-NEXT:          "line": 68,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 3
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1446,
 // CHECK-NEXT:          "col": 12,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -1714,10 +1862,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:          "kind": "ImplicitCastExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 1445,
 // CHECK-NEXT:            "col": 11,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 1445,
 // CHECK-NEXT:            "col": 11,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -1733,10 +1883,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:            "kind": "IntegerLiteral",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 1445,
 // CHECK-NEXT:              "col": 11,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 1445,
 // CHECK-NEXT:              "col": 11,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -1756,11 +1908,13 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "kind": "CXXNewExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1451,
 // CHECK-NEXT:          "line": 69,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 3
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1466,
 // CHECK-NEXT:          "col": 18,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -1785,10 +1939,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:          "kind": "ImplicitCastExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 1459,
 // CHECK-NEXT:            "col": 11,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 1459,
 // CHECK-NEXT:            "col": 11,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -1804,10 +1960,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:            "kind": "IntegerLiteral",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 1459,
 // CHECK-NEXT:              "col": 11,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 1459,
 // CHECK-NEXT:              "col": 11,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -1825,10 +1983,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:          "kind": "InitListExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 1461,
 // CHECK-NEXT:            "col": 13,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 1466,
 // CHECK-NEXT:            "col": 18,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -1843,10 +2003,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:            "kind": "IntegerLiteral",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 1462,
 // CHECK-NEXT:              "col": 14,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 1462,
 // CHECK-NEXT:              "col": 14,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -1862,10 +2024,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:            "kind": "IntegerLiteral",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 1465,
 // CHECK-NEXT:              "col": 17,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 1465,
 // CHECK-NEXT:              "col": 17,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -1885,11 +2049,13 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "kind": "CXXNewExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1471,
 // CHECK-NEXT:          "line": 70,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 3
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1479,
 // CHECK-NEXT:          "col": 11,
 // CHECK-NEXT:          "tokLen": 3
 // CHECK-NEXT:         }
@@ -1913,10 +2079,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:          "kind": "ImplicitCastExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 1476,
 // CHECK-NEXT:            "col": 8,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 1476,
 // CHECK-NEXT:            "col": 8,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -1932,10 +2100,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:            "kind": "ImplicitCastExpr",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 1476,
 // CHECK-NEXT:              "col": 8,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 1476,
 // CHECK-NEXT:              "col": 8,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -1951,10 +2121,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:              "kind": "DeclRefExpr",
 // CHECK-NEXT:              "range": {
 // CHECK-NEXT:               "begin": {
+// CHECK-NEXT:                "offset": 1476,
 // CHECK-NEXT:                "col": 8,
 // CHECK-NEXT:                "tokLen": 1
 // CHECK-NEXT:               },
 // CHECK-NEXT:               "end": {
+// CHECK-NEXT:                "offset": 1476,
 // CHECK-NEXT:                "col": 8,
 // CHECK-NEXT:                "tokLen": 1
 // CHECK-NEXT:               }
@@ -1983,11 +2155,13 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "kind": "CXXNewExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1486,
 // CHECK-NEXT:          "line": 71,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 3
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1500,
 // CHECK-NEXT:          "col": 17,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -2012,10 +2186,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:          "kind": "InitListExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 1497,
 // CHECK-NEXT:            "col": 14,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 1500,
 // CHECK-NEXT:            "col": 17,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -2030,10 +2206,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:            "kind": "IntegerLiteral",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 1498,
 // CHECK-NEXT:              "col": 15,
 // CHECK-NEXT:              "tokLen": 2
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 1498,
 // CHECK-NEXT:              "col": 15,
 // CHECK-NEXT:              "tokLen": 2
 // CHECK-NEXT:             }
@@ -2051,10 +2229,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:          "kind": "ImplicitCastExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 1491,
 // CHECK-NEXT:            "col": 8,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 1491,
 // CHECK-NEXT:            "col": 8,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -2070,10 +2250,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:            "kind": "ImplicitCastExpr",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 1491,
 // CHECK-NEXT:              "col": 8,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 1491,
 // CHECK-NEXT:              "col": 8,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -2089,10 +2271,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:              "kind": "DeclRefExpr",
 // CHECK-NEXT:              "range": {
 // CHECK-NEXT:               "begin": {
+// CHECK-NEXT:                "offset": 1491,
 // CHECK-NEXT:                "col": 8,
 // CHECK-NEXT:                "tokLen": 1
 // CHECK-NEXT:               },
 // CHECK-NEXT:               "end": {
+// CHECK-NEXT:                "offset": 1491,
 // CHECK-NEXT:                "col": 8,
 // CHECK-NEXT:                "tokLen": 1
 // CHECK-NEXT:               }
@@ -2121,11 +2305,13 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "kind": "CXXDeleteExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1506,
 // CHECK-NEXT:          "line": 73,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 2
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1515,
 // CHECK-NEXT:          "col": 12,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -2149,10 +2335,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:          "kind": "ImplicitCastExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 1515,
 // CHECK-NEXT:            "col": 12,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 1515,
 // CHECK-NEXT:            "col": 12,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -2168,10 +2356,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:            "kind": "DeclRefExpr",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 1515,
 // CHECK-NEXT:              "col": 12,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 1515,
 // CHECK-NEXT:              "col": 12,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -2198,11 +2388,13 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "kind": "CXXDeleteExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1520,
 // CHECK-NEXT:          "line": 74,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 6
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1530,
 // CHECK-NEXT:          "col": 13,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -2227,10 +2419,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:          "kind": "ImplicitCastExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 1530,
 // CHECK-NEXT:            "col": 13,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 1530,
 // CHECK-NEXT:            "col": 13,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -2246,10 +2440,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:            "kind": "DeclRefExpr",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 1530,
 // CHECK-NEXT:              "col": 13,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 1530,
 // CHECK-NEXT:              "col": 13,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -2281,6 +2477,7 @@ void TestNonADLCall3() {
 
 // CHECK:  "kind": "FunctionDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 1541,
 // CHECK-NEXT:   "file": "{{.*}}",
 // CHECK-NEXT:   "line": 77,
 // CHECK-NEXT:   "col": 6,
@@ -2288,10 +2485,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 1536,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 4
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 1807,
 // CHECK-NEXT:    "line": 90,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
@@ -2306,16 +2505,19 @@ void TestNonADLCall3() {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "ParmVarDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 1566,
 // CHECK-NEXT:     "line": 77,
 // CHECK-NEXT:     "col": 31,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 1564,
 // CHECK-NEXT:      "col": 29,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 1566,
 // CHECK-NEXT:      "col": 31,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -2330,15 +2532,18 @@ void TestNonADLCall3() {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "ParmVarDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 1572,
 // CHECK-NEXT:     "col": 37,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 1569,
 // CHECK-NEXT:      "col": 34,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 1572,
 // CHECK-NEXT:      "col": 37,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -2353,15 +2558,18 @@ void TestNonADLCall3() {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "ParmVarDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 1583,
 // CHECK-NEXT:     "col": 48,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 1575,
 // CHECK-NEXT:      "col": 40,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 1583,
 // CHECK-NEXT:      "col": 48,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -2377,10 +2585,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:    "kind": "CompoundStmt",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 1586,
 // CHECK-NEXT:      "col": 51,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 1807,
 // CHECK-NEXT:      "line": 90,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 1
@@ -2392,11 +2602,13 @@ void TestNonADLCall3() {
 // CHECK-NEXT:      "kind": "CXXMemberCallExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1590,
 // CHECK-NEXT:        "line": 78,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1598,
 // CHECK-NEXT:        "col": 11,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -2411,10 +2623,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "kind": "MemberExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1590,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1592,
 // CHECK-NEXT:          "col": 5,
 // CHECK-NEXT:          "tokLen": 4
 // CHECK-NEXT:         }
@@ -2432,10 +2646,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 1590,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 1590,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -2460,10 +2676,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "kind": "IntegerLiteral",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1597,
 // CHECK-NEXT:          "col": 10,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1597,
 // CHECK-NEXT:          "col": 10,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -2481,11 +2699,13 @@ void TestNonADLCall3() {
 // CHECK-NEXT:      "kind": "CXXMemberCallExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1603,
 // CHECK-NEXT:        "line": 79,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1612,
 // CHECK-NEXT:        "col": 12,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -2500,10 +2720,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "kind": "MemberExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1603,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1606,
 // CHECK-NEXT:          "col": 6,
 // CHECK-NEXT:          "tokLen": 4
 // CHECK-NEXT:         }
@@ -2521,10 +2743,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:          "kind": "ImplicitCastExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 1603,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 1603,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -2540,10 +2764,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:            "kind": "DeclRefExpr",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 1603,
 // CHECK-NEXT:              "col": 3,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 1603,
 // CHECK-NEXT:              "col": 3,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -2570,10 +2796,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "kind": "IntegerLiteral",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1611,
 // CHECK-NEXT:          "col": 11,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1611,
 // CHECK-NEXT:          "col": 11,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -2591,11 +2819,13 @@ void TestNonADLCall3() {
 // CHECK-NEXT:      "kind": "CXXMemberCallExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1617,
 // CHECK-NEXT:        "line": 80,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1638,
 // CHECK-NEXT:        "col": 24,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -2611,10 +2841,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "kind": "MemberExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1617,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1636,
 // CHECK-NEXT:          "col": 22,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -2632,10 +2864,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:          "kind": "ImplicitCastExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 1617,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 1617,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -2651,10 +2885,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:            "kind": "DeclRefExpr",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 1617,
 // CHECK-NEXT:              "col": 3,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 1617,
 // CHECK-NEXT:              "col": 3,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -2683,11 +2919,13 @@ void TestNonADLCall3() {
 // CHECK-NEXT:      "kind": "CXXMemberCallExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1643,
 // CHECK-NEXT:        "line": 81,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1665,
 // CHECK-NEXT:        "col": 25,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -2703,10 +2941,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "kind": "MemberExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1643,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1663,
 // CHECK-NEXT:          "col": 23,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -2724,10 +2964,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 1643,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 1643,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -2754,11 +2996,13 @@ void TestNonADLCall3() {
 // CHECK-NEXT:      "kind": "CXXMemberCallExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1670,
 // CHECK-NEXT:        "line": 82,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1676,
 // CHECK-NEXT:        "col": 9,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -2773,10 +3017,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "kind": "MemberExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1670,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1674,
 // CHECK-NEXT:          "col": 7,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -2794,10 +3040,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:          "kind": "ImplicitCastExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 1670,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 1670,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -2813,10 +3061,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:            "kind": "DeclRefExpr",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 1670,
 // CHECK-NEXT:              "col": 3,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 1670,
 // CHECK-NEXT:              "col": 3,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -2845,11 +3095,13 @@ void TestNonADLCall3() {
 // CHECK-NEXT:      "kind": "CXXMemberCallExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1681,
 // CHECK-NEXT:        "line": 83,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1686,
 // CHECK-NEXT:        "col": 8,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -2864,10 +3116,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "kind": "MemberExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1681,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1684,
 // CHECK-NEXT:          "col": 6,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -2885,10 +3139,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 1681,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 1681,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -2915,11 +3171,13 @@ void TestNonADLCall3() {
 // CHECK-NEXT:      "kind": "CXXMemberCallExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1691,
 // CHECK-NEXT:        "line": 84,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1706,
 // CHECK-NEXT:        "col": 18,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -2934,10 +3192,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "kind": "MemberExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1691,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1693,
 // CHECK-NEXT:          "col": 5,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -2955,10 +3215,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 1691,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 1691,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -2985,11 +3247,13 @@ void TestNonADLCall3() {
 // CHECK-NEXT:      "kind": "CXXMemberCallExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1711,
 // CHECK-NEXT:        "line": 85,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1722,
 // CHECK-NEXT:        "col": 14,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -3004,10 +3268,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "kind": "MemberExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1711,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1720,
 // CHECK-NEXT:          "col": 12,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -3025,10 +3291,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:          "kind": "ImplicitCastExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 1711,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 1711,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -3044,10 +3312,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:            "kind": "DeclRefExpr",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 1711,
 // CHECK-NEXT:              "col": 3,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 1711,
 // CHECK-NEXT:              "col": 3,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -3076,11 +3346,13 @@ void TestNonADLCall3() {
 // CHECK-NEXT:      "kind": "CXXMemberCallExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1727,
 // CHECK-NEXT:        "line": 86,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1750,
 // CHECK-NEXT:        "col": 26,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -3095,10 +3367,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "kind": "MemberExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1727,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1748,
 // CHECK-NEXT:          "col": 24,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -3116,10 +3390,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:          "kind": "ImplicitCastExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 1727,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 1727,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -3135,10 +3411,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:            "kind": "DeclRefExpr",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 1727,
 // CHECK-NEXT:              "col": 3,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 1727,
 // CHECK-NEXT:              "col": 3,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -3167,11 +3445,13 @@ void TestNonADLCall3() {
 // CHECK-NEXT:      "kind": "CXXTypeidExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1755,
 // CHECK-NEXT:        "line": 87,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 6
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1763,
 // CHECK-NEXT:        "col": 11,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -3186,10 +3466,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "kind": "DeclRefExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1762,
 // CHECK-NEXT:          "col": 10,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1762,
 // CHECK-NEXT:          "col": 10,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -3214,11 +3496,13 @@ void TestNonADLCall3() {
 // CHECK-NEXT:      "kind": "CXXTypeidExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1768,
 // CHECK-NEXT:        "line": 88,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 6
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1776,
 // CHECK-NEXT:        "col": 11,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -3236,11 +3520,13 @@ void TestNonADLCall3() {
 // CHECK-NEXT:      "kind": "CXXTypeidExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1781,
 // CHECK-NEXT:        "line": 89,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 6
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1804,
 // CHECK-NEXT:        "col": 26,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -3264,6 +3550,7 @@ void TestNonADLCall3() {
 
 // CHECK:  "kind": "FunctionTemplateDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 1841,
 // CHECK-NEXT:   "file": "{{.*}}",
 // CHECK-NEXT:   "line": 93,
 // CHECK-NEXT:   "col": 6,
@@ -3271,11 +3558,13 @@ void TestNonADLCall3() {
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 1810,
 // CHECK-NEXT:    "line": 92,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 8
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 2257,
 // CHECK-NEXT:    "line": 122,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
@@ -3287,16 +3576,19 @@ void TestNonADLCall3() {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "TemplateTypeParmDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 1832,
 // CHECK-NEXT:     "line": 92,
 // CHECK-NEXT:     "col": 23,
 // CHECK-NEXT:     "tokLen": 2
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 1820,
 // CHECK-NEXT:      "col": 11,
 // CHECK-NEXT:      "tokLen": 8
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 1832,
 // CHECK-NEXT:      "col": 23,
 // CHECK-NEXT:      "tokLen": 2
 // CHECK-NEXT:     }
@@ -3312,16 +3604,19 @@ void TestNonADLCall3() {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "FunctionDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 1841,
 // CHECK-NEXT:     "line": 93,
 // CHECK-NEXT:     "col": 6,
 // CHECK-NEXT:     "tokLen": 22
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 1836,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 4
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 2257,
 // CHECK-NEXT:      "line": 122,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 1
@@ -3336,16 +3631,19 @@ void TestNonADLCall3() {
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "ParmVarDecl",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 1870,
 // CHECK-NEXT:       "line": 93,
 // CHECK-NEXT:       "col": 35,
 // CHECK-NEXT:       "tokLen": 1
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1864,
 // CHECK-NEXT:        "col": 29,
 // CHECK-NEXT:        "tokLen": 2
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1870,
 // CHECK-NEXT:        "col": 35,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -3362,10 +3660,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:      "kind": "CompoundStmt",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1873,
 // CHECK-NEXT:        "col": 38,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 2257,
 // CHECK-NEXT:        "line": 122,
 // CHECK-NEXT:        "col": 1,
 // CHECK-NEXT:        "tokLen": 1
@@ -3377,11 +3677,13 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "kind": "DeclStmt",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1877,
 // CHECK-NEXT:          "line": 94,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 6
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1958,
 // CHECK-NEXT:          "line": 101,
 // CHECK-NEXT:          "col": 4,
 // CHECK-NEXT:          "tokLen": 1
@@ -3392,16 +3694,19 @@ void TestNonADLCall3() {
 // CHECK-NEXT:          "id": "0x{{.*}}",
 // CHECK-NEXT:          "kind": "CXXRecordDecl",
 // CHECK-NEXT:          "loc": {
+// CHECK-NEXT:           "offset": 1884,
 // CHECK-NEXT:           "line": 94,
 // CHECK-NEXT:           "col": 10,
 // CHECK-NEXT:           "tokLen": 1
 // CHECK-NEXT:          },
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 1877,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 6
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 1957,
 // CHECK-NEXT:            "line": 101,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
@@ -3464,16 +3769,19 @@ void TestNonADLCall3() {
 // CHECK-NEXT:            "id": "0x{{.*}}",
 // CHECK-NEXT:            "kind": "CXXRecordDecl",
 // CHECK-NEXT:            "loc": {
+// CHECK-NEXT:             "offset": 1884,
 // CHECK-NEXT:             "line": 94,
 // CHECK-NEXT:             "col": 10,
 // CHECK-NEXT:             "tokLen": 1
 // CHECK-NEXT:            },
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 1877,
 // CHECK-NEXT:              "col": 3,
 // CHECK-NEXT:              "tokLen": 6
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 1884,
 // CHECK-NEXT:              "col": 10,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -3486,16 +3794,19 @@ void TestNonADLCall3() {
 // CHECK-NEXT:            "id": "0x{{.*}}",
 // CHECK-NEXT:            "kind": "CXXMethodDecl",
 // CHECK-NEXT:            "loc": {
+// CHECK-NEXT:             "offset": 1897,
 // CHECK-NEXT:             "line": 95,
 // CHECK-NEXT:             "col": 10,
 // CHECK-NEXT:             "tokLen": 1
 // CHECK-NEXT:            },
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 1892,
 // CHECK-NEXT:              "col": 5,
 // CHECK-NEXT:              "tokLen": 4
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 1953,
 // CHECK-NEXT:              "line": 100,
 // CHECK-NEXT:              "col": 5,
 // CHECK-NEXT:              "tokLen": 1
@@ -3511,11 +3822,13 @@ void TestNonADLCall3() {
 // CHECK-NEXT:              "kind": "CompoundStmt",
 // CHECK-NEXT:              "range": {
 // CHECK-NEXT:               "begin": {
+// CHECK-NEXT:                "offset": 1901,
 // CHECK-NEXT:                "line": 95,
 // CHECK-NEXT:                "col": 14,
 // CHECK-NEXT:                "tokLen": 1
 // CHECK-NEXT:               },
 // CHECK-NEXT:               "end": {
+// CHECK-NEXT:                "offset": 1953,
 // CHECK-NEXT:                "line": 100,
 // CHECK-NEXT:                "col": 5,
 // CHECK-NEXT:                "tokLen": 1
@@ -3527,11 +3840,13 @@ void TestNonADLCall3() {
 // CHECK-NEXT:                "kind": "CXXThisExpr",
 // CHECK-NEXT:                "range": {
 // CHECK-NEXT:                 "begin": {
+// CHECK-NEXT:                  "offset": 1909,
 // CHECK-NEXT:                  "line": 96,
 // CHECK-NEXT:                  "col": 7,
 // CHECK-NEXT:                  "tokLen": 4
 // CHECK-NEXT:                 },
 // CHECK-NEXT:                 "end": {
+// CHECK-NEXT:                  "offset": 1909,
 // CHECK-NEXT:                  "col": 7,
 // CHECK-NEXT:                  "tokLen": 4
 // CHECK-NEXT:                 }
@@ -3546,11 +3861,13 @@ void TestNonADLCall3() {
 // CHECK-NEXT:                "kind": "LambdaExpr",
 // CHECK-NEXT:                "range": {
 // CHECK-NEXT:                 "begin": {
+// CHECK-NEXT:                  "offset": 1922,
 // CHECK-NEXT:                  "line": 98,
 // CHECK-NEXT:                  "col": 7,
 // CHECK-NEXT:                  "tokLen": 1
 // CHECK-NEXT:                 },
 // CHECK-NEXT:                 "end": {
+// CHECK-NEXT:                  "offset": 1929,
 // CHECK-NEXT:                  "col": 14,
 // CHECK-NEXT:                  "tokLen": 1
 // CHECK-NEXT:                 }
@@ -3564,15 +3881,18 @@ void TestNonADLCall3() {
 // CHECK-NEXT:                  "id": "0x{{.*}}",
 // CHECK-NEXT:                  "kind": "CXXRecordDecl",
 // CHECK-NEXT:                  "loc": {
+// CHECK-NEXT:                   "offset": 1922,
 // CHECK-NEXT:                   "col": 7,
 // CHECK-NEXT:                   "tokLen": 1
 // CHECK-NEXT:                  },
 // CHECK-NEXT:                  "range": {
 // CHECK-NEXT:                   "begin": {
+// CHECK-NEXT:                    "offset": 1922,
 // CHECK-NEXT:                    "col": 7,
 // CHECK-NEXT:                    "tokLen": 1
 // CHECK-NEXT:                   },
 // CHECK-NEXT:                   "end": {
+// CHECK-NEXT:                    "offset": 1922,
 // CHECK-NEXT:                    "col": 7,
 // CHECK-NEXT:                    "tokLen": 1
 // CHECK-NEXT:                   }
@@ -3618,15 +3938,18 @@ void TestNonADLCall3() {
 // CHECK-NEXT:                    "id": "0x{{.*}}",
 // CHECK-NEXT:                    "kind": "CXXMethodDecl",
 // CHECK-NEXT:                    "loc": {
+// CHECK-NEXT:                     "offset": 1922,
 // CHECK-NEXT:                     "col": 7,
 // CHECK-NEXT:                     "tokLen": 1
 // CHECK-NEXT:                    },
 // CHECK-NEXT:                    "range": {
 // CHECK-NEXT:                     "begin": {
+// CHECK-NEXT:                      "offset": 1927,
 // CHECK-NEXT:                      "col": 12,
 // CHECK-NEXT:                      "tokLen": 1
 // CHECK-NEXT:                     },
 // CHECK-NEXT:                     "end": {
+// CHECK-NEXT:                      "offset": 1929,
 // CHECK-NEXT:                      "col": 14,
 // CHECK-NEXT:                      "tokLen": 1
 // CHECK-NEXT:                     }
@@ -3642,10 +3965,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:                      "kind": "CompoundStmt",
 // CHECK-NEXT:                      "range": {
 // CHECK-NEXT:                       "begin": {
+// CHECK-NEXT:                        "offset": 1928,
 // CHECK-NEXT:                        "col": 13,
 // CHECK-NEXT:                        "tokLen": 1
 // CHECK-NEXT:                       },
 // CHECK-NEXT:                       "end": {
+// CHECK-NEXT:                        "offset": 1929,
 // CHECK-NEXT:                        "col": 14,
 // CHECK-NEXT:                        "tokLen": 1
 // CHECK-NEXT:                       }
@@ -3657,15 +3982,18 @@ void TestNonADLCall3() {
 // CHECK-NEXT:                    "id": "0x{{.*}}",
 // CHECK-NEXT:                    "kind": "FieldDecl",
 // CHECK-NEXT:                    "loc": {
+// CHECK-NEXT:                     "offset": 1923,
 // CHECK-NEXT:                     "col": 8,
 // CHECK-NEXT:                     "tokLen": 4
 // CHECK-NEXT:                    },
 // CHECK-NEXT:                    "range": {
 // CHECK-NEXT:                     "begin": {
+// CHECK-NEXT:                      "offset": 1923,
 // CHECK-NEXT:                      "col": 8,
 // CHECK-NEXT:                      "tokLen": 4
 // CHECK-NEXT:                     },
 // CHECK-NEXT:                     "end": {
+// CHECK-NEXT:                      "offset": 1923,
 // CHECK-NEXT:                      "col": 8,
 // CHECK-NEXT:                      "tokLen": 4
 // CHECK-NEXT:                     }
@@ -3682,10 +4010,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:                  "kind": "ParenListExpr",
 // CHECK-NEXT:                  "range": {
 // CHECK-NEXT:                   "begin": {
+// CHECK-NEXT:                    "offset": 1923,
 // CHECK-NEXT:                    "col": 8,
 // CHECK-NEXT:                    "tokLen": 4
 // CHECK-NEXT:                   },
 // CHECK-NEXT:                   "end": {
+// CHECK-NEXT:                    "offset": 1923,
 // CHECK-NEXT:                    "col": 8,
 // CHECK-NEXT:                    "tokLen": 4
 // CHECK-NEXT:                   }
@@ -3700,10 +4030,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:                    "kind": "CXXThisExpr",
 // CHECK-NEXT:                    "range": {
 // CHECK-NEXT:                     "begin": {
+// CHECK-NEXT:                      "offset": 1923,
 // CHECK-NEXT:                      "col": 8,
 // CHECK-NEXT:                      "tokLen": 4
 // CHECK-NEXT:                     },
 // CHECK-NEXT:                     "end": {
+// CHECK-NEXT:                      "offset": 1923,
 // CHECK-NEXT:                      "col": 8,
 // CHECK-NEXT:                      "tokLen": 4
 // CHECK-NEXT:                     }
@@ -3720,10 +4052,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:                  "kind": "CompoundStmt",
 // CHECK-NEXT:                  "range": {
 // CHECK-NEXT:                   "begin": {
+// CHECK-NEXT:                    "offset": 1928,
 // CHECK-NEXT:                    "col": 13,
 // CHECK-NEXT:                    "tokLen": 1
 // CHECK-NEXT:                   },
 // CHECK-NEXT:                   "end": {
+// CHECK-NEXT:                    "offset": 1929,
 // CHECK-NEXT:                    "col": 14,
 // CHECK-NEXT:                    "tokLen": 1
 // CHECK-NEXT:                   }
@@ -3736,11 +4070,13 @@ void TestNonADLCall3() {
 // CHECK-NEXT:                "kind": "LambdaExpr",
 // CHECK-NEXT:                "range": {
 // CHECK-NEXT:                 "begin": {
+// CHECK-NEXT:                  "offset": 1938,
 // CHECK-NEXT:                  "line": 99,
 // CHECK-NEXT:                  "col": 7,
 // CHECK-NEXT:                  "tokLen": 1
 // CHECK-NEXT:                 },
 // CHECK-NEXT:                 "end": {
+// CHECK-NEXT:                  "offset": 1946,
 // CHECK-NEXT:                  "col": 15,
 // CHECK-NEXT:                  "tokLen": 1
 // CHECK-NEXT:                 }
@@ -3754,15 +4090,18 @@ void TestNonADLCall3() {
 // CHECK-NEXT:                  "id": "0x{{.*}}",
 // CHECK-NEXT:                  "kind": "CXXRecordDecl",
 // CHECK-NEXT:                  "loc": {
+// CHECK-NEXT:                   "offset": 1938,
 // CHECK-NEXT:                   "col": 7,
 // CHECK-NEXT:                   "tokLen": 1
 // CHECK-NEXT:                  },
 // CHECK-NEXT:                  "range": {
 // CHECK-NEXT:                   "begin": {
+// CHECK-NEXT:                    "offset": 1938,
 // CHECK-NEXT:                    "col": 7,
 // CHECK-NEXT:                    "tokLen": 1
 // CHECK-NEXT:                   },
 // CHECK-NEXT:                   "end": {
+// CHECK-NEXT:                    "offset": 1938,
 // CHECK-NEXT:                    "col": 7,
 // CHECK-NEXT:                    "tokLen": 1
 // CHECK-NEXT:                   }
@@ -3810,15 +4149,18 @@ void TestNonADLCall3() {
 // CHECK-NEXT:                    "id": "0x{{.*}}",
 // CHECK-NEXT:                    "kind": "CXXMethodDecl",
 // CHECK-NEXT:                    "loc": {
+// CHECK-NEXT:                     "offset": 1938,
 // CHECK-NEXT:                     "col": 7,
 // CHECK-NEXT:                     "tokLen": 1
 // CHECK-NEXT:                    },
 // CHECK-NEXT:                    "range": {
 // CHECK-NEXT:                     "begin": {
+// CHECK-NEXT:                      "offset": 1944,
 // CHECK-NEXT:                      "col": 13,
 // CHECK-NEXT:                      "tokLen": 1
 // CHECK-NEXT:                     },
 // CHECK-NEXT:                     "end": {
+// CHECK-NEXT:                      "offset": 1946,
 // CHECK-NEXT:                      "col": 15,
 // CHECK-NEXT:                      "tokLen": 1
 // CHECK-NEXT:                     }
@@ -3834,10 +4176,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:                      "kind": "CompoundStmt",
 // CHECK-NEXT:                      "range": {
 // CHECK-NEXT:                       "begin": {
+// CHECK-NEXT:                        "offset": 1945,
 // CHECK-NEXT:                        "col": 14,
 // CHECK-NEXT:                        "tokLen": 1
 // CHECK-NEXT:                       },
 // CHECK-NEXT:                       "end": {
+// CHECK-NEXT:                        "offset": 1946,
 // CHECK-NEXT:                        "col": 15,
 // CHECK-NEXT:                        "tokLen": 1
 // CHECK-NEXT:                       }
@@ -3849,15 +4193,18 @@ void TestNonADLCall3() {
 // CHECK-NEXT:                    "id": "0x{{.*}}",
 // CHECK-NEXT:                    "kind": "FieldDecl",
 // CHECK-NEXT:                    "loc": {
+// CHECK-NEXT:                     "offset": 1939,
 // CHECK-NEXT:                     "col": 8,
 // CHECK-NEXT:                     "tokLen": 1
 // CHECK-NEXT:                    },
 // CHECK-NEXT:                    "range": {
 // CHECK-NEXT:                     "begin": {
+// CHECK-NEXT:                      "offset": 1939,
 // CHECK-NEXT:                      "col": 8,
 // CHECK-NEXT:                      "tokLen": 1
 // CHECK-NEXT:                     },
 // CHECK-NEXT:                     "end": {
+// CHECK-NEXT:                      "offset": 1939,
 // CHECK-NEXT:                      "col": 8,
 // CHECK-NEXT:                      "tokLen": 1
 // CHECK-NEXT:                     }
@@ -3874,10 +4221,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:                  "kind": "ParenListExpr",
 // CHECK-NEXT:                  "range": {
 // CHECK-NEXT:                   "begin": {
+// CHECK-NEXT:                    "offset": 1939,
 // CHECK-NEXT:                    "col": 8,
 // CHECK-NEXT:                    "tokLen": 1
 // CHECK-NEXT:                   },
 // CHECK-NEXT:                   "end": {
+// CHECK-NEXT:                    "offset": 1939,
 // CHECK-NEXT:                    "col": 8,
 // CHECK-NEXT:                    "tokLen": 1
 // CHECK-NEXT:                   }
@@ -3892,10 +4241,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:                    "kind": "UnaryOperator",
 // CHECK-NEXT:                    "range": {
 // CHECK-NEXT:                     "begin": {
+// CHECK-NEXT:                      "offset": 1939,
 // CHECK-NEXT:                      "col": 8,
 // CHECK-NEXT:                      "tokLen": 1
 // CHECK-NEXT:                     },
 // CHECK-NEXT:                     "end": {
+// CHECK-NEXT:                      "offset": 1939,
 // CHECK-NEXT:                      "col": 8,
 // CHECK-NEXT:                      "tokLen": 1
 // CHECK-NEXT:                     }
@@ -3913,10 +4264,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:                      "kind": "CXXThisExpr",
 // CHECK-NEXT:                      "range": {
 // CHECK-NEXT:                       "begin": {
+// CHECK-NEXT:                        "offset": 1939,
 // CHECK-NEXT:                        "col": 8,
 // CHECK-NEXT:                        "tokLen": 1
 // CHECK-NEXT:                       },
 // CHECK-NEXT:                       "end": {
+// CHECK-NEXT:                        "offset": 1939,
 // CHECK-NEXT:                        "col": 8,
 // CHECK-NEXT:                        "tokLen": 1
 // CHECK-NEXT:                       }
@@ -3935,10 +4288,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:                  "kind": "CompoundStmt",
 // CHECK-NEXT:                  "range": {
 // CHECK-NEXT:                   "begin": {
+// CHECK-NEXT:                    "offset": 1945,
 // CHECK-NEXT:                    "col": 14,
 // CHECK-NEXT:                    "tokLen": 1
 // CHECK-NEXT:                   },
 // CHECK-NEXT:                   "end": {
+// CHECK-NEXT:                    "offset": 1946,
 // CHECK-NEXT:                    "col": 15,
 // CHECK-NEXT:                    "tokLen": 1
 // CHECK-NEXT:                   }
@@ -3959,11 +4314,13 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "kind": "DeclStmt",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1963,
 // CHECK-NEXT:          "line": 103,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 3
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1971,
 // CHECK-NEXT:          "col": 11,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -3973,15 +4330,18 @@ void TestNonADLCall3() {
 // CHECK-NEXT:          "id": "0x{{.*}}",
 // CHECK-NEXT:          "kind": "VarDecl",
 // CHECK-NEXT:          "loc": {
+// CHECK-NEXT:           "offset": 1967,
 // CHECK-NEXT:           "col": 7,
 // CHECK-NEXT:           "tokLen": 1
 // CHECK-NEXT:          },
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 1963,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 3
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 1967,
 // CHECK-NEXT:            "col": 7,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -3996,15 +4356,18 @@ void TestNonADLCall3() {
 // CHECK-NEXT:          "id": "0x{{.*}}",
 // CHECK-NEXT:          "kind": "VarDecl",
 // CHECK-NEXT:          "loc": {
+// CHECK-NEXT:           "offset": 1970,
 // CHECK-NEXT:           "col": 10,
 // CHECK-NEXT:           "tokLen": 1
 // CHECK-NEXT:          },
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 1963,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 3
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 1970,
 // CHECK-NEXT:            "col": 10,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -4022,11 +4385,13 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "kind": "LambdaExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1976,
 // CHECK-NEXT:          "line": 105,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1981,
 // CHECK-NEXT:          "col": 8,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -4040,15 +4405,18 @@ void TestNonADLCall3() {
 // CHECK-NEXT:          "id": "0x{{.*}}",
 // CHECK-NEXT:          "kind": "CXXRecordDecl",
 // CHECK-NEXT:          "loc": {
+// CHECK-NEXT:           "offset": 1976,
 // CHECK-NEXT:           "col": 3,
 // CHECK-NEXT:           "tokLen": 1
 // CHECK-NEXT:          },
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 1976,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 1976,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -4098,15 +4466,18 @@ void TestNonADLCall3() {
 // CHECK-NEXT:            "id": "0x{{.*}}",
 // CHECK-NEXT:            "kind": "CXXMethodDecl",
 // CHECK-NEXT:            "loc": {
+// CHECK-NEXT:             "offset": 1976,
 // CHECK-NEXT:             "col": 3,
 // CHECK-NEXT:             "tokLen": 1
 // CHECK-NEXT:            },
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 1979,
 // CHECK-NEXT:              "col": 6,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 1981,
 // CHECK-NEXT:              "col": 8,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -4122,10 +4493,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:              "kind": "CompoundStmt",
 // CHECK-NEXT:              "range": {
 // CHECK-NEXT:               "begin": {
+// CHECK-NEXT:                "offset": 1980,
 // CHECK-NEXT:                "col": 7,
 // CHECK-NEXT:                "tokLen": 1
 // CHECK-NEXT:               },
 // CHECK-NEXT:               "end": {
+// CHECK-NEXT:                "offset": 1981,
 // CHECK-NEXT:                "col": 8,
 // CHECK-NEXT:                "tokLen": 1
 // CHECK-NEXT:               }
@@ -4137,15 +4510,18 @@ void TestNonADLCall3() {
 // CHECK-NEXT:            "id": "0x{{.*}}",
 // CHECK-NEXT:            "kind": "CXXConversionDecl",
 // CHECK-NEXT:            "loc": {
+// CHECK-NEXT:             "offset": 1976,
 // CHECK-NEXT:             "col": 3,
 // CHECK-NEXT:             "tokLen": 1
 // CHECK-NEXT:            },
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 1976,
 // CHECK-NEXT:              "col": 3,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 1981,
 // CHECK-NEXT:              "col": 8,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -4162,15 +4538,18 @@ void TestNonADLCall3() {
 // CHECK-NEXT:            "id": "0x{{.*}}",
 // CHECK-NEXT:            "kind": "CXXMethodDecl",
 // CHECK-NEXT:            "loc": {
+// CHECK-NEXT:             "offset": 1976,
 // CHECK-NEXT:             "col": 3,
 // CHECK-NEXT:             "tokLen": 1
 // CHECK-NEXT:            },
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 1976,
 // CHECK-NEXT:              "col": 3,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 1981,
 // CHECK-NEXT:              "col": 8,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -4190,10 +4569,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:          "kind": "CompoundStmt",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 1980,
 // CHECK-NEXT:            "col": 7,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 1981,
 // CHECK-NEXT:            "col": 8,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -4206,11 +4587,13 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "kind": "LambdaExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1986,
 // CHECK-NEXT:          "line": 106,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 2001,
 // CHECK-NEXT:          "col": 18,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -4224,15 +4607,18 @@ void TestNonADLCall3() {
 // CHECK-NEXT:          "id": "0x{{.*}}",
 // CHECK-NEXT:          "kind": "CXXRecordDecl",
 // CHECK-NEXT:          "loc": {
+// CHECK-NEXT:           "offset": 1986,
 // CHECK-NEXT:           "col": 3,
 // CHECK-NEXT:           "tokLen": 1
 // CHECK-NEXT:          },
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 1986,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 1986,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -4282,15 +4668,18 @@ void TestNonADLCall3() {
 // CHECK-NEXT:            "id": "0x{{.*}}",
 // CHECK-NEXT:            "kind": "CXXMethodDecl",
 // CHECK-NEXT:            "loc": {
+// CHECK-NEXT:             "offset": 1986,
 // CHECK-NEXT:             "col": 3,
 // CHECK-NEXT:             "tokLen": 1
 // CHECK-NEXT:            },
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 1999,
 // CHECK-NEXT:              "col": 16,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 2001,
 // CHECK-NEXT:              "col": 18,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -4306,15 +4695,18 @@ void TestNonADLCall3() {
 // CHECK-NEXT:              "id": "0x{{.*}}",
 // CHECK-NEXT:              "kind": "ParmVarDecl",
 // CHECK-NEXT:              "loc": {
+// CHECK-NEXT:               "offset": 1993,
 // CHECK-NEXT:               "col": 10,
 // CHECK-NEXT:               "tokLen": 1
 // CHECK-NEXT:              },
 // CHECK-NEXT:              "range": {
 // CHECK-NEXT:               "begin": {
+// CHECK-NEXT:                "offset": 1989,
 // CHECK-NEXT:                "col": 6,
 // CHECK-NEXT:                "tokLen": 3
 // CHECK-NEXT:               },
 // CHECK-NEXT:               "end": {
+// CHECK-NEXT:                "offset": 1993,
 // CHECK-NEXT:                "col": 10,
 // CHECK-NEXT:                "tokLen": 1
 // CHECK-NEXT:               }
@@ -4329,10 +4721,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:              "kind": "CompoundStmt",
 // CHECK-NEXT:              "range": {
 // CHECK-NEXT:               "begin": {
+// CHECK-NEXT:                "offset": 2000,
 // CHECK-NEXT:                "col": 17,
 // CHECK-NEXT:                "tokLen": 1
 // CHECK-NEXT:               },
 // CHECK-NEXT:               "end": {
+// CHECK-NEXT:                "offset": 2001,
 // CHECK-NEXT:                "col": 18,
 // CHECK-NEXT:                "tokLen": 1
 // CHECK-NEXT:               }
@@ -4344,15 +4738,18 @@ void TestNonADLCall3() {
 // CHECK-NEXT:            "id": "0x{{.*}}",
 // CHECK-NEXT:            "kind": "CXXConversionDecl",
 // CHECK-NEXT:            "loc": {
+// CHECK-NEXT:             "offset": 1986,
 // CHECK-NEXT:             "col": 3,
 // CHECK-NEXT:             "tokLen": 1
 // CHECK-NEXT:            },
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 1986,
 // CHECK-NEXT:              "col": 3,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 2001,
 // CHECK-NEXT:              "col": 18,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -4369,15 +4766,18 @@ void TestNonADLCall3() {
 // CHECK-NEXT:            "id": "0x{{.*}}",
 // CHECK-NEXT:            "kind": "CXXMethodDecl",
 // CHECK-NEXT:            "loc": {
+// CHECK-NEXT:             "offset": 1986,
 // CHECK-NEXT:             "col": 3,
 // CHECK-NEXT:             "tokLen": 1
 // CHECK-NEXT:            },
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 1986,
 // CHECK-NEXT:              "col": 3,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 2001,
 // CHECK-NEXT:              "col": 18,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -4395,15 +4795,18 @@ void TestNonADLCall3() {
 // CHECK-NEXT:              "id": "0x{{.*}}",
 // CHECK-NEXT:              "kind": "ParmVarDecl",
 // CHECK-NEXT:              "loc": {
+// CHECK-NEXT:               "offset": 1993,
 // CHECK-NEXT:               "col": 10,
 // CHECK-NEXT:               "tokLen": 1
 // CHECK-NEXT:              },
 // CHECK-NEXT:              "range": {
 // CHECK-NEXT:               "begin": {
+// CHECK-NEXT:                "offset": 1989,
 // CHECK-NEXT:                "col": 6,
 // CHECK-NEXT:                "tokLen": 3
 // CHECK-NEXT:               },
 // CHECK-NEXT:               "end": {
+// CHECK-NEXT:                "offset": 1993,
 // CHECK-NEXT:                "col": 10,
 // CHECK-NEXT:                "tokLen": 1
 // CHECK-NEXT:               }
@@ -4422,10 +4825,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:          "kind": "CompoundStmt",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 2000,
 // CHECK-NEXT:            "col": 17,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 2001,
 // CHECK-NEXT:            "col": 18,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -4438,11 +4843,13 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "kind": "LambdaExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 2006,
 // CHECK-NEXT:          "line": 107,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 2013,
 // CHECK-NEXT:          "col": 10,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -4456,15 +4863,18 @@ void TestNonADLCall3() {
 // CHECK-NEXT:          "id": "0x{{.*}}",
 // CHECK-NEXT:          "kind": "CXXRecordDecl",
 // CHECK-NEXT:          "loc": {
+// CHECK-NEXT:           "offset": 2006,
 // CHECK-NEXT:           "col": 3,
 // CHECK-NEXT:           "tokLen": 1
 // CHECK-NEXT:          },
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 2006,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 2006,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -4510,15 +4920,18 @@ void TestNonADLCall3() {
 // CHECK-NEXT:            "id": "0x{{.*}}",
 // CHECK-NEXT:            "kind": "CXXMethodDecl",
 // CHECK-NEXT:            "loc": {
+// CHECK-NEXT:             "offset": 2006,
 // CHECK-NEXT:             "col": 3,
 // CHECK-NEXT:             "tokLen": 1
 // CHECK-NEXT:            },
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 2011,
 // CHECK-NEXT:              "col": 8,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 2013,
 // CHECK-NEXT:              "col": 10,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -4534,10 +4947,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:              "kind": "CompoundStmt",
 // CHECK-NEXT:              "range": {
 // CHECK-NEXT:               "begin": {
+// CHECK-NEXT:                "offset": 2012,
 // CHECK-NEXT:                "col": 9,
 // CHECK-NEXT:                "tokLen": 1
 // CHECK-NEXT:               },
 // CHECK-NEXT:               "end": {
+// CHECK-NEXT:                "offset": 2013,
 // CHECK-NEXT:                "col": 10,
 // CHECK-NEXT:                "tokLen": 1
 // CHECK-NEXT:               }
@@ -4549,15 +4964,18 @@ void TestNonADLCall3() {
 // CHECK-NEXT:            "id": "0x{{.*}}",
 // CHECK-NEXT:            "kind": "FieldDecl",
 // CHECK-NEXT:            "loc": {
+// CHECK-NEXT:             "offset": 2007,
 // CHECK-NEXT:             "col": 4,
 // CHECK-NEXT:             "tokLen": 1
 // CHECK-NEXT:            },
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 2007,
 // CHECK-NEXT:              "col": 4,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 2007,
 // CHECK-NEXT:              "col": 4,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -4574,10 +4992,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:          "kind": "ParenListExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 2007,
 // CHECK-NEXT:            "col": 4,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 2007,
 // CHECK-NEXT:            "col": 4,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -4592,10 +5012,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:            "kind": "DeclRefExpr",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 2007,
 // CHECK-NEXT:              "col": 4,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 2007,
 // CHECK-NEXT:              "col": 4,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -4620,10 +5042,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:          "kind": "CompoundStmt",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 2012,
 // CHECK-NEXT:            "col": 9,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 2013,
 // CHECK-NEXT:            "col": 10,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -4636,11 +5060,13 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "kind": "LambdaExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 2018,
 // CHECK-NEXT:          "line": 108,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 2022,
 // CHECK-NEXT:          "col": 7,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -4654,15 +5080,18 @@ void TestNonADLCall3() {
 // CHECK-NEXT:          "id": "0x{{.*}}",
 // CHECK-NEXT:          "kind": "CXXRecordDecl",
 // CHECK-NEXT:          "loc": {
+// CHECK-NEXT:           "offset": 2018,
 // CHECK-NEXT:           "col": 3,
 // CHECK-NEXT:           "tokLen": 1
 // CHECK-NEXT:          },
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 2018,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 2018,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -4712,15 +5141,18 @@ void TestNonADLCall3() {
 // CHECK-NEXT:            "id": "0x{{.*}}",
 // CHECK-NEXT:            "kind": "CXXMethodDecl",
 // CHECK-NEXT:            "loc": {
+// CHECK-NEXT:             "offset": 2018,
 // CHECK-NEXT:             "col": 3,
 // CHECK-NEXT:             "tokLen": 1
 // CHECK-NEXT:            },
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 2020,
 // CHECK-NEXT:              "col": 5,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 2022,
 // CHECK-NEXT:              "col": 7,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -4736,10 +5168,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:              "kind": "CompoundStmt",
 // CHECK-NEXT:              "range": {
 // CHECK-NEXT:               "begin": {
+// CHECK-NEXT:                "offset": 2021,
 // CHECK-NEXT:                "col": 6,
 // CHECK-NEXT:                "tokLen": 1
 // CHECK-NEXT:               },
 // CHECK-NEXT:               "end": {
+// CHECK-NEXT:                "offset": 2022,
 // CHECK-NEXT:                "col": 7,
 // CHECK-NEXT:                "tokLen": 1
 // CHECK-NEXT:               }
@@ -4754,10 +5188,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:          "kind": "CompoundStmt",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 2021,
 // CHECK-NEXT:            "col": 6,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 2022,
 // CHECK-NEXT:            "col": 7,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -4770,11 +5206,13 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "kind": "LambdaExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 2027,
 // CHECK-NEXT:          "line": 109,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 2043,
 // CHECK-NEXT:          "col": 19,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -4788,15 +5226,18 @@ void TestNonADLCall3() {
 // CHECK-NEXT:          "id": "0x{{.*}}",
 // CHECK-NEXT:          "kind": "CXXRecordDecl",
 // CHECK-NEXT:          "loc": {
+// CHECK-NEXT:           "offset": 2027,
 // CHECK-NEXT:           "col": 3,
 // CHECK-NEXT:           "tokLen": 1
 // CHECK-NEXT:          },
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 2027,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 2027,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -4846,15 +5287,18 @@ void TestNonADLCall3() {
 // CHECK-NEXT:            "id": "0x{{.*}}",
 // CHECK-NEXT:            "kind": "CXXMethodDecl",
 // CHECK-NEXT:            "loc": {
+// CHECK-NEXT:             "offset": 2027,
 // CHECK-NEXT:             "col": 3,
 // CHECK-NEXT:             "tokLen": 1
 // CHECK-NEXT:            },
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 2029,
 // CHECK-NEXT:              "col": 5,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 2043,
 // CHECK-NEXT:              "col": 19,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -4870,10 +5314,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:              "kind": "CompoundStmt",
 // CHECK-NEXT:              "range": {
 // CHECK-NEXT:               "begin": {
+// CHECK-NEXT:                "offset": 2031,
 // CHECK-NEXT:                "col": 7,
 // CHECK-NEXT:                "tokLen": 1
 // CHECK-NEXT:               },
 // CHECK-NEXT:               "end": {
+// CHECK-NEXT:                "offset": 2043,
 // CHECK-NEXT:                "col": 19,
 // CHECK-NEXT:                "tokLen": 1
 // CHECK-NEXT:               }
@@ -4884,10 +5330,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:                "kind": "ReturnStmt",
 // CHECK-NEXT:                "range": {
 // CHECK-NEXT:                 "begin": {
+// CHECK-NEXT:                  "offset": 2033,
 // CHECK-NEXT:                  "col": 9,
 // CHECK-NEXT:                  "tokLen": 6
 // CHECK-NEXT:                 },
 // CHECK-NEXT:                 "end": {
+// CHECK-NEXT:                  "offset": 2040,
 // CHECK-NEXT:                  "col": 16,
 // CHECK-NEXT:                  "tokLen": 1
 // CHECK-NEXT:                 }
@@ -4898,10 +5346,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:                  "kind": "DeclRefExpr",
 // CHECK-NEXT:                  "range": {
 // CHECK-NEXT:                   "begin": {
+// CHECK-NEXT:                    "offset": 2040,
 // CHECK-NEXT:                    "col": 16,
 // CHECK-NEXT:                    "tokLen": 1
 // CHECK-NEXT:                   },
 // CHECK-NEXT:                   "end": {
+// CHECK-NEXT:                    "offset": 2040,
 // CHECK-NEXT:                    "col": 16,
 // CHECK-NEXT:                    "tokLen": 1
 // CHECK-NEXT:                   }
@@ -4932,10 +5382,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:          "kind": "CompoundStmt",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 2031,
 // CHECK-NEXT:            "col": 7,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 2043,
 // CHECK-NEXT:            "col": 19,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -4946,10 +5398,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:            "kind": "ReturnStmt",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 2033,
 // CHECK-NEXT:              "col": 9,
 // CHECK-NEXT:              "tokLen": 6
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 2040,
 // CHECK-NEXT:              "col": 16,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -4960,10 +5414,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:              "kind": "DeclRefExpr",
 // CHECK-NEXT:              "range": {
 // CHECK-NEXT:               "begin": {
+// CHECK-NEXT:                "offset": 2040,
 // CHECK-NEXT:                "col": 16,
 // CHECK-NEXT:                "tokLen": 1
 // CHECK-NEXT:               },
 // CHECK-NEXT:               "end": {
+// CHECK-NEXT:                "offset": 2040,
 // CHECK-NEXT:                "col": 16,
 // CHECK-NEXT:                "tokLen": 1
 // CHECK-NEXT:               }
@@ -4992,11 +5448,13 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "kind": "LambdaExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 2048,
 // CHECK-NEXT:          "line": 110,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 2052,
 // CHECK-NEXT:          "col": 7,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -5010,15 +5468,18 @@ void TestNonADLCall3() {
 // CHECK-NEXT:          "id": "0x{{.*}}",
 // CHECK-NEXT:          "kind": "CXXRecordDecl",
 // CHECK-NEXT:          "loc": {
+// CHECK-NEXT:           "offset": 2048,
 // CHECK-NEXT:           "col": 3,
 // CHECK-NEXT:           "tokLen": 1
 // CHECK-NEXT:          },
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 2048,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 2048,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -5068,15 +5529,18 @@ void TestNonADLCall3() {
 // CHECK-NEXT:            "id": "0x{{.*}}",
 // CHECK-NEXT:            "kind": "CXXMethodDecl",
 // CHECK-NEXT:            "loc": {
+// CHECK-NEXT:             "offset": 2048,
 // CHECK-NEXT:             "col": 3,
 // CHECK-NEXT:             "tokLen": 1
 // CHECK-NEXT:            },
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 2050,
 // CHECK-NEXT:              "col": 5,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 2052,
 // CHECK-NEXT:              "col": 7,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -5092,10 +5556,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:              "kind": "CompoundStmt",
 // CHECK-NEXT:              "range": {
 // CHECK-NEXT:               "begin": {
+// CHECK-NEXT:                "offset": 2051,
 // CHECK-NEXT:                "col": 6,
 // CHECK-NEXT:                "tokLen": 1
 // CHECK-NEXT:               },
 // CHECK-NEXT:               "end": {
+// CHECK-NEXT:                "offset": 2052,
 // CHECK-NEXT:                "col": 7,
 // CHECK-NEXT:                "tokLen": 1
 // CHECK-NEXT:               }
@@ -5110,10 +5576,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:          "kind": "CompoundStmt",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 2051,
 // CHECK-NEXT:            "col": 6,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 2052,
 // CHECK-NEXT:            "col": 7,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -5126,11 +5594,13 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "kind": "LambdaExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 2057,
 // CHECK-NEXT:          "line": 111,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 2073,
 // CHECK-NEXT:          "col": 19,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -5144,15 +5614,18 @@ void TestNonADLCall3() {
 // CHECK-NEXT:          "id": "0x{{.*}}",
 // CHECK-NEXT:          "kind": "CXXRecordDecl",
 // CHECK-NEXT:          "loc": {
+// CHECK-NEXT:           "offset": 2057,
 // CHECK-NEXT:           "col": 3,
 // CHECK-NEXT:           "tokLen": 1
 // CHECK-NEXT:          },
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 2057,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 2057,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -5202,15 +5675,18 @@ void TestNonADLCall3() {
 // CHECK-NEXT:            "id": "0x{{.*}}",
 // CHECK-NEXT:            "kind": "CXXMethodDecl",
 // CHECK-NEXT:            "loc": {
+// CHECK-NEXT:             "offset": 2057,
 // CHECK-NEXT:             "col": 3,
 // CHECK-NEXT:             "tokLen": 1
 // CHECK-NEXT:            },
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 2059,
 // CHECK-NEXT:              "col": 5,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 2073,
 // CHECK-NEXT:              "col": 19,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -5226,10 +5702,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:              "kind": "CompoundStmt",
 // CHECK-NEXT:              "range": {
 // CHECK-NEXT:               "begin": {
+// CHECK-NEXT:                "offset": 2061,
 // CHECK-NEXT:                "col": 7,
 // CHECK-NEXT:                "tokLen": 1
 // CHECK-NEXT:               },
 // CHECK-NEXT:               "end": {
+// CHECK-NEXT:                "offset": 2073,
 // CHECK-NEXT:                "col": 19,
 // CHECK-NEXT:                "tokLen": 1
 // CHECK-NEXT:               }
@@ -5240,10 +5718,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:                "kind": "ReturnStmt",
 // CHECK-NEXT:                "range": {
 // CHECK-NEXT:                 "begin": {
+// CHECK-NEXT:                  "offset": 2063,
 // CHECK-NEXT:                  "col": 9,
 // CHECK-NEXT:                  "tokLen": 6
 // CHECK-NEXT:                 },
 // CHECK-NEXT:                 "end": {
+// CHECK-NEXT:                  "offset": 2070,
 // CHECK-NEXT:                  "col": 16,
 // CHECK-NEXT:                  "tokLen": 1
 // CHECK-NEXT:                 }
@@ -5254,10 +5734,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:                  "kind": "DeclRefExpr",
 // CHECK-NEXT:                  "range": {
 // CHECK-NEXT:                   "begin": {
+// CHECK-NEXT:                    "offset": 2070,
 // CHECK-NEXT:                    "col": 16,
 // CHECK-NEXT:                    "tokLen": 1
 // CHECK-NEXT:                   },
 // CHECK-NEXT:                   "end": {
+// CHECK-NEXT:                    "offset": 2070,
 // CHECK-NEXT:                    "col": 16,
 // CHECK-NEXT:                    "tokLen": 1
 // CHECK-NEXT:                   }
@@ -5288,10 +5770,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:          "kind": "CompoundStmt",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 2061,
 // CHECK-NEXT:            "col": 7,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 2073,
 // CHECK-NEXT:            "col": 19,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -5302,10 +5786,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:            "kind": "ReturnStmt",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 2063,
 // CHECK-NEXT:              "col": 9,
 // CHECK-NEXT:              "tokLen": 6
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 2070,
 // CHECK-NEXT:              "col": 16,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -5316,10 +5802,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:              "kind": "DeclRefExpr",
 // CHECK-NEXT:              "range": {
 // CHECK-NEXT:               "begin": {
+// CHECK-NEXT:                "offset": 2070,
 // CHECK-NEXT:                "col": 16,
 // CHECK-NEXT:                "tokLen": 1
 // CHECK-NEXT:               },
 // CHECK-NEXT:               "end": {
+// CHECK-NEXT:                "offset": 2070,
 // CHECK-NEXT:                "col": 16,
 // CHECK-NEXT:                "tokLen": 1
 // CHECK-NEXT:               }
@@ -5348,11 +5836,13 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "kind": "LambdaExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 2078,
 // CHECK-NEXT:          "line": 112,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 2101,
 // CHECK-NEXT:          "col": 26,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -5366,15 +5856,18 @@ void TestNonADLCall3() {
 // CHECK-NEXT:          "id": "0x{{.*}}",
 // CHECK-NEXT:          "kind": "CXXRecordDecl",
 // CHECK-NEXT:          "loc": {
+// CHECK-NEXT:           "offset": 2078,
 // CHECK-NEXT:           "col": 3,
 // CHECK-NEXT:           "tokLen": 1
 // CHECK-NEXT:          },
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 2078,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 2078,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -5420,15 +5913,18 @@ void TestNonADLCall3() {
 // CHECK-NEXT:            "id": "0x{{.*}}",
 // CHECK-NEXT:            "kind": "CXXMethodDecl",
 // CHECK-NEXT:            "loc": {
+// CHECK-NEXT:             "offset": 2078,
 // CHECK-NEXT:             "col": 3,
 // CHECK-NEXT:             "tokLen": 1
 // CHECK-NEXT:            },
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 2084,
 // CHECK-NEXT:              "col": 9,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 2101,
 // CHECK-NEXT:              "col": 26,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -5444,10 +5940,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:              "kind": "CompoundStmt",
 // CHECK-NEXT:              "range": {
 // CHECK-NEXT:               "begin": {
+// CHECK-NEXT:                "offset": 2085,
 // CHECK-NEXT:                "col": 10,
 // CHECK-NEXT:                "tokLen": 1
 // CHECK-NEXT:               },
 // CHECK-NEXT:               "end": {
+// CHECK-NEXT:                "offset": 2101,
 // CHECK-NEXT:                "col": 26,
 // CHECK-NEXT:                "tokLen": 1
 // CHECK-NEXT:               }
@@ -5458,10 +5956,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:                "kind": "ReturnStmt",
 // CHECK-NEXT:                "range": {
 // CHECK-NEXT:                 "begin": {
+// CHECK-NEXT:                  "offset": 2087,
 // CHECK-NEXT:                  "col": 12,
 // CHECK-NEXT:                  "tokLen": 6
 // CHECK-NEXT:                 },
 // CHECK-NEXT:                 "end": {
+// CHECK-NEXT:                  "offset": 2098,
 // CHECK-NEXT:                  "col": 23,
 // CHECK-NEXT:                  "tokLen": 1
 // CHECK-NEXT:                 }
@@ -5472,10 +5972,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:                  "kind": "BinaryOperator",
 // CHECK-NEXT:                  "range": {
 // CHECK-NEXT:                   "begin": {
+// CHECK-NEXT:                    "offset": 2094,
 // CHECK-NEXT:                    "col": 19,
 // CHECK-NEXT:                    "tokLen": 1
 // CHECK-NEXT:                   },
 // CHECK-NEXT:                   "end": {
+// CHECK-NEXT:                    "offset": 2098,
 // CHECK-NEXT:                    "col": 23,
 // CHECK-NEXT:                    "tokLen": 1
 // CHECK-NEXT:                   }
@@ -5491,10 +5993,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:                    "kind": "ImplicitCastExpr",
 // CHECK-NEXT:                    "range": {
 // CHECK-NEXT:                     "begin": {
+// CHECK-NEXT:                      "offset": 2094,
 // CHECK-NEXT:                      "col": 19,
 // CHECK-NEXT:                      "tokLen": 1
 // CHECK-NEXT:                     },
 // CHECK-NEXT:                     "end": {
+// CHECK-NEXT:                      "offset": 2094,
 // CHECK-NEXT:                      "col": 19,
 // CHECK-NEXT:                      "tokLen": 1
 // CHECK-NEXT:                     }
@@ -5510,10 +6014,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:                      "kind": "DeclRefExpr",
 // CHECK-NEXT:                      "range": {
 // CHECK-NEXT:                       "begin": {
+// CHECK-NEXT:                        "offset": 2094,
 // CHECK-NEXT:                        "col": 19,
 // CHECK-NEXT:                        "tokLen": 1
 // CHECK-NEXT:                       },
 // CHECK-NEXT:                       "end": {
+// CHECK-NEXT:                        "offset": 2094,
 // CHECK-NEXT:                        "col": 19,
 // CHECK-NEXT:                        "tokLen": 1
 // CHECK-NEXT:                       }
@@ -5538,10 +6044,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:                    "kind": "ImplicitCastExpr",
 // CHECK-NEXT:                    "range": {
 // CHECK-NEXT:                     "begin": {
+// CHECK-NEXT:                      "offset": 2098,
 // CHECK-NEXT:                      "col": 23,
 // CHECK-NEXT:                      "tokLen": 1
 // CHECK-NEXT:                     },
 // CHECK-NEXT:                     "end": {
+// CHECK-NEXT:                      "offset": 2098,
 // CHECK-NEXT:                      "col": 23,
 // CHECK-NEXT:                      "tokLen": 1
 // CHECK-NEXT:                     }
@@ -5557,10 +6065,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:                      "kind": "DeclRefExpr",
 // CHECK-NEXT:                      "range": {
 // CHECK-NEXT:                       "begin": {
+// CHECK-NEXT:                        "offset": 2098,
 // CHECK-NEXT:                        "col": 23,
 // CHECK-NEXT:                        "tokLen": 1
 // CHECK-NEXT:                       },
 // CHECK-NEXT:                       "end": {
+// CHECK-NEXT:                        "offset": 2098,
 // CHECK-NEXT:                        "col": 23,
 // CHECK-NEXT:                        "tokLen": 1
 // CHECK-NEXT:                       }
@@ -5592,15 +6102,18 @@ void TestNonADLCall3() {
 // CHECK-NEXT:            "id": "0x{{.*}}",
 // CHECK-NEXT:            "kind": "FieldDecl",
 // CHECK-NEXT:            "loc": {
+// CHECK-NEXT:             "offset": 2079,
 // CHECK-NEXT:             "col": 4,
 // CHECK-NEXT:             "tokLen": 1
 // CHECK-NEXT:            },
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 2079,
 // CHECK-NEXT:              "col": 4,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 2079,
 // CHECK-NEXT:              "col": 4,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -5614,15 +6127,18 @@ void TestNonADLCall3() {
 // CHECK-NEXT:            "id": "0x{{.*}}",
 // CHECK-NEXT:            "kind": "FieldDecl",
 // CHECK-NEXT:            "loc": {
+// CHECK-NEXT:             "offset": 2083,
 // CHECK-NEXT:             "col": 8,
 // CHECK-NEXT:             "tokLen": 1
 // CHECK-NEXT:            },
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 2083,
 // CHECK-NEXT:              "col": 8,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 2083,
 // CHECK-NEXT:              "col": 8,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -5639,10 +6155,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:          "kind": "ImplicitCastExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 2079,
 // CHECK-NEXT:            "col": 4,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 2079,
 // CHECK-NEXT:            "col": 4,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -5658,10 +6176,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:            "kind": "DeclRefExpr",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 2079,
 // CHECK-NEXT:              "col": 4,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 2079,
 // CHECK-NEXT:              "col": 4,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -5686,10 +6206,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 2083,
 // CHECK-NEXT:            "col": 8,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 2083,
 // CHECK-NEXT:            "col": 8,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -5712,10 +6234,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:          "kind": "CompoundStmt",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 2085,
 // CHECK-NEXT:            "col": 10,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 2101,
 // CHECK-NEXT:            "col": 26,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -5726,10 +6250,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:            "kind": "ReturnStmt",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 2087,
 // CHECK-NEXT:              "col": 12,
 // CHECK-NEXT:              "tokLen": 6
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 2098,
 // CHECK-NEXT:              "col": 23,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -5740,10 +6266,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:              "kind": "BinaryOperator",
 // CHECK-NEXT:              "range": {
 // CHECK-NEXT:               "begin": {
+// CHECK-NEXT:                "offset": 2094,
 // CHECK-NEXT:                "col": 19,
 // CHECK-NEXT:                "tokLen": 1
 // CHECK-NEXT:               },
 // CHECK-NEXT:               "end": {
+// CHECK-NEXT:                "offset": 2098,
 // CHECK-NEXT:                "col": 23,
 // CHECK-NEXT:                "tokLen": 1
 // CHECK-NEXT:               }
@@ -5759,10 +6287,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:                "kind": "ImplicitCastExpr",
 // CHECK-NEXT:                "range": {
 // CHECK-NEXT:                 "begin": {
+// CHECK-NEXT:                  "offset": 2094,
 // CHECK-NEXT:                  "col": 19,
 // CHECK-NEXT:                  "tokLen": 1
 // CHECK-NEXT:                 },
 // CHECK-NEXT:                 "end": {
+// CHECK-NEXT:                  "offset": 2094,
 // CHECK-NEXT:                  "col": 19,
 // CHECK-NEXT:                  "tokLen": 1
 // CHECK-NEXT:                 }
@@ -5778,10 +6308,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:                  "kind": "DeclRefExpr",
 // CHECK-NEXT:                  "range": {
 // CHECK-NEXT:                   "begin": {
+// CHECK-NEXT:                    "offset": 2094,
 // CHECK-NEXT:                    "col": 19,
 // CHECK-NEXT:                    "tokLen": 1
 // CHECK-NEXT:                   },
 // CHECK-NEXT:                   "end": {
+// CHECK-NEXT:                    "offset": 2094,
 // CHECK-NEXT:                    "col": 19,
 // CHECK-NEXT:                    "tokLen": 1
 // CHECK-NEXT:                   }
@@ -5806,10 +6338,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:                "kind": "ImplicitCastExpr",
 // CHECK-NEXT:                "range": {
 // CHECK-NEXT:                 "begin": {
+// CHECK-NEXT:                  "offset": 2098,
 // CHECK-NEXT:                  "col": 23,
 // CHECK-NEXT:                  "tokLen": 1
 // CHECK-NEXT:                 },
 // CHECK-NEXT:                 "end": {
+// CHECK-NEXT:                  "offset": 2098,
 // CHECK-NEXT:                  "col": 23,
 // CHECK-NEXT:                  "tokLen": 1
 // CHECK-NEXT:                 }
@@ -5825,10 +6359,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:                  "kind": "DeclRefExpr",
 // CHECK-NEXT:                  "range": {
 // CHECK-NEXT:                   "begin": {
+// CHECK-NEXT:                    "offset": 2098,
 // CHECK-NEXT:                    "col": 23,
 // CHECK-NEXT:                    "tokLen": 1
 // CHECK-NEXT:                   },
 // CHECK-NEXT:                   "end": {
+// CHECK-NEXT:                    "offset": 2098,
 // CHECK-NEXT:                    "col": 23,
 // CHECK-NEXT:                    "tokLen": 1
 // CHECK-NEXT:                   }
@@ -5861,11 +6397,13 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "kind": "LambdaExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 2106,
 // CHECK-NEXT:          "line": 113,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 2121,
 // CHECK-NEXT:          "col": 18,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -5879,15 +6417,18 @@ void TestNonADLCall3() {
 // CHECK-NEXT:          "id": "0x{{.*}}",
 // CHECK-NEXT:          "kind": "CXXRecordDecl",
 // CHECK-NEXT:          "loc": {
+// CHECK-NEXT:           "offset": 2106,
 // CHECK-NEXT:           "col": 3,
 // CHECK-NEXT:           "tokLen": 1
 // CHECK-NEXT:          },
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 2106,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 2106,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -5933,15 +6474,18 @@ void TestNonADLCall3() {
 // CHECK-NEXT:            "id": "0x{{.*}}",
 // CHECK-NEXT:            "kind": "CXXMethodDecl",
 // CHECK-NEXT:            "loc": {
+// CHECK-NEXT:             "offset": 2106,
 // CHECK-NEXT:             "col": 3,
 // CHECK-NEXT:             "tokLen": 1
 // CHECK-NEXT:            },
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 2119,
 // CHECK-NEXT:              "col": 16,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 2121,
 // CHECK-NEXT:              "col": 18,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -5957,10 +6501,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:              "kind": "CompoundStmt",
 // CHECK-NEXT:              "range": {
 // CHECK-NEXT:               "begin": {
+// CHECK-NEXT:                "offset": 2120,
 // CHECK-NEXT:                "col": 17,
 // CHECK-NEXT:                "tokLen": 1
 // CHECK-NEXT:               },
 // CHECK-NEXT:               "end": {
+// CHECK-NEXT:                "offset": 2121,
 // CHECK-NEXT:                "col": 18,
 // CHECK-NEXT:                "tokLen": 1
 // CHECK-NEXT:               }
@@ -5972,15 +6518,18 @@ void TestNonADLCall3() {
 // CHECK-NEXT:            "id": "0x{{.*}}",
 // CHECK-NEXT:            "kind": "FieldDecl",
 // CHECK-NEXT:            "loc": {
+// CHECK-NEXT:             "offset": 2107,
 // CHECK-NEXT:             "col": 4,
 // CHECK-NEXT:             "tokLen": 1
 // CHECK-NEXT:            },
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 2107,
 // CHECK-NEXT:              "col": 4,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 2107,
 // CHECK-NEXT:              "col": 4,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -5994,15 +6543,18 @@ void TestNonADLCall3() {
 // CHECK-NEXT:            "id": "0x{{.*}}",
 // CHECK-NEXT:            "kind": "FieldDecl",
 // CHECK-NEXT:            "loc": {
+// CHECK-NEXT:             "offset": 2113,
 // CHECK-NEXT:             "col": 10,
 // CHECK-NEXT:             "tokLen": 1
 // CHECK-NEXT:            },
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 2113,
 // CHECK-NEXT:              "col": 10,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 2113,
 // CHECK-NEXT:              "col": 10,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -6020,10 +6572,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:          "kind": "ParenListExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 2107,
 // CHECK-NEXT:            "col": 4,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 2107,
 // CHECK-NEXT:            "col": 4,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -6038,10 +6592,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:            "kind": "DeclRefExpr",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 2107,
 // CHECK-NEXT:              "col": 4,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 2107,
 // CHECK-NEXT:              "col": 4,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -6066,10 +6622,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:          "kind": "IntegerLiteral",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 2117,
 // CHECK-NEXT:            "col": 14,
 // CHECK-NEXT:            "tokLen": 2
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 2117,
 // CHECK-NEXT:            "col": 14,
 // CHECK-NEXT:            "tokLen": 2
 // CHECK-NEXT:           }
@@ -6085,10 +6643,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:          "kind": "CompoundStmt",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 2120,
 // CHECK-NEXT:            "col": 17,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 2121,
 // CHECK-NEXT:            "col": 18,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -6101,11 +6661,13 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "kind": "LambdaExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 2126,
 // CHECK-NEXT:          "line": 114,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 2142,
 // CHECK-NEXT:          "col": 19,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -6119,15 +6681,18 @@ void TestNonADLCall3() {
 // CHECK-NEXT:          "id": "0x{{.*}}",
 // CHECK-NEXT:          "kind": "CXXRecordDecl",
 // CHECK-NEXT:          "loc": {
+// CHECK-NEXT:           "offset": 2126,
 // CHECK-NEXT:           "col": 3,
 // CHECK-NEXT:           "tokLen": 1
 // CHECK-NEXT:          },
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 2126,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 2126,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -6177,15 +6742,18 @@ void TestNonADLCall3() {
 // CHECK-NEXT:            "id": "0x{{.*}}",
 // CHECK-NEXT:            "kind": "CXXMethodDecl",
 // CHECK-NEXT:            "loc": {
+// CHECK-NEXT:             "offset": 2126,
 // CHECK-NEXT:             "col": 3,
 // CHECK-NEXT:             "tokLen": 1
 // CHECK-NEXT:            },
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 2131,
 // CHECK-NEXT:              "col": 8,
 // CHECK-NEXT:              "tokLen": 9
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 2142,
 // CHECK-NEXT:              "col": 19,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -6202,10 +6770,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:              "kind": "CompoundStmt",
 // CHECK-NEXT:              "range": {
 // CHECK-NEXT:               "begin": {
+// CHECK-NEXT:                "offset": 2141,
 // CHECK-NEXT:                "col": 18,
 // CHECK-NEXT:                "tokLen": 1
 // CHECK-NEXT:               },
 // CHECK-NEXT:               "end": {
+// CHECK-NEXT:                "offset": 2142,
 // CHECK-NEXT:                "col": 19,
 // CHECK-NEXT:                "tokLen": 1
 // CHECK-NEXT:               }
@@ -6217,15 +6787,18 @@ void TestNonADLCall3() {
 // CHECK-NEXT:            "id": "0x{{.*}}",
 // CHECK-NEXT:            "kind": "CXXConversionDecl",
 // CHECK-NEXT:            "loc": {
+// CHECK-NEXT:             "offset": 2126,
 // CHECK-NEXT:             "col": 3,
 // CHECK-NEXT:             "tokLen": 1
 // CHECK-NEXT:            },
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 2126,
 // CHECK-NEXT:              "col": 3,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 2142,
 // CHECK-NEXT:              "col": 19,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -6242,15 +6815,18 @@ void TestNonADLCall3() {
 // CHECK-NEXT:            "id": "0x{{.*}}",
 // CHECK-NEXT:            "kind": "CXXMethodDecl",
 // CHECK-NEXT:            "loc": {
+// CHECK-NEXT:             "offset": 2126,
 // CHECK-NEXT:             "col": 3,
 // CHECK-NEXT:             "tokLen": 1
 // CHECK-NEXT:            },
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 2126,
 // CHECK-NEXT:              "col": 3,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 2142,
 // CHECK-NEXT:              "col": 19,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -6270,10 +6846,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:          "kind": "CompoundStmt",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 2141,
 // CHECK-NEXT:            "col": 18,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 2142,
 // CHECK-NEXT:            "col": 19,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -6286,11 +6864,13 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "kind": "LambdaExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 2147,
 // CHECK-NEXT:          "line": 115,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 2161,
 // CHECK-NEXT:          "col": 17,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -6304,15 +6884,18 @@ void TestNonADLCall3() {
 // CHECK-NEXT:          "id": "0x{{.*}}",
 // CHECK-NEXT:          "kind": "CXXRecordDecl",
 // CHECK-NEXT:          "loc": {
+// CHECK-NEXT:           "offset": 2147,
 // CHECK-NEXT:           "col": 3,
 // CHECK-NEXT:           "tokLen": 1
 // CHECK-NEXT:          },
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 2147,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 2147,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -6362,15 +6945,18 @@ void TestNonADLCall3() {
 // CHECK-NEXT:            "id": "0x{{.*}}",
 // CHECK-NEXT:            "kind": "CXXMethodDecl",
 // CHECK-NEXT:            "loc": {
+// CHECK-NEXT:             "offset": 2147,
 // CHECK-NEXT:             "col": 3,
 // CHECK-NEXT:             "tokLen": 1
 // CHECK-NEXT:            },
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 2152,
 // CHECK-NEXT:              "col": 8,
 // CHECK-NEXT:              "tokLen": 7
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 2161,
 // CHECK-NEXT:              "col": 17,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -6386,10 +6972,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:              "kind": "CompoundStmt",
 // CHECK-NEXT:              "range": {
 // CHECK-NEXT:               "begin": {
+// CHECK-NEXT:                "offset": 2160,
 // CHECK-NEXT:                "col": 16,
 // CHECK-NEXT:                "tokLen": 1
 // CHECK-NEXT:               },
 // CHECK-NEXT:               "end": {
+// CHECK-NEXT:                "offset": 2161,
 // CHECK-NEXT:                "col": 17,
 // CHECK-NEXT:                "tokLen": 1
 // CHECK-NEXT:               }
@@ -6401,15 +6989,18 @@ void TestNonADLCall3() {
 // CHECK-NEXT:            "id": "0x{{.*}}",
 // CHECK-NEXT:            "kind": "CXXConversionDecl",
 // CHECK-NEXT:            "loc": {
+// CHECK-NEXT:             "offset": 2147,
 // CHECK-NEXT:             "col": 3,
 // CHECK-NEXT:             "tokLen": 1
 // CHECK-NEXT:            },
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 2147,
 // CHECK-NEXT:              "col": 3,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 2161,
 // CHECK-NEXT:              "col": 17,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -6426,15 +7017,18 @@ void TestNonADLCall3() {
 // CHECK-NEXT:            "id": "0x{{.*}}",
 // CHECK-NEXT:            "kind": "CXXMethodDecl",
 // CHECK-NEXT:            "loc": {
+// CHECK-NEXT:             "offset": 2147,
 // CHECK-NEXT:             "col": 3,
 // CHECK-NEXT:             "tokLen": 1
 // CHECK-NEXT:            },
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 2147,
 // CHECK-NEXT:              "col": 3,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 2161,
 // CHECK-NEXT:              "col": 17,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -6454,10 +7048,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:          "kind": "CompoundStmt",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 2160,
 // CHECK-NEXT:            "col": 16,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 2161,
 // CHECK-NEXT:            "col": 17,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -6470,11 +7066,13 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "kind": "LambdaExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 2166,
 // CHECK-NEXT:          "line": 116,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 2181,
 // CHECK-NEXT:          "col": 18,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -6488,15 +7086,18 @@ void TestNonADLCall3() {
 // CHECK-NEXT:          "id": "0x{{.*}}",
 // CHECK-NEXT:          "kind": "CXXRecordDecl",
 // CHECK-NEXT:          "loc": {
+// CHECK-NEXT:           "offset": 2166,
 // CHECK-NEXT:           "col": 3,
 // CHECK-NEXT:           "tokLen": 1
 // CHECK-NEXT:          },
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 2166,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 2166,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -6546,15 +7147,18 @@ void TestNonADLCall3() {
 // CHECK-NEXT:            "id": "0x{{.*}}",
 // CHECK-NEXT:            "kind": "CXXMethodDecl",
 // CHECK-NEXT:            "loc": {
+// CHECK-NEXT:             "offset": 2166,
 // CHECK-NEXT:             "col": 3,
 // CHECK-NEXT:             "tokLen": 1
 // CHECK-NEXT:            },
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 2171,
 // CHECK-NEXT:              "col": 8,
 // CHECK-NEXT:              "tokLen": 8
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 2181,
 // CHECK-NEXT:              "col": 18,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -6570,10 +7174,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:              "kind": "CompoundStmt",
 // CHECK-NEXT:              "range": {
 // CHECK-NEXT:               "begin": {
+// CHECK-NEXT:                "offset": 2180,
 // CHECK-NEXT:                "col": 17,
 // CHECK-NEXT:                "tokLen": 1
 // CHECK-NEXT:               },
 // CHECK-NEXT:               "end": {
+// CHECK-NEXT:                "offset": 2181,
 // CHECK-NEXT:                "col": 18,
 // CHECK-NEXT:                "tokLen": 1
 // CHECK-NEXT:               }
@@ -6585,15 +7191,18 @@ void TestNonADLCall3() {
 // CHECK-NEXT:            "id": "0x{{.*}}",
 // CHECK-NEXT:            "kind": "CXXConversionDecl",
 // CHECK-NEXT:            "loc": {
+// CHECK-NEXT:             "offset": 2166,
 // CHECK-NEXT:             "col": 3,
 // CHECK-NEXT:             "tokLen": 1
 // CHECK-NEXT:            },
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 2166,
 // CHECK-NEXT:              "col": 3,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 2181,
 // CHECK-NEXT:              "col": 18,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -6610,15 +7219,18 @@ void TestNonADLCall3() {
 // CHECK-NEXT:            "id": "0x{{.*}}",
 // CHECK-NEXT:            "kind": "CXXMethodDecl",
 // CHECK-NEXT:            "loc": {
+// CHECK-NEXT:             "offset": 2166,
 // CHECK-NEXT:             "col": 3,
 // CHECK-NEXT:             "tokLen": 1
 // CHECK-NEXT:            },
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 2166,
 // CHECK-NEXT:              "col": 3,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 2181,
 // CHECK-NEXT:              "col": 18,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -6638,10 +7250,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:          "kind": "CompoundStmt",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 2180,
 // CHECK-NEXT:            "col": 17,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 2181,
 // CHECK-NEXT:            "col": 18,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -6654,11 +7268,13 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "kind": "LambdaExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 2186,
 // CHECK-NEXT:          "line": 117,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 2210,
 // CHECK-NEXT:          "col": 27,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -6672,15 +7288,18 @@ void TestNonADLCall3() {
 // CHECK-NEXT:          "id": "0x{{.*}}",
 // CHECK-NEXT:          "kind": "CXXRecordDecl",
 // CHECK-NEXT:          "loc": {
+// CHECK-NEXT:           "offset": 2186,
 // CHECK-NEXT:           "col": 3,
 // CHECK-NEXT:           "tokLen": 1
 // CHECK-NEXT:          },
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 2186,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 2186,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -6730,15 +7349,18 @@ void TestNonADLCall3() {
 // CHECK-NEXT:            "id": "0x{{.*}}",
 // CHECK-NEXT:            "kind": "CXXMethodDecl",
 // CHECK-NEXT:            "loc": {
+// CHECK-NEXT:             "offset": 2186,
 // CHECK-NEXT:             "col": 3,
 // CHECK-NEXT:             "tokLen": 1
 // CHECK-NEXT:            },
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 2194,
 // CHECK-NEXT:              "col": 11,
 // CHECK-NEXT:              "tokLen": 3
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 2210,
 // CHECK-NEXT:              "col": 27,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -6754,10 +7376,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:              "kind": "CompoundStmt",
 // CHECK-NEXT:              "range": {
 // CHECK-NEXT:               "begin": {
+// CHECK-NEXT:                "offset": 2198,
 // CHECK-NEXT:                "col": 15,
 // CHECK-NEXT:                "tokLen": 1
 // CHECK-NEXT:               },
 // CHECK-NEXT:               "end": {
+// CHECK-NEXT:                "offset": 2210,
 // CHECK-NEXT:                "col": 27,
 // CHECK-NEXT:                "tokLen": 1
 // CHECK-NEXT:               }
@@ -6768,10 +7392,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:                "kind": "ReturnStmt",
 // CHECK-NEXT:                "range": {
 // CHECK-NEXT:                 "begin": {
+// CHECK-NEXT:                  "offset": 2200,
 // CHECK-NEXT:                  "col": 17,
 // CHECK-NEXT:                  "tokLen": 6
 // CHECK-NEXT:                 },
 // CHECK-NEXT:                 "end": {
+// CHECK-NEXT:                  "offset": 2207,
 // CHECK-NEXT:                  "col": 24,
 // CHECK-NEXT:                  "tokLen": 1
 // CHECK-NEXT:                 }
@@ -6782,10 +7408,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:                  "kind": "IntegerLiteral",
 // CHECK-NEXT:                  "range": {
 // CHECK-NEXT:                   "begin": {
+// CHECK-NEXT:                    "offset": 2207,
 // CHECK-NEXT:                    "col": 24,
 // CHECK-NEXT:                    "tokLen": 1
 // CHECK-NEXT:                   },
 // CHECK-NEXT:                   "end": {
+// CHECK-NEXT:                    "offset": 2207,
 // CHECK-NEXT:                    "col": 24,
 // CHECK-NEXT:                    "tokLen": 1
 // CHECK-NEXT:                   }
@@ -6806,15 +7434,18 @@ void TestNonADLCall3() {
 // CHECK-NEXT:            "id": "0x{{.*}}",
 // CHECK-NEXT:            "kind": "CXXConversionDecl",
 // CHECK-NEXT:            "loc": {
+// CHECK-NEXT:             "offset": 2186,
 // CHECK-NEXT:             "col": 3,
 // CHECK-NEXT:             "tokLen": 1
 // CHECK-NEXT:            },
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 2186,
 // CHECK-NEXT:              "col": 3,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 2210,
 // CHECK-NEXT:              "col": 27,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -6831,15 +7462,18 @@ void TestNonADLCall3() {
 // CHECK-NEXT:            "id": "0x{{.*}}",
 // CHECK-NEXT:            "kind": "CXXMethodDecl",
 // CHECK-NEXT:            "loc": {
+// CHECK-NEXT:             "offset": 2186,
 // CHECK-NEXT:             "col": 3,
 // CHECK-NEXT:             "tokLen": 1
 // CHECK-NEXT:            },
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 2186,
 // CHECK-NEXT:              "col": 3,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 2210,
 // CHECK-NEXT:              "col": 27,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -6859,10 +7493,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:          "kind": "CompoundStmt",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 2198,
 // CHECK-NEXT:            "col": 15,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 2210,
 // CHECK-NEXT:            "col": 27,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -6873,10 +7509,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:            "kind": "ReturnStmt",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 2200,
 // CHECK-NEXT:              "col": 17,
 // CHECK-NEXT:              "tokLen": 6
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 2207,
 // CHECK-NEXT:              "col": 24,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -6887,10 +7525,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:              "kind": "IntegerLiteral",
 // CHECK-NEXT:              "range": {
 // CHECK-NEXT:               "begin": {
+// CHECK-NEXT:                "offset": 2207,
 // CHECK-NEXT:                "col": 24,
 // CHECK-NEXT:                "tokLen": 1
 // CHECK-NEXT:               },
 // CHECK-NEXT:               "end": {
+// CHECK-NEXT:                "offset": 2207,
 // CHECK-NEXT:                "col": 24,
 // CHECK-NEXT:                "tokLen": 1
 // CHECK-NEXT:               }
@@ -6912,11 +7552,13 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "kind": "CXXFoldExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 2216,
 // CHECK-NEXT:          "line": 119,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 2224,
 // CHECK-NEXT:          "col": 11,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -6931,10 +7573,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 2217,
 // CHECK-NEXT:            "col": 4,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 2217,
 // CHECK-NEXT:            "col": 4,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -6960,11 +7604,13 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "kind": "CXXFoldExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 2229,
 // CHECK-NEXT:          "line": 120,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 2237,
 // CHECK-NEXT:          "col": 11,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -6980,10 +7626,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 2236,
 // CHECK-NEXT:            "col": 10,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 2236,
 // CHECK-NEXT:            "col": 10,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -7008,11 +7656,13 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "kind": "CXXFoldExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 2242,
 // CHECK-NEXT:          "line": 121,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 2254,
 // CHECK-NEXT:          "col": 15,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -7027,10 +7677,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 2243,
 // CHECK-NEXT:            "col": 4,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 2243,
 // CHECK-NEXT:            "col": 4,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -7053,10 +7705,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 2253,
 // CHECK-NEXT:            "col": 14,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 2253,
 // CHECK-NEXT:            "col": 14,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -7086,6 +7740,7 @@ void TestNonADLCall3() {
 
 // CHECK:  "kind": "FunctionDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 2336,
 // CHECK-NEXT:   "file": "{{.*}}",
 // CHECK-NEXT:   "line": 130,
 // CHECK-NEXT:   "col": 6,
@@ -7093,10 +7748,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 2331,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 4
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 2379,
 // CHECK-NEXT:    "line": 134,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
@@ -7112,11 +7769,13 @@ void TestNonADLCall3() {
 // CHECK-NEXT:    "kind": "CompoundStmt",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 2350,
 // CHECK-NEXT:      "line": 130,
 // CHECK-NEXT:      "col": 20,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 2379,
 // CHECK-NEXT:      "line": 134,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 1
@@ -7128,11 +7787,13 @@ void TestNonADLCall3() {
 // CHECK-NEXT:      "kind": "DeclStmt",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 2354,
 // CHECK-NEXT:        "line": 131,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 2
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 2361,
 // CHECK-NEXT:        "col": 10,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -7142,15 +7803,18 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "id": "0x{{.*}}",
 // CHECK-NEXT:        "kind": "VarDecl",
 // CHECK-NEXT:        "loc": {
+// CHECK-NEXT:         "offset": 2360,
 // CHECK-NEXT:         "col": 9,
 // CHECK-NEXT:         "tokLen": 1
 // CHECK-NEXT:        },
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 2354,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 2
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 2360,
 // CHECK-NEXT:          "col": 9,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -7168,10 +7832,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:          "kind": "CXXConstructExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 2360,
 // CHECK-NEXT:            "col": 9,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 2360,
 // CHECK-NEXT:            "col": 9,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -7196,11 +7862,13 @@ void TestNonADLCall3() {
 // CHECK-NEXT:      "kind": "CallExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 2365,
 // CHECK-NEXT:        "line": 132,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 2368,
 // CHECK-NEXT:        "col": 6,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -7216,10 +7884,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 2365,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 2365,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -7235,10 +7905,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 2365,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 2365,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -7263,10 +7935,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "kind": "CXXConstructExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 2367,
 // CHECK-NEXT:          "col": 5,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 2367,
 // CHECK-NEXT:          "col": 5,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -7286,10 +7960,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:          "kind": "ImplicitCastExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 2367,
 // CHECK-NEXT:            "col": 5,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 2367,
 // CHECK-NEXT:            "col": 5,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -7306,10 +7982,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:            "kind": "DeclRefExpr",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 2367,
 // CHECK-NEXT:              "col": 5,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 2367,
 // CHECK-NEXT:              "col": 5,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -7340,11 +8018,13 @@ void TestNonADLCall3() {
 // CHECK-NEXT:      "kind": "CallExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 2373,
 // CHECK-NEXT:        "line": 133,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 2376,
 // CHECK-NEXT:        "col": 6,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -7360,10 +8040,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 2373,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 2373,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -7379,10 +8061,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 2373,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 2373,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -7407,10 +8091,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "kind": "CXXConstructExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 2375,
 // CHECK-NEXT:          "col": 5,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 2375,
 // CHECK-NEXT:          "col": 5,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -7431,10 +8117,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:          "kind": "ImplicitCastExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 2375,
 // CHECK-NEXT:            "col": 5,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 2375,
 // CHECK-NEXT:            "col": 5,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -7451,10 +8139,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:            "kind": "DeclRefExpr",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 2375,
 // CHECK-NEXT:              "col": 5,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 2375,
 // CHECK-NEXT:              "col": 5,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -7488,6 +8178,7 @@ void TestNonADLCall3() {
 
 // CHECK:  "kind": "FunctionDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 2387,
 // CHECK-NEXT:   "file": "{{.*}}",
 // CHECK-NEXT:   "line": 136,
 // CHECK-NEXT:   "col": 6,
@@ -7495,10 +8186,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 2382,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 4
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 2429,
 // CHECK-NEXT:    "line": 139,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
@@ -7514,11 +8207,13 @@ void TestNonADLCall3() {
 // CHECK-NEXT:    "kind": "CompoundStmt",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 2404,
 // CHECK-NEXT:      "line": 136,
 // CHECK-NEXT:      "col": 23,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 2429,
 // CHECK-NEXT:      "line": 139,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 1
@@ -7530,11 +8225,13 @@ void TestNonADLCall3() {
 // CHECK-NEXT:      "kind": "DeclStmt",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 2408,
 // CHECK-NEXT:        "line": 137,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 2
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 2415,
 // CHECK-NEXT:        "col": 10,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -7544,15 +8241,18 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "id": "0x{{.*}}",
 // CHECK-NEXT:        "kind": "VarDecl",
 // CHECK-NEXT:        "loc": {
+// CHECK-NEXT:         "offset": 2414,
 // CHECK-NEXT:         "col": 9,
 // CHECK-NEXT:         "tokLen": 1
 // CHECK-NEXT:        },
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 2408,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 2
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 2414,
 // CHECK-NEXT:          "col": 9,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -7570,10 +8270,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:          "kind": "CXXConstructExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 2414,
 // CHECK-NEXT:            "col": 9,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 2414,
 // CHECK-NEXT:            "col": 9,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -7598,11 +8300,13 @@ void TestNonADLCall3() {
 // CHECK-NEXT:      "kind": "CallExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 2419,
 // CHECK-NEXT:        "line": 138,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 2
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 2426,
 // CHECK-NEXT:        "col": 10,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -7617,10 +8321,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 2419,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 2
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 2423,
 // CHECK-NEXT:          "col": 7,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -7636,10 +8342,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 2419,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 2
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 2423,
 // CHECK-NEXT:            "col": 7,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -7664,10 +8372,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "kind": "CXXConstructExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 2425,
 // CHECK-NEXT:          "col": 9,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 2425,
 // CHECK-NEXT:          "col": 9,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -7687,10 +8397,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:          "kind": "ImplicitCastExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 2425,
 // CHECK-NEXT:            "col": 9,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 2425,
 // CHECK-NEXT:            "col": 9,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -7707,10 +8419,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:            "kind": "DeclRefExpr",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 2425,
 // CHECK-NEXT:              "col": 9,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 2425,
 // CHECK-NEXT:              "col": 9,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -7744,6 +8458,7 @@ void TestNonADLCall3() {
 
 // CHECK:  "kind": "FunctionDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 2437,
 // CHECK-NEXT:   "file": "{{.*}}",
 // CHECK-NEXT:   "line": 141,
 // CHECK-NEXT:   "col": 6,
@@ -7751,10 +8466,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 2432,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 4
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 2499,
 // CHECK-NEXT:    "line": 146,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
@@ -7770,11 +8487,13 @@ void TestNonADLCall3() {
 // CHECK-NEXT:    "kind": "CompoundStmt",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 2455,
 // CHECK-NEXT:      "line": 141,
 // CHECK-NEXT:      "col": 24,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 2499,
 // CHECK-NEXT:      "line": 146,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 1
@@ -7786,11 +8505,13 @@ void TestNonADLCall3() {
 // CHECK-NEXT:      "kind": "DeclStmt",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 2459,
 // CHECK-NEXT:        "line": 142,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 2
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 2466,
 // CHECK-NEXT:        "col": 10,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -7800,15 +8521,18 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "id": "0x{{.*}}",
 // CHECK-NEXT:        "kind": "VarDecl",
 // CHECK-NEXT:        "loc": {
+// CHECK-NEXT:         "offset": 2465,
 // CHECK-NEXT:         "col": 9,
 // CHECK-NEXT:         "tokLen": 1
 // CHECK-NEXT:        },
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 2459,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 2
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 2465,
 // CHECK-NEXT:          "col": 9,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -7826,10 +8550,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:          "kind": "CXXConstructExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 2465,
 // CHECK-NEXT:            "col": 9,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 2465,
 // CHECK-NEXT:            "col": 9,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -7854,11 +8580,13 @@ void TestNonADLCall3() {
 // CHECK-NEXT:      "kind": "DeclStmt",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 2470,
 // CHECK-NEXT:        "line": 143,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 5
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 2481,
 // CHECK-NEXT:        "col": 14,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -7868,15 +8596,18 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "id": "0x{{.*}}",
 // CHECK-NEXT:        "kind": "UsingDecl",
 // CHECK-NEXT:        "loc": {
+// CHECK-NEXT:         "offset": 2480,
 // CHECK-NEXT:         "col": 13,
 // CHECK-NEXT:         "tokLen": 1
 // CHECK-NEXT:        },
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 2470,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 5
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 2480,
 // CHECK-NEXT:          "col": 13,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -7890,11 +8621,13 @@ void TestNonADLCall3() {
 // CHECK-NEXT:      "kind": "CallExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 2485,
 // CHECK-NEXT:        "line": 144,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 2488,
 // CHECK-NEXT:        "col": 6,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -7909,10 +8642,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 2485,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 2485,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -7928,10 +8663,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 2485,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 2485,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -7961,10 +8698,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "kind": "CXXConstructExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 2487,
 // CHECK-NEXT:          "col": 5,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 2487,
 // CHECK-NEXT:          "col": 5,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -7984,10 +8723,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:          "kind": "ImplicitCastExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 2487,
 // CHECK-NEXT:            "col": 5,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 2487,
 // CHECK-NEXT:            "col": 5,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -8004,10 +8745,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:            "kind": "DeclRefExpr",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 2487,
 // CHECK-NEXT:              "col": 5,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 2487,
 // CHECK-NEXT:              "col": 5,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -8038,11 +8781,13 @@ void TestNonADLCall3() {
 // CHECK-NEXT:      "kind": "CallExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 2493,
 // CHECK-NEXT:        "line": 145,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 2496,
 // CHECK-NEXT:        "col": 6,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -8058,10 +8803,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 2493,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 2493,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -8077,10 +8824,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 2493,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 2493,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -8105,10 +8854,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "kind": "CXXConstructExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 2495,
 // CHECK-NEXT:          "col": 5,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 2495,
 // CHECK-NEXT:          "col": 5,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -8129,10 +8880,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:          "kind": "ImplicitCastExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 2495,
 // CHECK-NEXT:            "col": 5,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 2495,
 // CHECK-NEXT:            "col": 5,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -8149,10 +8902,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:            "kind": "DeclRefExpr",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 2495,
 // CHECK-NEXT:              "col": 5,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 2495,
 // CHECK-NEXT:              "col": 5,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -8186,6 +8941,7 @@ void TestNonADLCall3() {
 
 // CHECK:  "kind": "FunctionDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 2559,
 // CHECK-NEXT:   "file": "{{.*}}",
 // CHECK-NEXT:   "line": 150,
 // CHECK-NEXT:   "col": 6,
@@ -8193,10 +8949,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 2554,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 4
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 2594,
 // CHECK-NEXT:    "line": 153,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
@@ -8212,11 +8970,13 @@ void TestNonADLCall3() {
 // CHECK-NEXT:    "kind": "CompoundStmt",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 2577,
 // CHECK-NEXT:      "line": 150,
 // CHECK-NEXT:      "col": 24,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 2594,
 // CHECK-NEXT:      "line": 153,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 1
@@ -8228,11 +8988,13 @@ void TestNonADLCall3() {
 // CHECK-NEXT:      "kind": "DeclStmt",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 2581,
 // CHECK-NEXT:        "line": 151,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 2584,
 // CHECK-NEXT:        "col": 6,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -8242,15 +9004,18 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "id": "0x{{.*}}",
 // CHECK-NEXT:        "kind": "VarDecl",
 // CHECK-NEXT:        "loc": {
+// CHECK-NEXT:         "offset": 2583,
 // CHECK-NEXT:         "col": 5,
 // CHECK-NEXT:         "tokLen": 1
 // CHECK-NEXT:        },
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 2581,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 2583,
 // CHECK-NEXT:          "col": 5,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -8267,10 +9032,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:          "kind": "CXXConstructExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 2583,
 // CHECK-NEXT:            "col": 5,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 2583,
 // CHECK-NEXT:            "col": 5,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -8294,11 +9061,13 @@ void TestNonADLCall3() {
 // CHECK-NEXT:      "kind": "CallExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 2588,
 // CHECK-NEXT:        "line": 152,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 2591,
 // CHECK-NEXT:        "col": 6,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -8313,10 +9082,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 2588,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 2588,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -8332,10 +9103,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 2588,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 2588,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -8360,10 +9133,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:        "kind": "CXXConstructExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 2590,
 // CHECK-NEXT:          "col": 5,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 2590,
 // CHECK-NEXT:          "col": 5,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -8383,10 +9158,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:          "kind": "ImplicitCastExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 2590,
 // CHECK-NEXT:            "col": 5,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 2590,
 // CHECK-NEXT:            "col": 5,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -8402,10 +9179,12 @@ void TestNonADLCall3() {
 // CHECK-NEXT:            "kind": "DeclRefExpr",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 2590,
 // CHECK-NEXT:              "col": 5,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 2590,
 // CHECK-NEXT:              "col": 5,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }

Modified: cfe/trunk/test/AST/ast-dump-expr-json.m
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/AST/ast-dump-expr-json.m?rev=374921&r1=374920&r2=374921&view=diff
==============================================================================
--- cfe/trunk/test/AST/ast-dump-expr-json.m (original)
+++ cfe/trunk/test/AST/ast-dump-expr-json.m Tue Oct 15 10:30:19 2019
@@ -98,127 +98,140 @@ void TestObjCBoolLiteral() {
 // NOTE: CHECK lines have been autogenerated by gen_ast_dump_json_test.py
 
 
-// CHECK:  "kind": "FunctionDecl", 
+// CHECK:  "kind": "FunctionDecl",
 // CHECK-NEXT:  "loc": {
-// CHECK-NEXT:   "file": "{{.*}}", 
-// CHECK-NEXT:   "line": 54, 
-// CHECK-NEXT:   "col": 6, 
+// CHECK-NEXT:   "offset": 1506,
+// CHECK-NEXT:   "file": "{{.*}}",
+// CHECK-NEXT:   "line": 54,
+// CHECK-NEXT:   "col": 6,
 // CHECK-NEXT:   "tokLen": 14
-// CHECK-NEXT:  }, 
+// CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
-// CHECK-NEXT:    "col": 1, 
+// CHECK-NEXT:    "offset": 1501,
+// CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 4
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
-// CHECK-NEXT:    "line": 57, 
-// CHECK-NEXT:    "col": 1, 
+// CHECK-NEXT:    "offset": 1566,
+// CHECK-NEXT:    "line": 57,
+// CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   }
-// CHECK-NEXT:  }, 
-// CHECK-NEXT:  "name": "TestObjCEncode", 
+// CHECK-NEXT:  },
+// CHECK-NEXT:  "name": "TestObjCEncode",
 // CHECK-NEXT:  "type": {
 // CHECK-NEXT:   "qualType": "void ()"
-// CHECK-NEXT:  }, 
+// CHECK-NEXT:  },
 // CHECK-NEXT:  "inner": [
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "id": "0x{{.*}}", 
-// CHECK-NEXT:    "kind": "CompoundStmt", 
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "CompoundStmt",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "line": 54, 
-// CHECK-NEXT:      "col": 23, 
+// CHECK-NEXT:      "offset": 1523,
+// CHECK-NEXT:      "line": 54,
+// CHECK-NEXT:      "col": 23,
 // CHECK-NEXT:      "tokLen": 1
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "line": 57, 
-// CHECK-NEXT:      "col": 1, 
+// CHECK-NEXT:      "offset": 1566,
+// CHECK-NEXT:      "line": 57,
+// CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "inner": [
 // CHECK-NEXT:     {
-// CHECK-NEXT:      "id": "0x{{.*}}", 
-// CHECK-NEXT:      "kind": "ImplicitCastExpr", 
+// CHECK-NEXT:      "id": "0x{{.*}}",
+// CHECK-NEXT:      "kind": "ImplicitCastExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
-// CHECK-NEXT:        "line": 55, 
-// CHECK-NEXT:        "col": 3, 
+// CHECK-NEXT:        "offset": 1527,
+// CHECK-NEXT:        "line": 55,
+// CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
-// CHECK-NEXT:       }, 
+// CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
-// CHECK-NEXT:        "col": 14, 
+// CHECK-NEXT:        "offset": 1538,
+// CHECK-NEXT:        "col": 14,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
-// CHECK-NEXT:      }, 
+// CHECK-NEXT:      },
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "char *"
-// CHECK-NEXT:      }, 
-// CHECK-NEXT:      "valueCategory": "rvalue", 
-// CHECK-NEXT:      "castKind": "ArrayToPointerDecay", 
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "castKind": "ArrayToPointerDecay",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
-// CHECK-NEXT:        "id": "0x{{.*}}", 
-// CHECK-NEXT:        "kind": "ObjCEncodeExpr", 
+// CHECK-NEXT:        "id": "0x{{.*}}",
+// CHECK-NEXT:        "kind": "ObjCEncodeExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
-// CHECK-NEXT:          "col": 3, 
+// CHECK-NEXT:          "offset": 1527,
+// CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
-// CHECK-NEXT:         }, 
+// CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "col": 14, 
+// CHECK-NEXT:          "offset": 1538,
+// CHECK-NEXT:          "col": 14,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
-// CHECK-NEXT:        }, 
+// CHECK-NEXT:        },
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "char [2]"
-// CHECK-NEXT:        }, 
-// CHECK-NEXT:        "valueCategory": "lvalue", 
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "valueCategory": "lvalue",
 // CHECK-NEXT:        "encodedType": {
 // CHECK-NEXT:         "qualType": "int"
 // CHECK-NEXT:        }
 // CHECK-NEXT:       }
 // CHECK-NEXT:      ]
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     {
-// CHECK-NEXT:      "id": "0x{{.*}}", 
-// CHECK-NEXT:      "kind": "ImplicitCastExpr", 
+// CHECK-NEXT:      "id": "0x{{.*}}",
+// CHECK-NEXT:      "kind": "ImplicitCastExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
-// CHECK-NEXT:        "line": 56, 
-// CHECK-NEXT:        "col": 3, 
+// CHECK-NEXT:        "offset": 1543,
+// CHECK-NEXT:        "line": 56,
+// CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
-// CHECK-NEXT:       }, 
+// CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
-// CHECK-NEXT:        "col": 23, 
+// CHECK-NEXT:        "offset": 1563,
+// CHECK-NEXT:        "col": 23,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
-// CHECK-NEXT:      }, 
+// CHECK-NEXT:      },
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "char *"
-// CHECK-NEXT:      }, 
-// CHECK-NEXT:      "valueCategory": "rvalue", 
-// CHECK-NEXT:      "castKind": "ArrayToPointerDecay", 
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "castKind": "ArrayToPointerDecay",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
-// CHECK-NEXT:        "id": "0x{{.*}}", 
-// CHECK-NEXT:        "kind": "ObjCEncodeExpr", 
+// CHECK-NEXT:        "id": "0x{{.*}}",
+// CHECK-NEXT:        "kind": "ObjCEncodeExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
-// CHECK-NEXT:          "col": 3, 
+// CHECK-NEXT:          "offset": 1543,
+// CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
-// CHECK-NEXT:         }, 
+// CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "col": 23, 
+// CHECK-NEXT:          "offset": 1563,
+// CHECK-NEXT:          "col": 23,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
-// CHECK-NEXT:        }, 
+// CHECK-NEXT:        },
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "char [3]"
-// CHECK-NEXT:        }, 
-// CHECK-NEXT:        "valueCategory": "lvalue", 
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "valueCategory": "lvalue",
 // CHECK-NEXT:        "encodedType": {
-// CHECK-NEXT:         "desugaredQualType": "void (^)(void)", 
+// CHECK-NEXT:         "desugaredQualType": "void (^)(void)",
 // CHECK-NEXT:         "qualType": "typeof (^{ })"
 // CHECK-NEXT:        }
 // CHECK-NEXT:       }
@@ -230,129 +243,143 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT: }
 
 
-// CHECK:  "kind": "FunctionDecl", 
+// CHECK:  "kind": "FunctionDecl",
 // CHECK-NEXT:  "loc": {
-// CHECK-NEXT:   "file": "{{.*}}", 
-// CHECK-NEXT:   "line": 59, 
-// CHECK-NEXT:   "col": 6, 
+// CHECK-NEXT:   "offset": 1574,
+// CHECK-NEXT:   "file": "{{.*}}",
+// CHECK-NEXT:   "line": 59,
+// CHECK-NEXT:   "col": 6,
 // CHECK-NEXT:   "tokLen": 15
-// CHECK-NEXT:  }, 
+// CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
-// CHECK-NEXT:    "col": 1, 
+// CHECK-NEXT:    "offset": 1569,
+// CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 4
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
-// CHECK-NEXT:    "line": 62, 
-// CHECK-NEXT:    "col": 1, 
+// CHECK-NEXT:    "offset": 1632,
+// CHECK-NEXT:    "line": 62,
+// CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   }
-// CHECK-NEXT:  }, 
-// CHECK-NEXT:  "name": "TestObjCMessage", 
+// CHECK-NEXT:  },
+// CHECK-NEXT:  "name": "TestObjCMessage",
 // CHECK-NEXT:  "type": {
 // CHECK-NEXT:   "qualType": "void (I *)"
-// CHECK-NEXT:  }, 
+// CHECK-NEXT:  },
 // 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:     "line": 59, 
-// CHECK-NEXT:     "col": 25, 
+// CHECK-NEXT:     "offset": 1593,
+// CHECK-NEXT:     "line": 59,
+// CHECK-NEXT:     "col": 25,
 // CHECK-NEXT:     "tokLen": 3
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "col": 22, 
+// CHECK-NEXT:      "offset": 1590,
+// CHECK-NEXT:      "col": 22,
 // CHECK-NEXT:      "tokLen": 1
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "col": 25, 
+// CHECK-NEXT:      "offset": 1593,
+// CHECK-NEXT:      "col": 25,
 // CHECK-NEXT:      "tokLen": 3
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "isUsed": true, 
-// CHECK-NEXT:    "name": "Obj", 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "isUsed": true,
+// CHECK-NEXT:    "name": "Obj",
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "I *"
 // CHECK-NEXT:    }
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "id": "0x{{.*}}", 
-// CHECK-NEXT:    "kind": "CompoundStmt", 
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "CompoundStmt",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "col": 30, 
+// CHECK-NEXT:      "offset": 1598,
+// CHECK-NEXT:      "col": 30,
 // CHECK-NEXT:      "tokLen": 1
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "line": 62, 
-// CHECK-NEXT:      "col": 1, 
+// CHECK-NEXT:      "offset": 1632,
+// CHECK-NEXT:      "line": 62,
+// CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "inner": [
 // CHECK-NEXT:     {
-// CHECK-NEXT:      "id": "0x{{.*}}", 
-// CHECK-NEXT:      "kind": "ObjCMessageExpr", 
+// CHECK-NEXT:      "id": "0x{{.*}}",
+// CHECK-NEXT:      "kind": "ObjCMessageExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
-// CHECK-NEXT:        "line": 60, 
-// CHECK-NEXT:        "col": 3, 
+// CHECK-NEXT:        "offset": 1602,
+// CHECK-NEXT:        "line": 60,
+// CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
-// CHECK-NEXT:       }, 
+// CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
-// CHECK-NEXT:        "col": 15, 
+// CHECK-NEXT:        "offset": 1614,
+// CHECK-NEXT:        "col": 15,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
-// CHECK-NEXT:      }, 
+// CHECK-NEXT:      },
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "void"
-// CHECK-NEXT:      }, 
-// CHECK-NEXT:      "valueCategory": "rvalue", 
-// CHECK-NEXT:      "selector": "method1", 
-// CHECK-NEXT:      "receiverKind": "instance", 
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "selector": "method1",
+// CHECK-NEXT:      "receiverKind": "instance",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
-// CHECK-NEXT:        "id": "0x{{.*}}", 
-// CHECK-NEXT:        "kind": "ImplicitCastExpr", 
+// CHECK-NEXT:        "id": "0x{{.*}}",
+// CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
-// CHECK-NEXT:          "col": 4, 
+// CHECK-NEXT:          "offset": 1603,
+// CHECK-NEXT:          "col": 4,
 // CHECK-NEXT:          "tokLen": 3
-// CHECK-NEXT:         }, 
+// CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "col": 4, 
+// CHECK-NEXT:          "offset": 1603,
+// CHECK-NEXT:          "col": 4,
 // CHECK-NEXT:          "tokLen": 3
 // CHECK-NEXT:         }
-// CHECK-NEXT:        }, 
+// CHECK-NEXT:        },
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "I *"
-// CHECK-NEXT:        }, 
-// CHECK-NEXT:        "valueCategory": "rvalue", 
-// CHECK-NEXT:        "castKind": "LValueToRValue", 
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "castKind": "LValueToRValue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
-// CHECK-NEXT:          "id": "0x{{.*}}", 
-// CHECK-NEXT:          "kind": "DeclRefExpr", 
+// CHECK-NEXT:          "id": "0x{{.*}}",
+// CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
-// CHECK-NEXT:            "col": 4, 
+// CHECK-NEXT:            "offset": 1603,
+// CHECK-NEXT:            "col": 4,
 // CHECK-NEXT:            "tokLen": 3
-// CHECK-NEXT:           }, 
+// CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
-// CHECK-NEXT:            "col": 4, 
+// CHECK-NEXT:            "offset": 1603,
+// CHECK-NEXT:            "col": 4,
 // CHECK-NEXT:            "tokLen": 3
 // CHECK-NEXT:           }
-// CHECK-NEXT:          }, 
+// CHECK-NEXT:          },
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "qualType": "I *"
-// CHECK-NEXT:          }, 
-// CHECK-NEXT:          "valueCategory": "lvalue", 
+// CHECK-NEXT:          },
+// CHECK-NEXT:          "valueCategory": "lvalue",
 // CHECK-NEXT:          "referencedDecl": {
-// CHECK-NEXT:           "id": "0x{{.*}}", 
-// CHECK-NEXT:           "kind": "ParmVarDecl", 
-// CHECK-NEXT:           "name": "Obj", 
+// CHECK-NEXT:           "id": "0x{{.*}}",
+// CHECK-NEXT:           "kind": "ParmVarDecl",
+// CHECK-NEXT:           "name": "Obj",
 // CHECK-NEXT:           "type": {
 // CHECK-NEXT:            "qualType": "I *"
 // CHECK-NEXT:           }
@@ -361,27 +388,29 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:        ]
 // CHECK-NEXT:       }
 // CHECK-NEXT:      ]
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     {
-// CHECK-NEXT:      "id": "0x{{.*}}", 
-// CHECK-NEXT:      "kind": "ObjCMessageExpr", 
+// CHECK-NEXT:      "id": "0x{{.*}}",
+// CHECK-NEXT:      "kind": "ObjCMessageExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
-// CHECK-NEXT:        "line": 61, 
-// CHECK-NEXT:        "col": 3, 
+// CHECK-NEXT:        "offset": 1619,
+// CHECK-NEXT:        "line": 61,
+// CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
-// CHECK-NEXT:       }, 
+// CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
-// CHECK-NEXT:        "col": 13, 
+// CHECK-NEXT:        "offset": 1629,
+// CHECK-NEXT:        "col": 13,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
-// CHECK-NEXT:      }, 
+// CHECK-NEXT:      },
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "void"
-// CHECK-NEXT:      }, 
-// CHECK-NEXT:      "valueCategory": "rvalue", 
-// CHECK-NEXT:      "selector": "method2", 
-// CHECK-NEXT:      "receiverKind": "class", 
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "selector": "method2",
+// CHECK-NEXT:      "receiverKind": "class",
 // CHECK-NEXT:      "classType": {
 // CHECK-NEXT:       "qualType": "I"
 // CHECK-NEXT:      }
@@ -392,138 +421,153 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT: }
 
 
-// CHECK:  "kind": "FunctionDecl", 
+// CHECK:  "kind": "FunctionDecl",
 // CHECK-NEXT:  "loc": {
-// CHECK-NEXT:   "file": "{{.*}}", 
-// CHECK-NEXT:   "line": 64, 
-// CHECK-NEXT:   "col": 6, 
+// CHECK-NEXT:   "offset": 1640,
+// CHECK-NEXT:   "file": "{{.*}}",
+// CHECK-NEXT:   "line": 64,
+// CHECK-NEXT:   "col": 6,
 // CHECK-NEXT:   "tokLen": 13
-// CHECK-NEXT:  }, 
+// CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
-// CHECK-NEXT:    "col": 1, 
+// CHECK-NEXT:    "offset": 1635,
+// CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 4
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
-// CHECK-NEXT:    "line": 66, 
-// CHECK-NEXT:    "col": 1, 
+// CHECK-NEXT:    "offset": 1670,
+// CHECK-NEXT:    "line": 66,
+// CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   }
-// CHECK-NEXT:  }, 
-// CHECK-NEXT:  "name": "TestObjCBoxed", 
+// CHECK-NEXT:  },
+// CHECK-NEXT:  "name": "TestObjCBoxed",
 // CHECK-NEXT:  "type": {
 // CHECK-NEXT:   "qualType": "void ()"
-// CHECK-NEXT:  }, 
+// CHECK-NEXT:  },
 // CHECK-NEXT:  "inner": [
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "id": "0x{{.*}}", 
-// CHECK-NEXT:    "kind": "CompoundStmt", 
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "CompoundStmt",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "line": 64, 
-// CHECK-NEXT:      "col": 22, 
+// CHECK-NEXT:      "offset": 1656,
+// CHECK-NEXT:      "line": 64,
+// CHECK-NEXT:      "col": 22,
 // CHECK-NEXT:      "tokLen": 1
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "line": 66, 
-// CHECK-NEXT:      "col": 1, 
+// CHECK-NEXT:      "offset": 1670,
+// CHECK-NEXT:      "line": 66,
+// CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "inner": [
 // CHECK-NEXT:     {
-// CHECK-NEXT:      "id": "0x{{.*}}", 
-// CHECK-NEXT:      "kind": "ObjCBoxedExpr", 
+// CHECK-NEXT:      "id": "0x{{.*}}",
+// CHECK-NEXT:      "kind": "ObjCBoxedExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
-// CHECK-NEXT:        "line": 65, 
-// CHECK-NEXT:        "col": 3, 
+// CHECK-NEXT:        "offset": 1660,
+// CHECK-NEXT:        "line": 65,
+// CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
-// CHECK-NEXT:       }, 
+// CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
-// CHECK-NEXT:        "col": 10, 
+// CHECK-NEXT:        "offset": 1667,
+// CHECK-NEXT:        "col": 10,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
-// CHECK-NEXT:      }, 
+// CHECK-NEXT:      },
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "NSNumber *"
-// CHECK-NEXT:      }, 
-// CHECK-NEXT:      "valueCategory": "rvalue", 
-// CHECK-NEXT:      "selector": "numberWithInt:", 
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "selector": "numberWithInt:",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
-// CHECK-NEXT:        "id": "0x{{.*}}", 
-// CHECK-NEXT:        "kind": "ParenExpr", 
+// CHECK-NEXT:        "id": "0x{{.*}}",
+// CHECK-NEXT:        "kind": "ParenExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
-// CHECK-NEXT:          "col": 4, 
+// CHECK-NEXT:          "offset": 1661,
+// CHECK-NEXT:          "col": 4,
 // CHECK-NEXT:          "tokLen": 1
-// CHECK-NEXT:         }, 
+// CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "col": 10, 
+// CHECK-NEXT:          "offset": 1667,
+// CHECK-NEXT:          "col": 10,
 // CHECK-NEXT:          "tokLen": 1
 // 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:        "inner": [
 // CHECK-NEXT:         {
-// CHECK-NEXT:          "id": "0x{{.*}}", 
-// CHECK-NEXT:          "kind": "BinaryOperator", 
+// CHECK-NEXT:          "id": "0x{{.*}}",
+// CHECK-NEXT:          "kind": "BinaryOperator",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
-// CHECK-NEXT:            "col": 5, 
+// CHECK-NEXT:            "offset": 1662,
+// CHECK-NEXT:            "col": 5,
 // CHECK-NEXT:            "tokLen": 1
-// CHECK-NEXT:           }, 
+// CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
-// CHECK-NEXT:            "col": 9, 
+// CHECK-NEXT:            "offset": 1666,
+// CHECK-NEXT:            "col": 9,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
-// CHECK-NEXT:          }, 
+// CHECK-NEXT:          },
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "qualType": "int"
-// CHECK-NEXT:          }, 
-// CHECK-NEXT:          "valueCategory": "rvalue", 
-// CHECK-NEXT:          "opcode": "+", 
+// CHECK-NEXT:          },
+// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "opcode": "+",
 // 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": 5, 
+// CHECK-NEXT:              "offset": 1662,
+// CHECK-NEXT:              "col": 5,
 // CHECK-NEXT:              "tokLen": 1
-// CHECK-NEXT:             }, 
+// CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
-// CHECK-NEXT:              "col": 5, 
+// CHECK-NEXT:              "offset": 1662,
+// CHECK-NEXT:              "col": 5,
 // CHECK-NEXT:              "tokLen": 1
 // 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": "1"
-// CHECK-NEXT:           }, 
+// CHECK-NEXT:           },
 // 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:              "offset": 1666,
+// CHECK-NEXT:              "col": 9,
 // CHECK-NEXT:              "tokLen": 1
-// CHECK-NEXT:             }, 
+// CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
-// CHECK-NEXT:              "col": 9, 
+// CHECK-NEXT:              "offset": 1666,
+// CHECK-NEXT:              "col": 9,
 // CHECK-NEXT:              "tokLen": 1
 // 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": "1"
 // CHECK-NEXT:           }
 // CHECK-NEXT:          ]
@@ -538,104 +582,116 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT: }
 
 
-// CHECK:  "kind": "FunctionDecl", 
+// CHECK:  "kind": "FunctionDecl",
 // CHECK-NEXT:  "loc": {
-// CHECK-NEXT:   "file": "{{.*}}", 
-// CHECK-NEXT:   "line": 68, 
-// CHECK-NEXT:   "col": 6, 
+// CHECK-NEXT:   "offset": 1678,
+// CHECK-NEXT:   "file": "{{.*}}",
+// CHECK-NEXT:   "line": 68,
+// CHECK-NEXT:   "col": 6,
 // CHECK-NEXT:   "tokLen": 16
-// CHECK-NEXT:  }, 
+// CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
-// CHECK-NEXT:    "col": 1, 
+// CHECK-NEXT:    "offset": 1673,
+// CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 4
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
-// CHECK-NEXT:    "line": 70, 
-// CHECK-NEXT:    "col": 1, 
+// CHECK-NEXT:    "offset": 1729,
+// CHECK-NEXT:    "line": 70,
+// CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   }
-// CHECK-NEXT:  }, 
-// CHECK-NEXT:  "name": "TestObjCSelector", 
+// CHECK-NEXT:  },
+// CHECK-NEXT:  "name": "TestObjCSelector",
 // CHECK-NEXT:  "type": {
 // CHECK-NEXT:   "qualType": "void ()"
-// CHECK-NEXT:  }, 
+// CHECK-NEXT:  },
 // CHECK-NEXT:  "inner": [
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "id": "0x{{.*}}", 
-// CHECK-NEXT:    "kind": "CompoundStmt", 
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "CompoundStmt",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "line": 68, 
-// CHECK-NEXT:      "col": 25, 
+// CHECK-NEXT:      "offset": 1697,
+// CHECK-NEXT:      "line": 68,
+// CHECK-NEXT:      "col": 25,
 // CHECK-NEXT:      "tokLen": 1
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "line": 70, 
-// CHECK-NEXT:      "col": 1, 
+// CHECK-NEXT:      "offset": 1729,
+// CHECK-NEXT:      "line": 70,
+// CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "inner": [
 // CHECK-NEXT:     {
-// CHECK-NEXT:      "id": "0x{{.*}}", 
-// CHECK-NEXT:      "kind": "DeclStmt", 
+// CHECK-NEXT:      "id": "0x{{.*}}",
+// CHECK-NEXT:      "kind": "DeclStmt",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
-// CHECK-NEXT:        "line": 69, 
-// CHECK-NEXT:        "col": 3, 
+// CHECK-NEXT:        "offset": 1701,
+// CHECK-NEXT:        "line": 69,
+// CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 3
-// CHECK-NEXT:       }, 
+// CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
-// CHECK-NEXT:        "col": 29, 
+// CHECK-NEXT:        "offset": 1727,
+// CHECK-NEXT:        "col": 29,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
-// CHECK-NEXT:      }, 
+// CHECK-NEXT:      },
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
-// CHECK-NEXT:        "id": "0x{{.*}}", 
-// CHECK-NEXT:        "kind": "VarDecl", 
+// CHECK-NEXT:        "id": "0x{{.*}}",
+// CHECK-NEXT:        "kind": "VarDecl",
 // CHECK-NEXT:        "loc": {
-// CHECK-NEXT:         "col": 7, 
+// CHECK-NEXT:         "offset": 1705,
+// CHECK-NEXT:         "col": 7,
 // CHECK-NEXT:         "tokLen": 1
-// CHECK-NEXT:        }, 
+// CHECK-NEXT:        },
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
-// CHECK-NEXT:          "col": 3, 
+// CHECK-NEXT:          "offset": 1701,
+// CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 3
-// CHECK-NEXT:         }, 
+// CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "col": 28, 
+// CHECK-NEXT:          "offset": 1726,
+// CHECK-NEXT:          "col": 28,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
-// CHECK-NEXT:        }, 
-// CHECK-NEXT:        "name": "s", 
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "name": "s",
 // CHECK-NEXT:        "type": {
-// CHECK-NEXT:         "desugaredQualType": "SEL *", 
-// CHECK-NEXT:         "qualType": "SEL", 
+// CHECK-NEXT:         "desugaredQualType": "SEL *",
+// CHECK-NEXT:         "qualType": "SEL",
 // CHECK-NEXT:         "typeAliasDeclId": "0x{{.*}}"
-// CHECK-NEXT:        }, 
-// CHECK-NEXT:        "init": "c", 
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "init": "c",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
-// CHECK-NEXT:          "id": "0x{{.*}}", 
-// CHECK-NEXT:          "kind": "ObjCSelectorExpr", 
+// CHECK-NEXT:          "id": "0x{{.*}}",
+// CHECK-NEXT:          "kind": "ObjCSelectorExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
-// CHECK-NEXT:            "col": 11, 
+// CHECK-NEXT:            "offset": 1709,
+// CHECK-NEXT:            "col": 11,
 // CHECK-NEXT:            "tokLen": 1
-// CHECK-NEXT:           }, 
+// CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
-// CHECK-NEXT:            "col": 28, 
+// CHECK-NEXT:            "offset": 1726,
+// CHECK-NEXT:            "col": 28,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
-// CHECK-NEXT:          }, 
+// CHECK-NEXT:          },
 // CHECK-NEXT:          "type": {
-// CHECK-NEXT:           "desugaredQualType": "SEL *", 
-// CHECK-NEXT:           "qualType": "SEL", 
+// CHECK-NEXT:           "desugaredQualType": "SEL *",
+// CHECK-NEXT:           "qualType": "SEL",
 // CHECK-NEXT:           "typeAliasDeclId": "0x{{.*}}"
-// CHECK-NEXT:          }, 
-// CHECK-NEXT:          "valueCategory": "rvalue", 
+// CHECK-NEXT:          },
+// CHECK-NEXT:          "valueCategory": "rvalue",
 // CHECK-NEXT:          "selector": "dealloc"
 // CHECK-NEXT:         }
 // CHECK-NEXT:        ]
@@ -648,164 +704,180 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT: }
 
 
-// CHECK:  "kind": "FunctionDecl", 
+// CHECK:  "kind": "FunctionDecl",
 // CHECK-NEXT:  "loc": {
-// CHECK-NEXT:   "file": "{{.*}}", 
-// CHECK-NEXT:   "line": 72, 
-// CHECK-NEXT:   "col": 6, 
+// CHECK-NEXT:   "offset": 1737,
+// CHECK-NEXT:   "file": "{{.*}}",
+// CHECK-NEXT:   "line": 72,
+// CHECK-NEXT:   "col": 6,
 // CHECK-NEXT:   "tokLen": 16
-// CHECK-NEXT:  }, 
+// CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
-// CHECK-NEXT:    "col": 1, 
+// CHECK-NEXT:    "offset": 1732,
+// CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 4
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
-// CHECK-NEXT:    "line": 74, 
-// CHECK-NEXT:    "col": 1, 
+// CHECK-NEXT:    "offset": 1809,
+// CHECK-NEXT:    "line": 74,
+// CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   }
-// CHECK-NEXT:  }, 
-// CHECK-NEXT:  "name": "TestObjCProtocol", 
+// CHECK-NEXT:  },
+// CHECK-NEXT:  "name": "TestObjCProtocol",
 // CHECK-NEXT:  "type": {
 // CHECK-NEXT:   "qualType": "void (id)"
-// CHECK-NEXT:  }, 
+// CHECK-NEXT:  },
 // 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:     "line": 72, 
-// CHECK-NEXT:     "col": 26, 
+// CHECK-NEXT:     "offset": 1757,
+// CHECK-NEXT:     "line": 72,
+// CHECK-NEXT:     "col": 26,
 // CHECK-NEXT:     "tokLen": 3
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "col": 23, 
+// CHECK-NEXT:      "offset": 1754,
+// CHECK-NEXT:      "col": 23,
 // CHECK-NEXT:      "tokLen": 2
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "col": 26, 
+// CHECK-NEXT:      "offset": 1757,
+// CHECK-NEXT:      "col": 26,
 // CHECK-NEXT:      "tokLen": 3
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "isUsed": true, 
-// CHECK-NEXT:    "name": "Obj", 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "isUsed": true,
+// CHECK-NEXT:    "name": "Obj",
 // CHECK-NEXT:    "type": {
-// CHECK-NEXT:     "desugaredQualType": "id", 
-// CHECK-NEXT:     "qualType": "id", 
+// CHECK-NEXT:     "desugaredQualType": "id",
+// CHECK-NEXT:     "qualType": "id",
 // CHECK-NEXT:     "typeAliasDeclId": "0x{{.*}}"
 // CHECK-NEXT:    }
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "id": "0x{{.*}}", 
-// CHECK-NEXT:    "kind": "CompoundStmt", 
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "CompoundStmt",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "col": 31, 
+// CHECK-NEXT:      "offset": 1762,
+// CHECK-NEXT:      "col": 31,
 // CHECK-NEXT:      "tokLen": 1
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "line": 74, 
-// CHECK-NEXT:      "col": 1, 
+// CHECK-NEXT:      "offset": 1809,
+// CHECK-NEXT:      "line": 74,
+// CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "inner": [
 // CHECK-NEXT:     {
-// CHECK-NEXT:      "id": "0x{{.*}}", 
-// CHECK-NEXT:      "kind": "ObjCMessageExpr", 
+// CHECK-NEXT:      "id": "0x{{.*}}",
+// CHECK-NEXT:      "kind": "ObjCMessageExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
-// CHECK-NEXT:        "line": 73, 
-// CHECK-NEXT:        "col": 3, 
+// CHECK-NEXT:        "offset": 1766,
+// CHECK-NEXT:        "line": 73,
+// CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
-// CHECK-NEXT:       }, 
+// CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
-// CHECK-NEXT:        "col": 43, 
+// CHECK-NEXT:        "offset": 1806,
+// CHECK-NEXT:        "col": 43,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
-// CHECK-NEXT:      }, 
+// CHECK-NEXT:      },
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "int"
-// CHECK-NEXT:      }, 
-// CHECK-NEXT:      "valueCategory": "rvalue", 
-// CHECK-NEXT:      "selector": "conformsToProtocol:", 
-// CHECK-NEXT:      "receiverKind": "instance", 
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "selector": "conformsToProtocol:",
+// CHECK-NEXT:      "receiverKind": "instance",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
-// CHECK-NEXT:        "id": "0x{{.*}}", 
-// CHECK-NEXT:        "kind": "ImplicitCastExpr", 
+// CHECK-NEXT:        "id": "0x{{.*}}",
+// CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
-// CHECK-NEXT:          "col": 4, 
+// CHECK-NEXT:          "offset": 1767,
+// CHECK-NEXT:          "col": 4,
 // CHECK-NEXT:          "tokLen": 3
-// CHECK-NEXT:         }, 
+// CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "col": 4, 
+// CHECK-NEXT:          "offset": 1767,
+// CHECK-NEXT:          "col": 4,
 // CHECK-NEXT:          "tokLen": 3
 // CHECK-NEXT:         }
-// CHECK-NEXT:        }, 
+// CHECK-NEXT:        },
 // CHECK-NEXT:        "type": {
-// CHECK-NEXT:         "desugaredQualType": "id", 
-// CHECK-NEXT:         "qualType": "id", 
+// CHECK-NEXT:         "desugaredQualType": "id",
+// CHECK-NEXT:         "qualType": "id",
 // CHECK-NEXT:         "typeAliasDeclId": "0x{{.*}}"
-// CHECK-NEXT:        }, 
-// CHECK-NEXT:        "valueCategory": "rvalue", 
-// CHECK-NEXT:        "castKind": "LValueToRValue", 
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "castKind": "LValueToRValue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
-// CHECK-NEXT:          "id": "0x{{.*}}", 
-// CHECK-NEXT:          "kind": "DeclRefExpr", 
+// CHECK-NEXT:          "id": "0x{{.*}}",
+// CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
-// CHECK-NEXT:            "col": 4, 
+// CHECK-NEXT:            "offset": 1767,
+// CHECK-NEXT:            "col": 4,
 // CHECK-NEXT:            "tokLen": 3
-// CHECK-NEXT:           }, 
+// CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
-// CHECK-NEXT:            "col": 4, 
+// CHECK-NEXT:            "offset": 1767,
+// CHECK-NEXT:            "col": 4,
 // CHECK-NEXT:            "tokLen": 3
 // CHECK-NEXT:           }
-// CHECK-NEXT:          }, 
+// CHECK-NEXT:          },
 // CHECK-NEXT:          "type": {
-// CHECK-NEXT:           "desugaredQualType": "id", 
-// CHECK-NEXT:           "qualType": "id", 
+// CHECK-NEXT:           "desugaredQualType": "id",
+// CHECK-NEXT:           "qualType": "id",
 // CHECK-NEXT:           "typeAliasDeclId": "0x{{.*}}"
-// CHECK-NEXT:          }, 
-// CHECK-NEXT:          "valueCategory": "lvalue", 
+// CHECK-NEXT:          },
+// CHECK-NEXT:          "valueCategory": "lvalue",
 // CHECK-NEXT:          "referencedDecl": {
-// CHECK-NEXT:           "id": "0x{{.*}}", 
-// CHECK-NEXT:           "kind": "ParmVarDecl", 
-// CHECK-NEXT:           "name": "Obj", 
+// CHECK-NEXT:           "id": "0x{{.*}}",
+// CHECK-NEXT:           "kind": "ParmVarDecl",
+// CHECK-NEXT:           "name": "Obj",
 // CHECK-NEXT:           "type": {
-// CHECK-NEXT:            "desugaredQualType": "id", 
-// CHECK-NEXT:            "qualType": "id", 
+// CHECK-NEXT:            "desugaredQualType": "id",
+// CHECK-NEXT:            "qualType": "id",
 // CHECK-NEXT:            "typeAliasDeclId": "0x{{.*}}"
 // CHECK-NEXT:           }
 // CHECK-NEXT:          }
 // CHECK-NEXT:         }
 // CHECK-NEXT:        ]
-// CHECK-NEXT:       }, 
+// CHECK-NEXT:       },
 // CHECK-NEXT:       {
-// CHECK-NEXT:        "id": "0x{{.*}}", 
-// CHECK-NEXT:        "kind": "ObjCProtocolExpr", 
+// CHECK-NEXT:        "id": "0x{{.*}}",
+// CHECK-NEXT:        "kind": "ObjCProtocolExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
-// CHECK-NEXT:          "col": 27, 
+// CHECK-NEXT:          "offset": 1790,
+// CHECK-NEXT:          "col": 27,
 // CHECK-NEXT:          "tokLen": 1
-// CHECK-NEXT:         }, 
+// CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "col": 42, 
+// CHECK-NEXT:          "offset": 1805,
+// CHECK-NEXT:          "col": 42,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
-// CHECK-NEXT:        }, 
+// CHECK-NEXT:        },
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "Protocol *"
-// CHECK-NEXT:        }, 
-// CHECK-NEXT:        "valueCategory": "rvalue", 
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "valueCategory": "rvalue",
 // CHECK-NEXT:        "protocol": {
-// CHECK-NEXT:         "id": "0x{{.*}}", 
-// CHECK-NEXT:         "kind": "ObjCProtocolDecl", 
+// CHECK-NEXT:         "id": "0x{{.*}}",
+// CHECK-NEXT:         "kind": "ObjCProtocolDecl",
 // CHECK-NEXT:         "name": "Proto"
 // CHECK-NEXT:        }
 // CHECK-NEXT:       }
@@ -817,189 +889,209 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT: }
 
 
-// CHECK:  "kind": "FunctionDecl", 
+// CHECK:  "kind": "FunctionDecl",
 // CHECK-NEXT:  "loc": {
-// CHECK-NEXT:   "file": "{{.*}}", 
-// CHECK-NEXT:   "line": 76, 
-// CHECK-NEXT:   "col": 6, 
+// CHECK-NEXT:   "offset": 1817,
+// CHECK-NEXT:   "file": "{{.*}}",
+// CHECK-NEXT:   "line": 76,
+// CHECK-NEXT:   "col": 6,
 // CHECK-NEXT:   "tokLen": 19
-// CHECK-NEXT:  }, 
+// CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
-// CHECK-NEXT:    "col": 1, 
+// CHECK-NEXT:    "offset": 1812,
+// CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 4
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
-// CHECK-NEXT:    "line": 79, 
-// CHECK-NEXT:    "col": 1, 
+// CHECK-NEXT:    "offset": 1884,
+// CHECK-NEXT:    "line": 79,
+// CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   }
-// CHECK-NEXT:  }, 
-// CHECK-NEXT:  "name": "TestObjCPropertyRef", 
+// CHECK-NEXT:  },
+// CHECK-NEXT:  "name": "TestObjCPropertyRef",
 // CHECK-NEXT:  "type": {
 // CHECK-NEXT:   "qualType": "void (J *)"
-// CHECK-NEXT:  }, 
+// CHECK-NEXT:  },
 // 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:     "line": 76, 
-// CHECK-NEXT:     "col": 29, 
+// CHECK-NEXT:     "offset": 1840,
+// CHECK-NEXT:     "line": 76,
+// CHECK-NEXT:     "col": 29,
 // CHECK-NEXT:     "tokLen": 3
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "col": 26, 
+// CHECK-NEXT:      "offset": 1837,
+// CHECK-NEXT:      "col": 26,
 // CHECK-NEXT:      "tokLen": 1
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "col": 29, 
+// CHECK-NEXT:      "offset": 1840,
+// CHECK-NEXT:      "col": 29,
 // CHECK-NEXT:      "tokLen": 3
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "isUsed": true, 
-// CHECK-NEXT:    "name": "Obj", 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "isUsed": true,
+// CHECK-NEXT:    "name": "Obj",
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "J *"
 // CHECK-NEXT:    }
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "id": "0x{{.*}}", 
-// CHECK-NEXT:    "kind": "CompoundStmt", 
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "CompoundStmt",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "col": 34, 
+// CHECK-NEXT:      "offset": 1845,
+// CHECK-NEXT:      "col": 34,
 // CHECK-NEXT:      "tokLen": 1
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "line": 79, 
-// CHECK-NEXT:      "col": 1, 
+// CHECK-NEXT:      "offset": 1884,
+// CHECK-NEXT:      "line": 79,
+// CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "inner": [
 // CHECK-NEXT:     {
-// CHECK-NEXT:      "id": "0x{{.*}}", 
-// CHECK-NEXT:      "kind": "PseudoObjectExpr", 
+// CHECK-NEXT:      "id": "0x{{.*}}",
+// CHECK-NEXT:      "kind": "PseudoObjectExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
-// CHECK-NEXT:        "line": 77, 
-// CHECK-NEXT:        "col": 3, 
+// CHECK-NEXT:        "offset": 1849,
+// CHECK-NEXT:        "line": 77,
+// CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 3
-// CHECK-NEXT:       }, 
+// CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
-// CHECK-NEXT:        "col": 14, 
+// CHECK-NEXT:        "offset": 1860,
+// CHECK-NEXT:        "col": 14,
 // CHECK-NEXT:        "tokLen": 2
 // CHECK-NEXT:       }
-// CHECK-NEXT:      }, 
+// CHECK-NEXT:      },
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "unsigned int"
-// CHECK-NEXT:      }, 
-// CHECK-NEXT:      "valueCategory": "rvalue", 
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "valueCategory": "rvalue",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
-// CHECK-NEXT:        "id": "0x{{.*}}", 
-// CHECK-NEXT:        "kind": "BinaryOperator", 
+// CHECK-NEXT:        "id": "0x{{.*}}",
+// CHECK-NEXT:        "kind": "BinaryOperator",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
-// CHECK-NEXT:          "col": 3, 
+// CHECK-NEXT:          "offset": 1849,
+// CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 3
-// CHECK-NEXT:         }, 
+// CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "col": 14, 
+// CHECK-NEXT:          "offset": 1860,
+// CHECK-NEXT:          "col": 14,
 // CHECK-NEXT:          "tokLen": 2
 // CHECK-NEXT:         }
-// CHECK-NEXT:        }, 
+// CHECK-NEXT:        },
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int"
-// CHECK-NEXT:        }, 
-// CHECK-NEXT:        "valueCategory": "rvalue", 
-// CHECK-NEXT:        "opcode": "=", 
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "opcode": "=",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
-// CHECK-NEXT:          "id": "0x{{.*}}", 
-// CHECK-NEXT:          "kind": "ObjCPropertyRefExpr", 
+// CHECK-NEXT:          "id": "0x{{.*}}",
+// CHECK-NEXT:          "kind": "ObjCPropertyRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
-// CHECK-NEXT:            "col": 3, 
+// CHECK-NEXT:            "offset": 1849,
+// CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 3
-// CHECK-NEXT:           }, 
+// CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
-// CHECK-NEXT:            "col": 7, 
+// CHECK-NEXT:            "offset": 1853,
+// CHECK-NEXT:            "col": 7,
 // CHECK-NEXT:            "tokLen": 4
 // CHECK-NEXT:           }
-// CHECK-NEXT:          }, 
+// CHECK-NEXT:          },
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "qualType": "<pseudo-object type>"
-// CHECK-NEXT:          }, 
-// CHECK-NEXT:          "valueCategory": "lvalue", 
-// CHECK-NEXT:          "propertyKind": "explicit", 
+// CHECK-NEXT:          },
+// CHECK-NEXT:          "valueCategory": "lvalue",
+// CHECK-NEXT:          "propertyKind": "explicit",
 // CHECK-NEXT:          "property": {
-// CHECK-NEXT:           "id": "0x{{.*}}", 
-// CHECK-NEXT:           "kind": "ObjCPropertyDecl", 
+// CHECK-NEXT:           "id": "0x{{.*}}",
+// CHECK-NEXT:           "kind": "ObjCPropertyDecl",
 // CHECK-NEXT:           "name": "prop"
-// CHECK-NEXT:          }, 
-// CHECK-NEXT:          "isMessagingSetter": true, 
+// CHECK-NEXT:          },
+// CHECK-NEXT:          "isMessagingSetter": true,
 // CHECK-NEXT:          "inner": [
 // CHECK-NEXT:           {
-// CHECK-NEXT:            "id": "0x{{.*}}", 
-// CHECK-NEXT:            "kind": "OpaqueValueExpr", 
+// CHECK-NEXT:            "id": "0x{{.*}}",
+// CHECK-NEXT:            "kind": "OpaqueValueExpr",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
-// CHECK-NEXT:              "col": 3, 
+// CHECK-NEXT:              "offset": 1849,
+// CHECK-NEXT:              "col": 3,
 // CHECK-NEXT:              "tokLen": 3
-// CHECK-NEXT:             }, 
+// CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
-// CHECK-NEXT:              "col": 3, 
+// CHECK-NEXT:              "offset": 1849,
+// CHECK-NEXT:              "col": 3,
 // CHECK-NEXT:              "tokLen": 3
 // CHECK-NEXT:             }
-// CHECK-NEXT:            }, 
+// CHECK-NEXT:            },
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "qualType": "J *"
-// CHECK-NEXT:            }, 
-// CHECK-NEXT:            "valueCategory": "rvalue", 
+// CHECK-NEXT:            },
+// CHECK-NEXT:            "valueCategory": "rvalue",
 // CHECK-NEXT:            "inner": [
 // CHECK-NEXT:             {
-// CHECK-NEXT:              "id": "0x{{.*}}", 
-// CHECK-NEXT:              "kind": "ImplicitCastExpr", 
+// CHECK-NEXT:              "id": "0x{{.*}}",
+// CHECK-NEXT:              "kind": "ImplicitCastExpr",
 // CHECK-NEXT:              "range": {
 // CHECK-NEXT:               "begin": {
-// CHECK-NEXT:                "col": 3, 
+// CHECK-NEXT:                "offset": 1849,
+// CHECK-NEXT:                "col": 3,
 // CHECK-NEXT:                "tokLen": 3
-// CHECK-NEXT:               }, 
+// CHECK-NEXT:               },
 // CHECK-NEXT:               "end": {
-// CHECK-NEXT:                "col": 3, 
+// CHECK-NEXT:                "offset": 1849,
+// CHECK-NEXT:                "col": 3,
 // CHECK-NEXT:                "tokLen": 3
 // CHECK-NEXT:               }
-// CHECK-NEXT:              }, 
+// CHECK-NEXT:              },
 // CHECK-NEXT:              "type": {
 // CHECK-NEXT:               "qualType": "J *"
-// CHECK-NEXT:              }, 
-// CHECK-NEXT:              "valueCategory": "rvalue", 
-// CHECK-NEXT:              "castKind": "LValueToRValue", 
+// CHECK-NEXT:              },
+// CHECK-NEXT:              "valueCategory": "rvalue",
+// CHECK-NEXT:              "castKind": "LValueToRValue",
 // CHECK-NEXT:              "inner": [
 // CHECK-NEXT:               {
-// CHECK-NEXT:                "id": "0x{{.*}}", 
-// CHECK-NEXT:                "kind": "DeclRefExpr", 
+// CHECK-NEXT:                "id": "0x{{.*}}",
+// CHECK-NEXT:                "kind": "DeclRefExpr",
 // CHECK-NEXT:                "range": {
 // CHECK-NEXT:                 "begin": {
-// CHECK-NEXT:                  "col": 3, 
+// CHECK-NEXT:                  "offset": 1849,
+// CHECK-NEXT:                  "col": 3,
 // CHECK-NEXT:                  "tokLen": 3
-// CHECK-NEXT:                 }, 
+// CHECK-NEXT:                 },
 // CHECK-NEXT:                 "end": {
-// CHECK-NEXT:                  "col": 3, 
+// CHECK-NEXT:                  "offset": 1849,
+// CHECK-NEXT:                  "col": 3,
 // CHECK-NEXT:                  "tokLen": 3
 // CHECK-NEXT:                 }
-// CHECK-NEXT:                }, 
+// CHECK-NEXT:                },
 // CHECK-NEXT:                "type": {
 // CHECK-NEXT:                 "qualType": "J *"
-// CHECK-NEXT:                }, 
-// CHECK-NEXT:                "valueCategory": "lvalue", 
+// CHECK-NEXT:                },
+// CHECK-NEXT:                "valueCategory": "lvalue",
 // CHECK-NEXT:                "referencedDecl": {
-// CHECK-NEXT:                 "id": "0x{{.*}}", 
-// CHECK-NEXT:                 "kind": "ParmVarDecl", 
-// CHECK-NEXT:                 "name": "Obj", 
+// CHECK-NEXT:                 "id": "0x{{.*}}",
+// CHECK-NEXT:                 "kind": "ParmVarDecl",
+// CHECK-NEXT:                 "name": "Obj",
 // CHECK-NEXT:                 "type": {
 // CHECK-NEXT:                  "qualType": "J *"
 // CHECK-NEXT:                 }
@@ -1010,106 +1102,116 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:            ]
 // CHECK-NEXT:           }
 // CHECK-NEXT:          ]
-// CHECK-NEXT:         }, 
+// CHECK-NEXT:         },
 // CHECK-NEXT:         {
-// CHECK-NEXT:          "id": "0x{{.*}}", 
-// CHECK-NEXT:          "kind": "OpaqueValueExpr", 
+// CHECK-NEXT:          "id": "0x{{.*}}",
+// CHECK-NEXT:          "kind": "OpaqueValueExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
-// CHECK-NEXT:            "col": 14, 
+// CHECK-NEXT:            "offset": 1860,
+// CHECK-NEXT:            "col": 14,
 // CHECK-NEXT:            "tokLen": 2
-// CHECK-NEXT:           }, 
+// CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
-// CHECK-NEXT:            "col": 14, 
+// CHECK-NEXT:            "offset": 1860,
+// CHECK-NEXT:            "col": 14,
 // CHECK-NEXT:            "tokLen": 2
 // 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:          "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": 14, 
+// CHECK-NEXT:              "offset": 1860,
+// CHECK-NEXT:              "col": 14,
 // CHECK-NEXT:              "tokLen": 2
-// CHECK-NEXT:             }, 
+// CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
-// CHECK-NEXT:              "col": 14, 
+// CHECK-NEXT:              "offset": 1860,
+// CHECK-NEXT:              "col": 14,
 // CHECK-NEXT:              "tokLen": 2
 // 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": "OpaqueValueExpr", 
+// CHECK-NEXT:        "id": "0x{{.*}}",
+// CHECK-NEXT:        "kind": "OpaqueValueExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
-// CHECK-NEXT:          "col": 3, 
+// CHECK-NEXT:          "offset": 1849,
+// CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 3
-// CHECK-NEXT:         }, 
+// CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "col": 3, 
+// CHECK-NEXT:          "offset": 1849,
+// CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 3
 // CHECK-NEXT:         }
-// CHECK-NEXT:        }, 
+// CHECK-NEXT:        },
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "J *"
-// CHECK-NEXT:        }, 
-// CHECK-NEXT:        "valueCategory": "rvalue", 
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "valueCategory": "rvalue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
-// CHECK-NEXT:          "id": "0x{{.*}}", 
-// CHECK-NEXT:          "kind": "ImplicitCastExpr", 
+// CHECK-NEXT:          "id": "0x{{.*}}",
+// CHECK-NEXT:          "kind": "ImplicitCastExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
-// CHECK-NEXT:            "col": 3, 
+// CHECK-NEXT:            "offset": 1849,
+// CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 3
-// CHECK-NEXT:           }, 
+// CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
-// CHECK-NEXT:            "col": 3, 
+// CHECK-NEXT:            "offset": 1849,
+// CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 3
 // CHECK-NEXT:           }
-// CHECK-NEXT:          }, 
+// CHECK-NEXT:          },
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "qualType": "J *"
-// CHECK-NEXT:          }, 
-// CHECK-NEXT:          "valueCategory": "rvalue", 
-// CHECK-NEXT:          "castKind": "LValueToRValue", 
+// CHECK-NEXT:          },
+// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "castKind": "LValueToRValue",
 // CHECK-NEXT:          "inner": [
 // CHECK-NEXT:           {
-// CHECK-NEXT:            "id": "0x{{.*}}", 
-// CHECK-NEXT:            "kind": "DeclRefExpr", 
+// CHECK-NEXT:            "id": "0x{{.*}}",
+// CHECK-NEXT:            "kind": "DeclRefExpr",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
-// CHECK-NEXT:              "col": 3, 
+// CHECK-NEXT:              "offset": 1849,
+// CHECK-NEXT:              "col": 3,
 // CHECK-NEXT:              "tokLen": 3
-// CHECK-NEXT:             }, 
+// CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
-// CHECK-NEXT:              "col": 3, 
+// CHECK-NEXT:              "offset": 1849,
+// CHECK-NEXT:              "col": 3,
 // CHECK-NEXT:              "tokLen": 3
 // CHECK-NEXT:             }
-// CHECK-NEXT:            }, 
+// CHECK-NEXT:            },
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "qualType": "J *"
-// CHECK-NEXT:            }, 
-// CHECK-NEXT:            "valueCategory": "lvalue", 
+// CHECK-NEXT:            },
+// CHECK-NEXT:            "valueCategory": "lvalue",
 // CHECK-NEXT:            "referencedDecl": {
-// CHECK-NEXT:             "id": "0x{{.*}}", 
-// CHECK-NEXT:             "kind": "ParmVarDecl", 
-// CHECK-NEXT:             "name": "Obj", 
+// CHECK-NEXT:             "id": "0x{{.*}}",
+// CHECK-NEXT:             "kind": "ParmVarDecl",
+// CHECK-NEXT:             "name": "Obj",
 // CHECK-NEXT:             "type": {
 // CHECK-NEXT:              "qualType": "J *"
 // CHECK-NEXT:             }
@@ -1118,118 +1220,130 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:          ]
 // CHECK-NEXT:         }
 // CHECK-NEXT:        ]
-// CHECK-NEXT:       }, 
+// CHECK-NEXT:       },
 // CHECK-NEXT:       {
-// CHECK-NEXT:        "id": "0x{{.*}}", 
-// CHECK-NEXT:        "kind": "OpaqueValueExpr", 
+// CHECK-NEXT:        "id": "0x{{.*}}",
+// CHECK-NEXT:        "kind": "OpaqueValueExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
-// CHECK-NEXT:          "col": 14, 
+// CHECK-NEXT:          "offset": 1860,
+// CHECK-NEXT:          "col": 14,
 // CHECK-NEXT:          "tokLen": 2
-// CHECK-NEXT:         }, 
+// CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "col": 14, 
+// CHECK-NEXT:          "offset": 1860,
+// CHECK-NEXT:          "col": 14,
 // CHECK-NEXT:          "tokLen": 2
 // 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:        "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": 14, 
+// CHECK-NEXT:            "offset": 1860,
+// CHECK-NEXT:            "col": 14,
 // CHECK-NEXT:            "tokLen": 2
-// CHECK-NEXT:           }, 
+// CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
-// CHECK-NEXT:            "col": 14, 
+// CHECK-NEXT:            "offset": 1860,
+// CHECK-NEXT:            "col": 14,
 // CHECK-NEXT:            "tokLen": 2
 // 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:        "id": "0x{{.*}}", 
-// CHECK-NEXT:        "kind": "OpaqueValueExpr", 
+// CHECK-NEXT:        "id": "0x{{.*}}",
+// CHECK-NEXT:        "kind": "OpaqueValueExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
-// CHECK-NEXT:          "col": 14, 
+// CHECK-NEXT:          "offset": 1860,
+// CHECK-NEXT:          "col": 14,
 // CHECK-NEXT:          "tokLen": 2
-// CHECK-NEXT:         }, 
+// CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "col": 14, 
+// CHECK-NEXT:          "offset": 1860,
+// CHECK-NEXT:          "col": 14,
 // CHECK-NEXT:          "tokLen": 2
 // CHECK-NEXT:         }
-// CHECK-NEXT:        }, 
+// CHECK-NEXT:        },
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "unsigned int"
-// CHECK-NEXT:        }, 
-// CHECK-NEXT:        "valueCategory": "rvalue", 
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "valueCategory": "rvalue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
-// CHECK-NEXT:          "id": "0x{{.*}}", 
-// CHECK-NEXT:          "kind": "ImplicitCastExpr", 
+// CHECK-NEXT:          "id": "0x{{.*}}",
+// CHECK-NEXT:          "kind": "ImplicitCastExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
-// CHECK-NEXT:            "col": 14, 
+// CHECK-NEXT:            "offset": 1860,
+// CHECK-NEXT:            "col": 14,
 // CHECK-NEXT:            "tokLen": 2
-// CHECK-NEXT:           }, 
+// CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
-// CHECK-NEXT:            "col": 14, 
+// CHECK-NEXT:            "offset": 1860,
+// CHECK-NEXT:            "col": 14,
 // CHECK-NEXT:            "tokLen": 2
 // CHECK-NEXT:           }
-// CHECK-NEXT:          }, 
+// CHECK-NEXT:          },
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "qualType": "unsigned int"
-// CHECK-NEXT:          }, 
-// CHECK-NEXT:          "valueCategory": "rvalue", 
-// CHECK-NEXT:          "castKind": "IntegralCast", 
+// CHECK-NEXT:          },
+// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "castKind": "IntegralCast",
 // CHECK-NEXT:          "inner": [
 // CHECK-NEXT:           {
-// CHECK-NEXT:            "id": "0x{{.*}}", 
-// CHECK-NEXT:            "kind": "OpaqueValueExpr", 
+// CHECK-NEXT:            "id": "0x{{.*}}",
+// CHECK-NEXT:            "kind": "OpaqueValueExpr",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
-// CHECK-NEXT:              "col": 14, 
+// CHECK-NEXT:              "offset": 1860,
+// CHECK-NEXT:              "col": 14,
 // CHECK-NEXT:              "tokLen": 2
-// CHECK-NEXT:             }, 
+// CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
-// CHECK-NEXT:              "col": 14, 
+// CHECK-NEXT:              "offset": 1860,
+// CHECK-NEXT:              "col": 14,
 // CHECK-NEXT:              "tokLen": 2
 // 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:            "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": 14, 
+// CHECK-NEXT:                "offset": 1860,
+// CHECK-NEXT:                "col": 14,
 // CHECK-NEXT:                "tokLen": 2
-// CHECK-NEXT:               }, 
+// CHECK-NEXT:               },
 // CHECK-NEXT:               "end": {
-// CHECK-NEXT:                "col": 14, 
+// CHECK-NEXT:                "offset": 1860,
+// CHECK-NEXT:                "col": 14,
 // CHECK-NEXT:                "tokLen": 2
 // 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:            ]
@@ -1237,85 +1351,93 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:          ]
 // CHECK-NEXT:         }
 // CHECK-NEXT:        ]
-// CHECK-NEXT:       }, 
+// CHECK-NEXT:       },
 // CHECK-NEXT:       {
-// CHECK-NEXT:        "id": "0x{{.*}}", 
-// CHECK-NEXT:        "kind": "ObjCMessageExpr", 
+// CHECK-NEXT:        "id": "0x{{.*}}",
+// CHECK-NEXT:        "kind": "ObjCMessageExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
-// CHECK-NEXT:          "col": 7, 
+// CHECK-NEXT:          "offset": 1853,
+// CHECK-NEXT:          "col": 7,
 // CHECK-NEXT:          "tokLen": 4
-// CHECK-NEXT:         }, 
+// CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "col": 7, 
+// CHECK-NEXT:          "offset": 1853,
+// CHECK-NEXT:          "col": 7,
 // CHECK-NEXT:          "tokLen": 4
 // CHECK-NEXT:         }
-// CHECK-NEXT:        }, 
+// CHECK-NEXT:        },
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "void"
-// CHECK-NEXT:        }, 
-// CHECK-NEXT:        "valueCategory": "rvalue", 
-// CHECK-NEXT:        "selector": "setProp:", 
-// CHECK-NEXT:        "receiverKind": "instance", 
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "selector": "setProp:",
+// CHECK-NEXT:        "receiverKind": "instance",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
-// CHECK-NEXT:          "id": "0x{{.*}}", 
-// CHECK-NEXT:          "kind": "OpaqueValueExpr", 
+// CHECK-NEXT:          "id": "0x{{.*}}",
+// CHECK-NEXT:          "kind": "OpaqueValueExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
-// CHECK-NEXT:            "col": 3, 
+// CHECK-NEXT:            "offset": 1849,
+// CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 3
-// CHECK-NEXT:           }, 
+// CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
-// CHECK-NEXT:            "col": 3, 
+// CHECK-NEXT:            "offset": 1849,
+// CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 3
 // CHECK-NEXT:           }
-// CHECK-NEXT:          }, 
+// CHECK-NEXT:          },
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "qualType": "J *"
-// CHECK-NEXT:          }, 
-// CHECK-NEXT:          "valueCategory": "rvalue", 
+// CHECK-NEXT:          },
+// CHECK-NEXT:          "valueCategory": "rvalue",
 // CHECK-NEXT:          "inner": [
 // CHECK-NEXT:           {
-// CHECK-NEXT:            "id": "0x{{.*}}", 
-// CHECK-NEXT:            "kind": "ImplicitCastExpr", 
+// CHECK-NEXT:            "id": "0x{{.*}}",
+// CHECK-NEXT:            "kind": "ImplicitCastExpr",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
-// CHECK-NEXT:              "col": 3, 
+// CHECK-NEXT:              "offset": 1849,
+// CHECK-NEXT:              "col": 3,
 // CHECK-NEXT:              "tokLen": 3
-// CHECK-NEXT:             }, 
+// CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
-// CHECK-NEXT:              "col": 3, 
+// CHECK-NEXT:              "offset": 1849,
+// CHECK-NEXT:              "col": 3,
 // CHECK-NEXT:              "tokLen": 3
 // CHECK-NEXT:             }
-// CHECK-NEXT:            }, 
+// CHECK-NEXT:            },
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "qualType": "J *"
-// CHECK-NEXT:            }, 
-// CHECK-NEXT:            "valueCategory": "rvalue", 
-// CHECK-NEXT:            "castKind": "LValueToRValue", 
+// CHECK-NEXT:            },
+// CHECK-NEXT:            "valueCategory": "rvalue",
+// CHECK-NEXT:            "castKind": "LValueToRValue",
 // CHECK-NEXT:            "inner": [
 // CHECK-NEXT:             {
-// CHECK-NEXT:              "id": "0x{{.*}}", 
-// CHECK-NEXT:              "kind": "DeclRefExpr", 
+// CHECK-NEXT:              "id": "0x{{.*}}",
+// CHECK-NEXT:              "kind": "DeclRefExpr",
 // CHECK-NEXT:              "range": {
 // CHECK-NEXT:               "begin": {
-// CHECK-NEXT:                "col": 3, 
+// CHECK-NEXT:                "offset": 1849,
+// CHECK-NEXT:                "col": 3,
 // CHECK-NEXT:                "tokLen": 3
-// CHECK-NEXT:               }, 
+// CHECK-NEXT:               },
 // CHECK-NEXT:               "end": {
-// CHECK-NEXT:                "col": 3, 
+// CHECK-NEXT:                "offset": 1849,
+// CHECK-NEXT:                "col": 3,
 // CHECK-NEXT:                "tokLen": 3
 // CHECK-NEXT:               }
-// CHECK-NEXT:              }, 
+// CHECK-NEXT:              },
 // CHECK-NEXT:              "type": {
 // CHECK-NEXT:               "qualType": "J *"
-// CHECK-NEXT:              }, 
-// CHECK-NEXT:              "valueCategory": "lvalue", 
+// CHECK-NEXT:              },
+// CHECK-NEXT:              "valueCategory": "lvalue",
 // CHECK-NEXT:              "referencedDecl": {
-// CHECK-NEXT:               "id": "0x{{.*}}", 
-// CHECK-NEXT:               "kind": "ParmVarDecl", 
-// CHECK-NEXT:               "name": "Obj", 
+// CHECK-NEXT:               "id": "0x{{.*}}",
+// CHECK-NEXT:               "kind": "ParmVarDecl",
+// CHECK-NEXT:               "name": "Obj",
 // CHECK-NEXT:               "type": {
 // CHECK-NEXT:                "qualType": "J *"
 // CHECK-NEXT:               }
@@ -1324,79 +1446,87 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:            ]
 // CHECK-NEXT:           }
 // CHECK-NEXT:          ]
-// CHECK-NEXT:         }, 
+// CHECK-NEXT:         },
 // CHECK-NEXT:         {
-// CHECK-NEXT:          "id": "0x{{.*}}", 
-// CHECK-NEXT:          "kind": "OpaqueValueExpr", 
+// CHECK-NEXT:          "id": "0x{{.*}}",
+// CHECK-NEXT:          "kind": "OpaqueValueExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
-// CHECK-NEXT:            "col": 14, 
+// CHECK-NEXT:            "offset": 1860,
+// CHECK-NEXT:            "col": 14,
 // CHECK-NEXT:            "tokLen": 2
-// CHECK-NEXT:           }, 
+// CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
-// CHECK-NEXT:            "col": 14, 
+// CHECK-NEXT:            "offset": 1860,
+// CHECK-NEXT:            "col": 14,
 // CHECK-NEXT:            "tokLen": 2
 // CHECK-NEXT:           }
-// CHECK-NEXT:          }, 
+// CHECK-NEXT:          },
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "qualType": "unsigned int"
-// CHECK-NEXT:          }, 
-// CHECK-NEXT:          "valueCategory": "rvalue", 
+// CHECK-NEXT:          },
+// CHECK-NEXT:          "valueCategory": "rvalue",
 // CHECK-NEXT:          "inner": [
 // CHECK-NEXT:           {
-// CHECK-NEXT:            "id": "0x{{.*}}", 
-// CHECK-NEXT:            "kind": "ImplicitCastExpr", 
+// CHECK-NEXT:            "id": "0x{{.*}}",
+// CHECK-NEXT:            "kind": "ImplicitCastExpr",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
-// CHECK-NEXT:              "col": 14, 
+// CHECK-NEXT:              "offset": 1860,
+// CHECK-NEXT:              "col": 14,
 // CHECK-NEXT:              "tokLen": 2
-// CHECK-NEXT:             }, 
+// CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
-// CHECK-NEXT:              "col": 14, 
+// CHECK-NEXT:              "offset": 1860,
+// CHECK-NEXT:              "col": 14,
 // CHECK-NEXT:              "tokLen": 2
 // CHECK-NEXT:             }
-// CHECK-NEXT:            }, 
+// CHECK-NEXT:            },
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "qualType": "unsigned int"
-// CHECK-NEXT:            }, 
-// CHECK-NEXT:            "valueCategory": "rvalue", 
-// CHECK-NEXT:            "castKind": "IntegralCast", 
+// CHECK-NEXT:            },
+// CHECK-NEXT:            "valueCategory": "rvalue",
+// CHECK-NEXT:            "castKind": "IntegralCast",
 // CHECK-NEXT:            "inner": [
 // CHECK-NEXT:             {
-// CHECK-NEXT:              "id": "0x{{.*}}", 
-// CHECK-NEXT:              "kind": "OpaqueValueExpr", 
+// CHECK-NEXT:              "id": "0x{{.*}}",
+// CHECK-NEXT:              "kind": "OpaqueValueExpr",
 // CHECK-NEXT:              "range": {
 // CHECK-NEXT:               "begin": {
-// CHECK-NEXT:                "col": 14, 
+// CHECK-NEXT:                "offset": 1860,
+// CHECK-NEXT:                "col": 14,
 // CHECK-NEXT:                "tokLen": 2
-// CHECK-NEXT:               }, 
+// CHECK-NEXT:               },
 // CHECK-NEXT:               "end": {
-// CHECK-NEXT:                "col": 14, 
+// CHECK-NEXT:                "offset": 1860,
+// CHECK-NEXT:                "col": 14,
 // CHECK-NEXT:                "tokLen": 2
 // 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:              "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": 14, 
+// CHECK-NEXT:                  "offset": 1860,
+// CHECK-NEXT:                  "col": 14,
 // CHECK-NEXT:                  "tokLen": 2
-// CHECK-NEXT:                 }, 
+// CHECK-NEXT:                 },
 // CHECK-NEXT:                 "end": {
-// CHECK-NEXT:                  "col": 14, 
+// CHECK-NEXT:                  "offset": 1860,
+// CHECK-NEXT:                  "col": 14,
 // CHECK-NEXT:                  "tokLen": 2
 // 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:              ]
@@ -1408,165 +1538,182 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:        ]
 // CHECK-NEXT:       }
 // CHECK-NEXT:      ]
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     {
-// CHECK-NEXT:      "id": "0x{{.*}}", 
-// CHECK-NEXT:      "kind": "DeclStmt", 
+// CHECK-NEXT:      "id": "0x{{.*}}",
+// CHECK-NEXT:      "kind": "DeclStmt",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
-// CHECK-NEXT:        "line": 78, 
-// CHECK-NEXT:        "col": 3, 
+// CHECK-NEXT:        "offset": 1866,
+// CHECK-NEXT:        "line": 78,
+// CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 3
-// CHECK-NEXT:       }, 
+// CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
-// CHECK-NEXT:        "col": 19, 
+// CHECK-NEXT:        "offset": 1882,
+// CHECK-NEXT:        "col": 19,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
-// CHECK-NEXT:      }, 
+// CHECK-NEXT:      },
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
-// CHECK-NEXT:        "id": "0x{{.*}}", 
-// CHECK-NEXT:        "kind": "VarDecl", 
+// CHECK-NEXT:        "id": "0x{{.*}}",
+// CHECK-NEXT:        "kind": "VarDecl",
 // CHECK-NEXT:        "loc": {
-// CHECK-NEXT:         "col": 7, 
+// CHECK-NEXT:         "offset": 1870,
+// CHECK-NEXT:         "col": 7,
 // CHECK-NEXT:         "tokLen": 1
-// CHECK-NEXT:        }, 
+// CHECK-NEXT:        },
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
-// CHECK-NEXT:          "col": 3, 
+// CHECK-NEXT:          "offset": 1866,
+// CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 3
-// CHECK-NEXT:         }, 
+// CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "col": 15, 
+// CHECK-NEXT:          "offset": 1878,
+// CHECK-NEXT:          "col": 15,
 // CHECK-NEXT:          "tokLen": 4
 // CHECK-NEXT:         }
-// CHECK-NEXT:        }, 
-// CHECK-NEXT:        "name": "i", 
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "name": "i",
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int"
-// CHECK-NEXT:        }, 
-// CHECK-NEXT:        "init": "c", 
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "init": "c",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
-// CHECK-NEXT:          "id": "0x{{.*}}", 
-// CHECK-NEXT:          "kind": "ImplicitCastExpr", 
+// CHECK-NEXT:          "id": "0x{{.*}}",
+// CHECK-NEXT:          "kind": "ImplicitCastExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
-// CHECK-NEXT:            "col": 11, 
+// CHECK-NEXT:            "offset": 1874,
+// CHECK-NEXT:            "col": 11,
 // CHECK-NEXT:            "tokLen": 3
-// CHECK-NEXT:           }, 
+// CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
-// CHECK-NEXT:            "col": 15, 
+// CHECK-NEXT:            "offset": 1878,
+// CHECK-NEXT:            "col": 15,
 // CHECK-NEXT:            "tokLen": 4
 // CHECK-NEXT:           }
-// CHECK-NEXT:          }, 
+// CHECK-NEXT:          },
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "qualType": "int"
-// CHECK-NEXT:          }, 
-// CHECK-NEXT:          "valueCategory": "rvalue", 
-// CHECK-NEXT:          "castKind": "IntegralCast", 
+// CHECK-NEXT:          },
+// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "castKind": "IntegralCast",
 // CHECK-NEXT:          "inner": [
 // CHECK-NEXT:           {
-// CHECK-NEXT:            "id": "0x{{.*}}", 
-// CHECK-NEXT:            "kind": "PseudoObjectExpr", 
+// CHECK-NEXT:            "id": "0x{{.*}}",
+// CHECK-NEXT:            "kind": "PseudoObjectExpr",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
-// CHECK-NEXT:              "col": 11, 
+// CHECK-NEXT:              "offset": 1874,
+// CHECK-NEXT:              "col": 11,
 // CHECK-NEXT:              "tokLen": 3
-// CHECK-NEXT:             }, 
+// CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
-// CHECK-NEXT:              "col": 15, 
+// CHECK-NEXT:              "offset": 1878,
+// CHECK-NEXT:              "col": 15,
 // CHECK-NEXT:              "tokLen": 4
 // CHECK-NEXT:             }
-// CHECK-NEXT:            }, 
+// CHECK-NEXT:            },
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "qualType": "unsigned int"
-// CHECK-NEXT:            }, 
-// CHECK-NEXT:            "valueCategory": "rvalue", 
+// CHECK-NEXT:            },
+// CHECK-NEXT:            "valueCategory": "rvalue",
 // CHECK-NEXT:            "inner": [
 // CHECK-NEXT:             {
-// CHECK-NEXT:              "id": "0x{{.*}}", 
-// CHECK-NEXT:              "kind": "ObjCPropertyRefExpr", 
+// CHECK-NEXT:              "id": "0x{{.*}}",
+// CHECK-NEXT:              "kind": "ObjCPropertyRefExpr",
 // CHECK-NEXT:              "range": {
 // CHECK-NEXT:               "begin": {
-// CHECK-NEXT:                "col": 11, 
+// CHECK-NEXT:                "offset": 1874,
+// CHECK-NEXT:                "col": 11,
 // CHECK-NEXT:                "tokLen": 3
-// CHECK-NEXT:               }, 
+// CHECK-NEXT:               },
 // CHECK-NEXT:               "end": {
-// CHECK-NEXT:                "col": 15, 
+// CHECK-NEXT:                "offset": 1878,
+// CHECK-NEXT:                "col": 15,
 // CHECK-NEXT:                "tokLen": 4
 // CHECK-NEXT:               }
-// CHECK-NEXT:              }, 
+// CHECK-NEXT:              },
 // CHECK-NEXT:              "type": {
 // CHECK-NEXT:               "qualType": "<pseudo-object type>"
-// CHECK-NEXT:              }, 
-// CHECK-NEXT:              "valueCategory": "lvalue", 
-// CHECK-NEXT:              "propertyKind": "explicit", 
+// CHECK-NEXT:              },
+// CHECK-NEXT:              "valueCategory": "lvalue",
+// CHECK-NEXT:              "propertyKind": "explicit",
 // CHECK-NEXT:              "property": {
-// CHECK-NEXT:               "id": "0x{{.*}}", 
-// CHECK-NEXT:               "kind": "ObjCPropertyDecl", 
+// CHECK-NEXT:               "id": "0x{{.*}}",
+// CHECK-NEXT:               "kind": "ObjCPropertyDecl",
 // CHECK-NEXT:               "name": "prop"
-// CHECK-NEXT:              }, 
-// CHECK-NEXT:              "isMessagingGetter": true, 
+// CHECK-NEXT:              },
+// CHECK-NEXT:              "isMessagingGetter": true,
 // CHECK-NEXT:              "inner": [
 // CHECK-NEXT:               {
-// CHECK-NEXT:                "id": "0x{{.*}}", 
-// CHECK-NEXT:                "kind": "OpaqueValueExpr", 
+// CHECK-NEXT:                "id": "0x{{.*}}",
+// CHECK-NEXT:                "kind": "OpaqueValueExpr",
 // CHECK-NEXT:                "range": {
 // CHECK-NEXT:                 "begin": {
-// CHECK-NEXT:                  "col": 11, 
+// CHECK-NEXT:                  "offset": 1874,
+// CHECK-NEXT:                  "col": 11,
 // CHECK-NEXT:                  "tokLen": 3
-// CHECK-NEXT:                 }, 
+// CHECK-NEXT:                 },
 // CHECK-NEXT:                 "end": {
-// CHECK-NEXT:                  "col": 11, 
+// CHECK-NEXT:                  "offset": 1874,
+// CHECK-NEXT:                  "col": 11,
 // CHECK-NEXT:                  "tokLen": 3
 // CHECK-NEXT:                 }
-// CHECK-NEXT:                }, 
+// CHECK-NEXT:                },
 // CHECK-NEXT:                "type": {
 // CHECK-NEXT:                 "qualType": "J *"
-// CHECK-NEXT:                }, 
-// CHECK-NEXT:                "valueCategory": "rvalue", 
+// CHECK-NEXT:                },
+// CHECK-NEXT:                "valueCategory": "rvalue",
 // CHECK-NEXT:                "inner": [
 // CHECK-NEXT:                 {
-// CHECK-NEXT:                  "id": "0x{{.*}}", 
-// CHECK-NEXT:                  "kind": "ImplicitCastExpr", 
+// CHECK-NEXT:                  "id": "0x{{.*}}",
+// CHECK-NEXT:                  "kind": "ImplicitCastExpr",
 // CHECK-NEXT:                  "range": {
 // CHECK-NEXT:                   "begin": {
-// CHECK-NEXT:                    "col": 11, 
+// CHECK-NEXT:                    "offset": 1874,
+// CHECK-NEXT:                    "col": 11,
 // CHECK-NEXT:                    "tokLen": 3
-// CHECK-NEXT:                   }, 
+// CHECK-NEXT:                   },
 // CHECK-NEXT:                   "end": {
-// CHECK-NEXT:                    "col": 11, 
+// CHECK-NEXT:                    "offset": 1874,
+// CHECK-NEXT:                    "col": 11,
 // CHECK-NEXT:                    "tokLen": 3
 // CHECK-NEXT:                   }
-// CHECK-NEXT:                  }, 
+// CHECK-NEXT:                  },
 // CHECK-NEXT:                  "type": {
 // CHECK-NEXT:                   "qualType": "J *"
-// CHECK-NEXT:                  }, 
-// CHECK-NEXT:                  "valueCategory": "rvalue", 
-// CHECK-NEXT:                  "castKind": "LValueToRValue", 
+// CHECK-NEXT:                  },
+// CHECK-NEXT:                  "valueCategory": "rvalue",
+// CHECK-NEXT:                  "castKind": "LValueToRValue",
 // CHECK-NEXT:                  "inner": [
 // CHECK-NEXT:                   {
-// CHECK-NEXT:                    "id": "0x{{.*}}", 
-// CHECK-NEXT:                    "kind": "DeclRefExpr", 
+// CHECK-NEXT:                    "id": "0x{{.*}}",
+// CHECK-NEXT:                    "kind": "DeclRefExpr",
 // CHECK-NEXT:                    "range": {
 // CHECK-NEXT:                     "begin": {
-// CHECK-NEXT:                      "col": 11, 
+// CHECK-NEXT:                      "offset": 1874,
+// CHECK-NEXT:                      "col": 11,
 // CHECK-NEXT:                      "tokLen": 3
-// CHECK-NEXT:                     }, 
+// CHECK-NEXT:                     },
 // CHECK-NEXT:                     "end": {
-// CHECK-NEXT:                      "col": 11, 
+// CHECK-NEXT:                      "offset": 1874,
+// CHECK-NEXT:                      "col": 11,
 // CHECK-NEXT:                      "tokLen": 3
 // CHECK-NEXT:                     }
-// CHECK-NEXT:                    }, 
+// CHECK-NEXT:                    },
 // CHECK-NEXT:                    "type": {
 // CHECK-NEXT:                     "qualType": "J *"
-// CHECK-NEXT:                    }, 
-// CHECK-NEXT:                    "valueCategory": "lvalue", 
+// CHECK-NEXT:                    },
+// CHECK-NEXT:                    "valueCategory": "lvalue",
 // CHECK-NEXT:                    "referencedDecl": {
-// CHECK-NEXT:                     "id": "0x{{.*}}", 
-// CHECK-NEXT:                     "kind": "ParmVarDecl", 
-// CHECK-NEXT:                     "name": "Obj", 
+// CHECK-NEXT:                     "id": "0x{{.*}}",
+// CHECK-NEXT:                     "kind": "ParmVarDecl",
+// CHECK-NEXT:                     "name": "Obj",
 // CHECK-NEXT:                     "type": {
 // CHECK-NEXT:                      "qualType": "J *"
 // CHECK-NEXT:                     }
@@ -1577,65 +1724,71 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:                ]
 // CHECK-NEXT:               }
 // CHECK-NEXT:              ]
-// CHECK-NEXT:             }, 
+// CHECK-NEXT:             },
 // CHECK-NEXT:             {
-// CHECK-NEXT:              "id": "0x{{.*}}", 
-// CHECK-NEXT:              "kind": "OpaqueValueExpr", 
+// CHECK-NEXT:              "id": "0x{{.*}}",
+// CHECK-NEXT:              "kind": "OpaqueValueExpr",
 // CHECK-NEXT:              "range": {
 // CHECK-NEXT:               "begin": {
-// CHECK-NEXT:                "col": 11, 
+// CHECK-NEXT:                "offset": 1874,
+// CHECK-NEXT:                "col": 11,
 // CHECK-NEXT:                "tokLen": 3
-// CHECK-NEXT:               }, 
+// CHECK-NEXT:               },
 // CHECK-NEXT:               "end": {
-// CHECK-NEXT:                "col": 11, 
+// CHECK-NEXT:                "offset": 1874,
+// CHECK-NEXT:                "col": 11,
 // CHECK-NEXT:                "tokLen": 3
 // CHECK-NEXT:               }
-// CHECK-NEXT:              }, 
+// CHECK-NEXT:              },
 // CHECK-NEXT:              "type": {
 // CHECK-NEXT:               "qualType": "J *"
-// CHECK-NEXT:              }, 
-// CHECK-NEXT:              "valueCategory": "rvalue", 
+// CHECK-NEXT:              },
+// CHECK-NEXT:              "valueCategory": "rvalue",
 // CHECK-NEXT:              "inner": [
 // CHECK-NEXT:               {
-// CHECK-NEXT:                "id": "0x{{.*}}", 
-// CHECK-NEXT:                "kind": "ImplicitCastExpr", 
+// CHECK-NEXT:                "id": "0x{{.*}}",
+// CHECK-NEXT:                "kind": "ImplicitCastExpr",
 // CHECK-NEXT:                "range": {
 // CHECK-NEXT:                 "begin": {
-// CHECK-NEXT:                  "col": 11, 
+// CHECK-NEXT:                  "offset": 1874,
+// CHECK-NEXT:                  "col": 11,
 // CHECK-NEXT:                  "tokLen": 3
-// CHECK-NEXT:                 }, 
+// CHECK-NEXT:                 },
 // CHECK-NEXT:                 "end": {
-// CHECK-NEXT:                  "col": 11, 
+// CHECK-NEXT:                  "offset": 1874,
+// CHECK-NEXT:                  "col": 11,
 // CHECK-NEXT:                  "tokLen": 3
 // CHECK-NEXT:                 }
-// CHECK-NEXT:                }, 
+// CHECK-NEXT:                },
 // CHECK-NEXT:                "type": {
 // CHECK-NEXT:                 "qualType": "J *"
-// CHECK-NEXT:                }, 
-// CHECK-NEXT:                "valueCategory": "rvalue", 
-// CHECK-NEXT:                "castKind": "LValueToRValue", 
+// CHECK-NEXT:                },
+// CHECK-NEXT:                "valueCategory": "rvalue",
+// CHECK-NEXT:                "castKind": "LValueToRValue",
 // CHECK-NEXT:                "inner": [
 // CHECK-NEXT:                 {
-// CHECK-NEXT:                  "id": "0x{{.*}}", 
-// CHECK-NEXT:                  "kind": "DeclRefExpr", 
+// CHECK-NEXT:                  "id": "0x{{.*}}",
+// CHECK-NEXT:                  "kind": "DeclRefExpr",
 // CHECK-NEXT:                  "range": {
 // CHECK-NEXT:                   "begin": {
-// CHECK-NEXT:                    "col": 11, 
+// CHECK-NEXT:                    "offset": 1874,
+// CHECK-NEXT:                    "col": 11,
 // CHECK-NEXT:                    "tokLen": 3
-// CHECK-NEXT:                   }, 
+// CHECK-NEXT:                   },
 // CHECK-NEXT:                   "end": {
-// CHECK-NEXT:                    "col": 11, 
+// CHECK-NEXT:                    "offset": 1874,
+// CHECK-NEXT:                    "col": 11,
 // CHECK-NEXT:                    "tokLen": 3
 // CHECK-NEXT:                   }
-// CHECK-NEXT:                  }, 
+// CHECK-NEXT:                  },
 // CHECK-NEXT:                  "type": {
 // CHECK-NEXT:                   "qualType": "J *"
-// CHECK-NEXT:                  }, 
-// CHECK-NEXT:                  "valueCategory": "lvalue", 
+// CHECK-NEXT:                  },
+// CHECK-NEXT:                  "valueCategory": "lvalue",
 // CHECK-NEXT:                  "referencedDecl": {
-// CHECK-NEXT:                   "id": "0x{{.*}}", 
-// CHECK-NEXT:                   "kind": "ParmVarDecl", 
-// CHECK-NEXT:                   "name": "Obj", 
+// CHECK-NEXT:                   "id": "0x{{.*}}",
+// CHECK-NEXT:                   "kind": "ParmVarDecl",
+// CHECK-NEXT:                   "name": "Obj",
 // CHECK-NEXT:                   "type": {
 // CHECK-NEXT:                    "qualType": "J *"
 // CHECK-NEXT:                   }
@@ -1644,85 +1797,93 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:                ]
 // CHECK-NEXT:               }
 // CHECK-NEXT:              ]
-// CHECK-NEXT:             }, 
+// CHECK-NEXT:             },
 // CHECK-NEXT:             {
-// CHECK-NEXT:              "id": "0x{{.*}}", 
-// CHECK-NEXT:              "kind": "ObjCMessageExpr", 
+// CHECK-NEXT:              "id": "0x{{.*}}",
+// CHECK-NEXT:              "kind": "ObjCMessageExpr",
 // CHECK-NEXT:              "range": {
 // CHECK-NEXT:               "begin": {
-// CHECK-NEXT:                "col": 15, 
+// CHECK-NEXT:                "offset": 1878,
+// CHECK-NEXT:                "col": 15,
 // CHECK-NEXT:                "tokLen": 4
-// CHECK-NEXT:               }, 
+// CHECK-NEXT:               },
 // CHECK-NEXT:               "end": {
-// CHECK-NEXT:                "col": 15, 
+// CHECK-NEXT:                "offset": 1878,
+// CHECK-NEXT:                "col": 15,
 // CHECK-NEXT:                "tokLen": 4
 // CHECK-NEXT:               }
-// CHECK-NEXT:              }, 
+// CHECK-NEXT:              },
 // CHECK-NEXT:              "type": {
 // CHECK-NEXT:               "qualType": "unsigned int"
-// CHECK-NEXT:              }, 
-// CHECK-NEXT:              "valueCategory": "rvalue", 
-// CHECK-NEXT:              "selector": "prop", 
-// CHECK-NEXT:              "receiverKind": "instance", 
+// CHECK-NEXT:              },
+// CHECK-NEXT:              "valueCategory": "rvalue",
+// CHECK-NEXT:              "selector": "prop",
+// CHECK-NEXT:              "receiverKind": "instance",
 // CHECK-NEXT:              "inner": [
 // CHECK-NEXT:               {
-// CHECK-NEXT:                "id": "0x{{.*}}", 
-// CHECK-NEXT:                "kind": "OpaqueValueExpr", 
+// CHECK-NEXT:                "id": "0x{{.*}}",
+// CHECK-NEXT:                "kind": "OpaqueValueExpr",
 // CHECK-NEXT:                "range": {
 // CHECK-NEXT:                 "begin": {
-// CHECK-NEXT:                  "col": 11, 
+// CHECK-NEXT:                  "offset": 1874,
+// CHECK-NEXT:                  "col": 11,
 // CHECK-NEXT:                  "tokLen": 3
-// CHECK-NEXT:                 }, 
+// CHECK-NEXT:                 },
 // CHECK-NEXT:                 "end": {
-// CHECK-NEXT:                  "col": 11, 
+// CHECK-NEXT:                  "offset": 1874,
+// CHECK-NEXT:                  "col": 11,
 // CHECK-NEXT:                  "tokLen": 3
 // CHECK-NEXT:                 }
-// CHECK-NEXT:                }, 
+// CHECK-NEXT:                },
 // CHECK-NEXT:                "type": {
 // CHECK-NEXT:                 "qualType": "J *"
-// CHECK-NEXT:                }, 
-// CHECK-NEXT:                "valueCategory": "rvalue", 
+// CHECK-NEXT:                },
+// CHECK-NEXT:                "valueCategory": "rvalue",
 // CHECK-NEXT:                "inner": [
 // CHECK-NEXT:                 {
-// CHECK-NEXT:                  "id": "0x{{.*}}", 
-// CHECK-NEXT:                  "kind": "ImplicitCastExpr", 
+// CHECK-NEXT:                  "id": "0x{{.*}}",
+// CHECK-NEXT:                  "kind": "ImplicitCastExpr",
 // CHECK-NEXT:                  "range": {
 // CHECK-NEXT:                   "begin": {
-// CHECK-NEXT:                    "col": 11, 
+// CHECK-NEXT:                    "offset": 1874,
+// CHECK-NEXT:                    "col": 11,
 // CHECK-NEXT:                    "tokLen": 3
-// CHECK-NEXT:                   }, 
+// CHECK-NEXT:                   },
 // CHECK-NEXT:                   "end": {
-// CHECK-NEXT:                    "col": 11, 
+// CHECK-NEXT:                    "offset": 1874,
+// CHECK-NEXT:                    "col": 11,
 // CHECK-NEXT:                    "tokLen": 3
 // CHECK-NEXT:                   }
-// CHECK-NEXT:                  }, 
+// CHECK-NEXT:                  },
 // CHECK-NEXT:                  "type": {
 // CHECK-NEXT:                   "qualType": "J *"
-// CHECK-NEXT:                  }, 
-// CHECK-NEXT:                  "valueCategory": "rvalue", 
-// CHECK-NEXT:                  "castKind": "LValueToRValue", 
+// CHECK-NEXT:                  },
+// CHECK-NEXT:                  "valueCategory": "rvalue",
+// CHECK-NEXT:                  "castKind": "LValueToRValue",
 // CHECK-NEXT:                  "inner": [
 // CHECK-NEXT:                   {
-// CHECK-NEXT:                    "id": "0x{{.*}}", 
-// CHECK-NEXT:                    "kind": "DeclRefExpr", 
+// CHECK-NEXT:                    "id": "0x{{.*}}",
+// CHECK-NEXT:                    "kind": "DeclRefExpr",
 // CHECK-NEXT:                    "range": {
 // CHECK-NEXT:                     "begin": {
-// CHECK-NEXT:                      "col": 11, 
+// CHECK-NEXT:                      "offset": 1874,
+// CHECK-NEXT:                      "col": 11,
 // CHECK-NEXT:                      "tokLen": 3
-// CHECK-NEXT:                     }, 
+// CHECK-NEXT:                     },
 // CHECK-NEXT:                     "end": {
-// CHECK-NEXT:                      "col": 11, 
+// CHECK-NEXT:                      "offset": 1874,
+// CHECK-NEXT:                      "col": 11,
 // CHECK-NEXT:                      "tokLen": 3
 // CHECK-NEXT:                     }
-// CHECK-NEXT:                    }, 
+// CHECK-NEXT:                    },
 // CHECK-NEXT:                    "type": {
 // CHECK-NEXT:                     "qualType": "J *"
-// CHECK-NEXT:                    }, 
-// CHECK-NEXT:                    "valueCategory": "lvalue", 
+// CHECK-NEXT:                    },
+// CHECK-NEXT:                    "valueCategory": "lvalue",
 // CHECK-NEXT:                    "referencedDecl": {
-// CHECK-NEXT:                     "id": "0x{{.*}}", 
-// CHECK-NEXT:                     "kind": "ParmVarDecl", 
-// CHECK-NEXT:                     "name": "Obj", 
+// CHECK-NEXT:                     "id": "0x{{.*}}",
+// CHECK-NEXT:                     "kind": "ParmVarDecl",
+// CHECK-NEXT:                     "name": "Obj",
 // CHECK-NEXT:                     "type": {
 // CHECK-NEXT:                      "qualType": "J *"
 // CHECK-NEXT:                     }
@@ -1748,208 +1909,231 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT: }
 
 
-// CHECK:  "kind": "FunctionDecl", 
+// CHECK:  "kind": "FunctionDecl",
 // CHECK-NEXT:  "loc": {
-// CHECK-NEXT:   "file": "{{.*}}", 
-// CHECK-NEXT:   "line": 81, 
-// CHECK-NEXT:   "col": 6, 
+// CHECK-NEXT:   "offset": 1892,
+// CHECK-NEXT:   "file": "{{.*}}",
+// CHECK-NEXT:   "line": 81,
+// CHECK-NEXT:   "col": 6,
 // CHECK-NEXT:   "tokLen": 20
-// CHECK-NEXT:  }, 
+// CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
-// CHECK-NEXT:    "col": 1, 
+// CHECK-NEXT:    "offset": 1887,
+// CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 4
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
-// CHECK-NEXT:    "line": 87, 
-// CHECK-NEXT:    "col": 1, 
+// CHECK-NEXT:    "offset": 2052,
+// CHECK-NEXT:    "line": 87,
+// CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   }
-// CHECK-NEXT:  }, 
-// CHECK-NEXT:  "name": "TestObjCSubscriptRef", 
+// CHECK-NEXT:  },
+// CHECK-NEXT:  "name": "TestObjCSubscriptRef",
 // CHECK-NEXT:  "type": {
 // CHECK-NEXT:   "qualType": "void (NSMutableArray *, NSMutableDictionary *)"
-// CHECK-NEXT:  }, 
+// CHECK-NEXT:  },
 // 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:     "line": 81, 
-// CHECK-NEXT:     "col": 43, 
+// CHECK-NEXT:     "offset": 1929,
+// CHECK-NEXT:     "line": 81,
+// CHECK-NEXT:     "col": 43,
 // CHECK-NEXT:     "tokLen": 5
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "col": 27, 
+// CHECK-NEXT:      "offset": 1913,
+// CHECK-NEXT:      "col": 27,
 // CHECK-NEXT:      "tokLen": 14
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "col": 43, 
+// CHECK-NEXT:      "offset": 1929,
+// CHECK-NEXT:      "col": 43,
 // CHECK-NEXT:      "tokLen": 5
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "isUsed": true, 
-// CHECK-NEXT:    "name": "Array", 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "isUsed": true,
+// CHECK-NEXT:    "name": "Array",
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "NSMutableArray *"
 // CHECK-NEXT:    }
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "id": "0x{{.*}}", 
-// CHECK-NEXT:    "kind": "ParmVarDecl", 
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "ParmVarDecl",
 // CHECK-NEXT:    "loc": {
-// CHECK-NEXT:     "col": 71, 
+// CHECK-NEXT:     "offset": 1957,
+// CHECK-NEXT:     "col": 71,
 // CHECK-NEXT:     "tokLen": 4
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "col": 50, 
+// CHECK-NEXT:      "offset": 1936,
+// CHECK-NEXT:      "col": 50,
 // CHECK-NEXT:      "tokLen": 19
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "col": 71, 
+// CHECK-NEXT:      "offset": 1957,
+// CHECK-NEXT:      "col": 71,
 // CHECK-NEXT:      "tokLen": 4
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "isUsed": true, 
-// CHECK-NEXT:    "name": "Dict", 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "isUsed": true,
+// CHECK-NEXT:    "name": "Dict",
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "NSMutableDictionary *"
 // CHECK-NEXT:    }
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "id": "0x{{.*}}", 
-// CHECK-NEXT:    "kind": "CompoundStmt", 
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "CompoundStmt",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "col": 77, 
+// CHECK-NEXT:      "offset": 1963,
+// CHECK-NEXT:      "col": 77,
 // CHECK-NEXT:      "tokLen": 1
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "line": 87, 
-// CHECK-NEXT:      "col": 1, 
+// CHECK-NEXT:      "offset": 2052,
+// CHECK-NEXT:      "line": 87,
+// CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "inner": [
 // CHECK-NEXT:     {
-// CHECK-NEXT:      "id": "0x{{.*}}", 
-// CHECK-NEXT:      "kind": "PseudoObjectExpr", 
+// CHECK-NEXT:      "id": "0x{{.*}}",
+// CHECK-NEXT:      "kind": "PseudoObjectExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
-// CHECK-NEXT:        "line": 82, 
-// CHECK-NEXT:        "col": 2, 
+// CHECK-NEXT:        "offset": 1966,
+// CHECK-NEXT:        "line": 82,
+// CHECK-NEXT:        "col": 2,
 // CHECK-NEXT:        "tokLen": 5
-// CHECK-NEXT:       }, 
+// CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
-// CHECK-NEXT:        "col": 20, 
+// CHECK-NEXT:        "offset": 1984,
+// CHECK-NEXT:        "col": 20,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
-// CHECK-NEXT:      }, 
+// CHECK-NEXT:      },
 // CHECK-NEXT:      "type": {
-// CHECK-NEXT:       "desugaredQualType": "id", 
-// CHECK-NEXT:       "qualType": "id", 
+// CHECK-NEXT:       "desugaredQualType": "id",
+// CHECK-NEXT:       "qualType": "id",
 // CHECK-NEXT:       "typeAliasDeclId": "0x{{.*}}"
-// CHECK-NEXT:      }, 
-// CHECK-NEXT:      "valueCategory": "rvalue", 
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "valueCategory": "rvalue",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
-// CHECK-NEXT:        "id": "0x{{.*}}", 
-// CHECK-NEXT:        "kind": "BinaryOperator", 
+// CHECK-NEXT:        "id": "0x{{.*}}",
+// CHECK-NEXT:        "kind": "BinaryOperator",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
-// CHECK-NEXT:          "col": 2, 
+// CHECK-NEXT:          "offset": 1966,
+// CHECK-NEXT:          "col": 2,
 // CHECK-NEXT:          "tokLen": 5
-// CHECK-NEXT:         }, 
+// CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "col": 20, 
+// CHECK-NEXT:          "offset": 1984,
+// CHECK-NEXT:          "col": 20,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
-// CHECK-NEXT:        }, 
+// CHECK-NEXT:        },
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "void *"
-// CHECK-NEXT:        }, 
-// CHECK-NEXT:        "valueCategory": "rvalue", 
-// CHECK-NEXT:        "opcode": "=", 
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "opcode": "=",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
-// CHECK-NEXT:          "id": "0x{{.*}}", 
-// CHECK-NEXT:          "kind": "ObjCSubscriptRefExpr", 
+// CHECK-NEXT:          "id": "0x{{.*}}",
+// CHECK-NEXT:          "kind": "ObjCSubscriptRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
-// CHECK-NEXT:            "col": 2, 
+// CHECK-NEXT:            "offset": 1966,
+// CHECK-NEXT:            "col": 2,
 // CHECK-NEXT:            "tokLen": 5
-// CHECK-NEXT:           }, 
+// CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
-// CHECK-NEXT:            "col": 9, 
+// CHECK-NEXT:            "offset": 1973,
+// CHECK-NEXT:            "col": 9,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
-// CHECK-NEXT:          }, 
+// CHECK-NEXT:          },
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "qualType": "<pseudo-object type>"
-// CHECK-NEXT:          }, 
-// CHECK-NEXT:          "valueCategory": "lvalue", 
-// CHECK-NEXT:          "subscriptKind": "array", 
+// CHECK-NEXT:          },
+// CHECK-NEXT:          "valueCategory": "lvalue",
+// CHECK-NEXT:          "subscriptKind": "array",
 // CHECK-NEXT:          "inner": [
 // CHECK-NEXT:           {
-// CHECK-NEXT:            "id": "0x{{.*}}", 
-// CHECK-NEXT:            "kind": "OpaqueValueExpr", 
+// CHECK-NEXT:            "id": "0x{{.*}}",
+// CHECK-NEXT:            "kind": "OpaqueValueExpr",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
-// CHECK-NEXT:              "col": 2, 
+// CHECK-NEXT:              "offset": 1966,
+// CHECK-NEXT:              "col": 2,
 // CHECK-NEXT:              "tokLen": 5
-// CHECK-NEXT:             }, 
+// CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
-// CHECK-NEXT:              "col": 2, 
+// CHECK-NEXT:              "offset": 1966,
+// CHECK-NEXT:              "col": 2,
 // CHECK-NEXT:              "tokLen": 5
 // CHECK-NEXT:             }
-// CHECK-NEXT:            }, 
+// CHECK-NEXT:            },
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "qualType": "NSMutableArray *"
-// CHECK-NEXT:            }, 
-// CHECK-NEXT:            "valueCategory": "rvalue", 
+// CHECK-NEXT:            },
+// CHECK-NEXT:            "valueCategory": "rvalue",
 // CHECK-NEXT:            "inner": [
 // CHECK-NEXT:             {
-// CHECK-NEXT:              "id": "0x{{.*}}", 
-// CHECK-NEXT:              "kind": "ImplicitCastExpr", 
+// CHECK-NEXT:              "id": "0x{{.*}}",
+// CHECK-NEXT:              "kind": "ImplicitCastExpr",
 // CHECK-NEXT:              "range": {
 // CHECK-NEXT:               "begin": {
-// CHECK-NEXT:                "col": 2, 
+// CHECK-NEXT:                "offset": 1966,
+// CHECK-NEXT:                "col": 2,
 // CHECK-NEXT:                "tokLen": 5
-// CHECK-NEXT:               }, 
+// CHECK-NEXT:               },
 // CHECK-NEXT:               "end": {
-// CHECK-NEXT:                "col": 2, 
+// CHECK-NEXT:                "offset": 1966,
+// CHECK-NEXT:                "col": 2,
 // CHECK-NEXT:                "tokLen": 5
 // CHECK-NEXT:               }
-// CHECK-NEXT:              }, 
+// CHECK-NEXT:              },
 // CHECK-NEXT:              "type": {
 // CHECK-NEXT:               "qualType": "NSMutableArray *"
-// CHECK-NEXT:              }, 
-// CHECK-NEXT:              "valueCategory": "rvalue", 
-// CHECK-NEXT:              "castKind": "LValueToRValue", 
+// CHECK-NEXT:              },
+// CHECK-NEXT:              "valueCategory": "rvalue",
+// CHECK-NEXT:              "castKind": "LValueToRValue",
 // CHECK-NEXT:              "inner": [
 // CHECK-NEXT:               {
-// CHECK-NEXT:                "id": "0x{{.*}}", 
-// CHECK-NEXT:                "kind": "DeclRefExpr", 
+// CHECK-NEXT:                "id": "0x{{.*}}",
+// CHECK-NEXT:                "kind": "DeclRefExpr",
 // CHECK-NEXT:                "range": {
 // CHECK-NEXT:                 "begin": {
-// CHECK-NEXT:                  "col": 2, 
+// CHECK-NEXT:                  "offset": 1966,
+// CHECK-NEXT:                  "col": 2,
 // CHECK-NEXT:                  "tokLen": 5
-// CHECK-NEXT:                 }, 
+// CHECK-NEXT:                 },
 // CHECK-NEXT:                 "end": {
-// CHECK-NEXT:                  "col": 2, 
+// CHECK-NEXT:                  "offset": 1966,
+// CHECK-NEXT:                  "col": 2,
 // CHECK-NEXT:                  "tokLen": 5
 // CHECK-NEXT:                 }
-// CHECK-NEXT:                }, 
+// CHECK-NEXT:                },
 // CHECK-NEXT:                "type": {
 // CHECK-NEXT:                 "qualType": "NSMutableArray *"
-// CHECK-NEXT:                }, 
-// CHECK-NEXT:                "valueCategory": "lvalue", 
+// CHECK-NEXT:                },
+// CHECK-NEXT:                "valueCategory": "lvalue",
 // CHECK-NEXT:                "referencedDecl": {
-// CHECK-NEXT:                 "id": "0x{{.*}}", 
-// CHECK-NEXT:                 "kind": "ParmVarDecl", 
-// CHECK-NEXT:                 "name": "Array", 
+// CHECK-NEXT:                 "id": "0x{{.*}}",
+// CHECK-NEXT:                 "kind": "ParmVarDecl",
+// CHECK-NEXT:                 "name": "Array",
 // CHECK-NEXT:                 "type": {
 // CHECK-NEXT:                  "qualType": "NSMutableArray *"
 // CHECK-NEXT:                 }
@@ -1958,102 +2142,112 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:              ]
 // CHECK-NEXT:             }
 // CHECK-NEXT:            ]
-// CHECK-NEXT:           }, 
+// CHECK-NEXT:           },
 // CHECK-NEXT:           {
-// CHECK-NEXT:            "id": "0x{{.*}}", 
-// CHECK-NEXT:            "kind": "OpaqueValueExpr", 
+// CHECK-NEXT:            "id": "0x{{.*}}",
+// CHECK-NEXT:            "kind": "OpaqueValueExpr",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
-// CHECK-NEXT:              "col": 8, 
+// CHECK-NEXT:              "offset": 1972,
+// CHECK-NEXT:              "col": 8,
 // CHECK-NEXT:              "tokLen": 1
-// CHECK-NEXT:             }, 
+// CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
-// CHECK-NEXT:              "col": 8, 
+// CHECK-NEXT:              "offset": 1972,
+// CHECK-NEXT:              "col": 8,
 // CHECK-NEXT:              "tokLen": 1
 // 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:            "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": 8, 
+// CHECK-NEXT:                "offset": 1972,
+// CHECK-NEXT:                "col": 8,
 // CHECK-NEXT:                "tokLen": 1
-// CHECK-NEXT:               }, 
+// CHECK-NEXT:               },
 // CHECK-NEXT:               "end": {
-// CHECK-NEXT:                "col": 8, 
+// CHECK-NEXT:                "offset": 1972,
+// CHECK-NEXT:                "col": 8,
 // CHECK-NEXT:                "tokLen": 1
 // 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": "OpaqueValueExpr", 
+// CHECK-NEXT:          "id": "0x{{.*}}",
+// CHECK-NEXT:          "kind": "OpaqueValueExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
-// CHECK-NEXT:            "col": 13, 
+// CHECK-NEXT:            "offset": 1977,
+// CHECK-NEXT:            "col": 13,
 // CHECK-NEXT:            "tokLen": 1
-// CHECK-NEXT:           }, 
+// CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
-// CHECK-NEXT:            "col": 20, 
+// CHECK-NEXT:            "offset": 1984,
+// CHECK-NEXT:            "col": 20,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
-// CHECK-NEXT:          }, 
+// CHECK-NEXT:          },
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "qualType": "void *"
-// CHECK-NEXT:          }, 
-// CHECK-NEXT:          "valueCategory": "rvalue", 
+// CHECK-NEXT:          },
+// CHECK-NEXT:          "valueCategory": "rvalue",
 // CHECK-NEXT:          "inner": [
 // CHECK-NEXT:           {
-// CHECK-NEXT:            "id": "0x{{.*}}", 
-// CHECK-NEXT:            "kind": "CStyleCastExpr", 
+// CHECK-NEXT:            "id": "0x{{.*}}",
+// CHECK-NEXT:            "kind": "CStyleCastExpr",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
-// CHECK-NEXT:              "col": 13, 
+// CHECK-NEXT:              "offset": 1977,
+// CHECK-NEXT:              "col": 13,
 // CHECK-NEXT:              "tokLen": 1
-// CHECK-NEXT:             }, 
+// CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
-// CHECK-NEXT:              "col": 20, 
+// CHECK-NEXT:              "offset": 1984,
+// CHECK-NEXT:              "col": 20,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
-// CHECK-NEXT:            }, 
+// CHECK-NEXT:            },
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "qualType": "void *"
-// CHECK-NEXT:            }, 
-// CHECK-NEXT:            "valueCategory": "rvalue", 
-// CHECK-NEXT:            "castKind": "NullToPointer", 
+// CHECK-NEXT:            },
+// CHECK-NEXT:            "valueCategory": "rvalue",
+// CHECK-NEXT:            "castKind": "NullToPointer",
 // 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": 20, 
+// CHECK-NEXT:                "offset": 1984,
+// CHECK-NEXT:                "col": 20,
 // CHECK-NEXT:                "tokLen": 1
-// CHECK-NEXT:               }, 
+// CHECK-NEXT:               },
 // CHECK-NEXT:               "end": {
-// CHECK-NEXT:                "col": 20, 
+// CHECK-NEXT:                "offset": 1984,
+// CHECK-NEXT:                "col": 20,
 // CHECK-NEXT:                "tokLen": 1
 // 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:            ]
@@ -2061,65 +2255,71 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:          ]
 // CHECK-NEXT:         }
 // CHECK-NEXT:        ]
-// CHECK-NEXT:       }, 
+// CHECK-NEXT:       },
 // CHECK-NEXT:       {
-// CHECK-NEXT:        "id": "0x{{.*}}", 
-// CHECK-NEXT:        "kind": "OpaqueValueExpr", 
+// CHECK-NEXT:        "id": "0x{{.*}}",
+// CHECK-NEXT:        "kind": "OpaqueValueExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
-// CHECK-NEXT:          "col": 2, 
+// CHECK-NEXT:          "offset": 1966,
+// CHECK-NEXT:          "col": 2,
 // CHECK-NEXT:          "tokLen": 5
-// CHECK-NEXT:         }, 
+// CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "col": 2, 
+// CHECK-NEXT:          "offset": 1966,
+// CHECK-NEXT:          "col": 2,
 // CHECK-NEXT:          "tokLen": 5
 // CHECK-NEXT:         }
-// CHECK-NEXT:        }, 
+// CHECK-NEXT:        },
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "NSMutableArray *"
-// CHECK-NEXT:        }, 
-// CHECK-NEXT:        "valueCategory": "rvalue", 
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "valueCategory": "rvalue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
-// CHECK-NEXT:          "id": "0x{{.*}}", 
-// CHECK-NEXT:          "kind": "ImplicitCastExpr", 
+// CHECK-NEXT:          "id": "0x{{.*}}",
+// CHECK-NEXT:          "kind": "ImplicitCastExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
-// CHECK-NEXT:            "col": 2, 
+// CHECK-NEXT:            "offset": 1966,
+// CHECK-NEXT:            "col": 2,
 // CHECK-NEXT:            "tokLen": 5
-// CHECK-NEXT:           }, 
+// CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
-// CHECK-NEXT:            "col": 2, 
+// CHECK-NEXT:            "offset": 1966,
+// CHECK-NEXT:            "col": 2,
 // CHECK-NEXT:            "tokLen": 5
 // CHECK-NEXT:           }
-// CHECK-NEXT:          }, 
+// CHECK-NEXT:          },
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "qualType": "NSMutableArray *"
-// CHECK-NEXT:          }, 
-// CHECK-NEXT:          "valueCategory": "rvalue", 
-// CHECK-NEXT:          "castKind": "LValueToRValue", 
+// CHECK-NEXT:          },
+// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "castKind": "LValueToRValue",
 // CHECK-NEXT:          "inner": [
 // CHECK-NEXT:           {
-// CHECK-NEXT:            "id": "0x{{.*}}", 
-// CHECK-NEXT:            "kind": "DeclRefExpr", 
+// CHECK-NEXT:            "id": "0x{{.*}}",
+// CHECK-NEXT:            "kind": "DeclRefExpr",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
-// CHECK-NEXT:              "col": 2, 
+// CHECK-NEXT:              "offset": 1966,
+// CHECK-NEXT:              "col": 2,
 // CHECK-NEXT:              "tokLen": 5
-// CHECK-NEXT:             }, 
+// CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
-// CHECK-NEXT:              "col": 2, 
+// CHECK-NEXT:              "offset": 1966,
+// CHECK-NEXT:              "col": 2,
 // CHECK-NEXT:              "tokLen": 5
 // CHECK-NEXT:             }
-// CHECK-NEXT:            }, 
+// CHECK-NEXT:            },
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "qualType": "NSMutableArray *"
-// CHECK-NEXT:            }, 
-// CHECK-NEXT:            "valueCategory": "lvalue", 
+// CHECK-NEXT:            },
+// CHECK-NEXT:            "valueCategory": "lvalue",
 // CHECK-NEXT:            "referencedDecl": {
-// CHECK-NEXT:             "id": "0x{{.*}}", 
-// CHECK-NEXT:             "kind": "ParmVarDecl", 
-// CHECK-NEXT:             "name": "Array", 
+// CHECK-NEXT:             "id": "0x{{.*}}",
+// CHECK-NEXT:             "kind": "ParmVarDecl",
+// CHECK-NEXT:             "name": "Array",
 // CHECK-NEXT:             "type": {
 // CHECK-NEXT:              "qualType": "NSMutableArray *"
 // CHECK-NEXT:             }
@@ -2128,201 +2328,221 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:          ]
 // CHECK-NEXT:         }
 // CHECK-NEXT:        ]
-// CHECK-NEXT:       }, 
+// CHECK-NEXT:       },
 // CHECK-NEXT:       {
-// CHECK-NEXT:        "id": "0x{{.*}}", 
-// CHECK-NEXT:        "kind": "OpaqueValueExpr", 
+// CHECK-NEXT:        "id": "0x{{.*}}",
+// CHECK-NEXT:        "kind": "OpaqueValueExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
-// CHECK-NEXT:          "col": 8, 
+// CHECK-NEXT:          "offset": 1972,
+// CHECK-NEXT:          "col": 8,
 // CHECK-NEXT:          "tokLen": 1
-// CHECK-NEXT:         }, 
+// CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "col": 8, 
+// CHECK-NEXT:          "offset": 1972,
+// CHECK-NEXT:          "col": 8,
 // CHECK-NEXT:          "tokLen": 1
 // 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:        "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": 8, 
+// CHECK-NEXT:            "offset": 1972,
+// CHECK-NEXT:            "col": 8,
 // CHECK-NEXT:            "tokLen": 1
-// CHECK-NEXT:           }, 
+// CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
-// CHECK-NEXT:            "col": 8, 
+// CHECK-NEXT:            "offset": 1972,
+// CHECK-NEXT:            "col": 8,
 // CHECK-NEXT:            "tokLen": 1
 // 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:        "id": "0x{{.*}}", 
-// CHECK-NEXT:        "kind": "OpaqueValueExpr", 
+// CHECK-NEXT:        "id": "0x{{.*}}",
+// CHECK-NEXT:        "kind": "OpaqueValueExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
-// CHECK-NEXT:          "col": 13, 
+// CHECK-NEXT:          "offset": 1977,
+// CHECK-NEXT:          "col": 13,
 // CHECK-NEXT:          "tokLen": 1
-// CHECK-NEXT:         }, 
+// CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "col": 20, 
+// CHECK-NEXT:          "offset": 1984,
+// CHECK-NEXT:          "col": 20,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
-// CHECK-NEXT:        }, 
+// CHECK-NEXT:        },
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "void *"
-// CHECK-NEXT:        }, 
-// CHECK-NEXT:        "valueCategory": "rvalue", 
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "valueCategory": "rvalue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
-// CHECK-NEXT:          "id": "0x{{.*}}", 
-// CHECK-NEXT:          "kind": "CStyleCastExpr", 
+// CHECK-NEXT:          "id": "0x{{.*}}",
+// CHECK-NEXT:          "kind": "CStyleCastExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
-// CHECK-NEXT:            "col": 13, 
+// CHECK-NEXT:            "offset": 1977,
+// CHECK-NEXT:            "col": 13,
 // CHECK-NEXT:            "tokLen": 1
-// CHECK-NEXT:           }, 
+// CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
-// CHECK-NEXT:            "col": 20, 
+// CHECK-NEXT:            "offset": 1984,
+// CHECK-NEXT:            "col": 20,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
-// CHECK-NEXT:          }, 
+// CHECK-NEXT:          },
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "qualType": "void *"
-// CHECK-NEXT:          }, 
-// CHECK-NEXT:          "valueCategory": "rvalue", 
-// CHECK-NEXT:          "castKind": "NullToPointer", 
+// CHECK-NEXT:          },
+// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "castKind": "NullToPointer",
 // 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": 20, 
+// CHECK-NEXT:              "offset": 1984,
+// CHECK-NEXT:              "col": 20,
 // CHECK-NEXT:              "tokLen": 1
-// CHECK-NEXT:             }, 
+// CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
-// CHECK-NEXT:              "col": 20, 
+// CHECK-NEXT:              "offset": 1984,
+// CHECK-NEXT:              "col": 20,
 // CHECK-NEXT:              "tokLen": 1
 // 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": "OpaqueValueExpr", 
+// CHECK-NEXT:        "id": "0x{{.*}}",
+// CHECK-NEXT:        "kind": "OpaqueValueExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
-// CHECK-NEXT:          "col": 13, 
+// CHECK-NEXT:          "offset": 1977,
+// CHECK-NEXT:          "col": 13,
 // CHECK-NEXT:          "tokLen": 1
-// CHECK-NEXT:         }, 
+// CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "col": 20, 
+// CHECK-NEXT:          "offset": 1984,
+// CHECK-NEXT:          "col": 20,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
-// CHECK-NEXT:        }, 
+// CHECK-NEXT:        },
 // CHECK-NEXT:        "type": {
-// CHECK-NEXT:         "desugaredQualType": "id", 
-// CHECK-NEXT:         "qualType": "id", 
+// CHECK-NEXT:         "desugaredQualType": "id",
+// CHECK-NEXT:         "qualType": "id",
 // CHECK-NEXT:         "typeAliasDeclId": "0x{{.*}}"
-// CHECK-NEXT:        }, 
-// CHECK-NEXT:        "valueCategory": "rvalue", 
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "valueCategory": "rvalue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
-// CHECK-NEXT:          "id": "0x{{.*}}", 
-// CHECK-NEXT:          "kind": "ImplicitCastExpr", 
+// CHECK-NEXT:          "id": "0x{{.*}}",
+// CHECK-NEXT:          "kind": "ImplicitCastExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
-// CHECK-NEXT:            "col": 13, 
+// CHECK-NEXT:            "offset": 1977,
+// CHECK-NEXT:            "col": 13,
 // CHECK-NEXT:            "tokLen": 1
-// CHECK-NEXT:           }, 
+// CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
-// CHECK-NEXT:            "col": 20, 
+// CHECK-NEXT:            "offset": 1984,
+// CHECK-NEXT:            "col": 20,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
-// CHECK-NEXT:          }, 
+// CHECK-NEXT:          },
 // CHECK-NEXT:          "type": {
-// CHECK-NEXT:           "desugaredQualType": "id", 
-// CHECK-NEXT:           "qualType": "id", 
+// CHECK-NEXT:           "desugaredQualType": "id",
+// CHECK-NEXT:           "qualType": "id",
 // CHECK-NEXT:           "typeAliasDeclId": "0x{{.*}}"
-// CHECK-NEXT:          }, 
-// CHECK-NEXT:          "valueCategory": "rvalue", 
-// CHECK-NEXT:          "castKind": "NullToPointer", 
+// CHECK-NEXT:          },
+// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "castKind": "NullToPointer",
 // CHECK-NEXT:          "inner": [
 // CHECK-NEXT:           {
-// CHECK-NEXT:            "id": "0x{{.*}}", 
-// CHECK-NEXT:            "kind": "OpaqueValueExpr", 
+// CHECK-NEXT:            "id": "0x{{.*}}",
+// CHECK-NEXT:            "kind": "OpaqueValueExpr",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
-// CHECK-NEXT:              "col": 13, 
+// CHECK-NEXT:              "offset": 1977,
+// CHECK-NEXT:              "col": 13,
 // CHECK-NEXT:              "tokLen": 1
-// CHECK-NEXT:             }, 
+// CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
-// CHECK-NEXT:              "col": 20, 
+// CHECK-NEXT:              "offset": 1984,
+// CHECK-NEXT:              "col": 20,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
-// CHECK-NEXT:            }, 
+// CHECK-NEXT:            },
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "qualType": "void *"
-// CHECK-NEXT:            }, 
-// CHECK-NEXT:            "valueCategory": "rvalue", 
+// CHECK-NEXT:            },
+// CHECK-NEXT:            "valueCategory": "rvalue",
 // CHECK-NEXT:            "inner": [
 // CHECK-NEXT:             {
-// CHECK-NEXT:              "id": "0x{{.*}}", 
-// CHECK-NEXT:              "kind": "CStyleCastExpr", 
+// CHECK-NEXT:              "id": "0x{{.*}}",
+// CHECK-NEXT:              "kind": "CStyleCastExpr",
 // CHECK-NEXT:              "range": {
 // CHECK-NEXT:               "begin": {
-// CHECK-NEXT:                "col": 13, 
+// CHECK-NEXT:                "offset": 1977,
+// CHECK-NEXT:                "col": 13,
 // CHECK-NEXT:                "tokLen": 1
-// CHECK-NEXT:               }, 
+// CHECK-NEXT:               },
 // CHECK-NEXT:               "end": {
-// CHECK-NEXT:                "col": 20, 
+// CHECK-NEXT:                "offset": 1984,
+// CHECK-NEXT:                "col": 20,
 // CHECK-NEXT:                "tokLen": 1
 // CHECK-NEXT:               }
-// CHECK-NEXT:              }, 
+// CHECK-NEXT:              },
 // CHECK-NEXT:              "type": {
 // CHECK-NEXT:               "qualType": "void *"
-// CHECK-NEXT:              }, 
-// CHECK-NEXT:              "valueCategory": "rvalue", 
-// CHECK-NEXT:              "castKind": "NullToPointer", 
+// CHECK-NEXT:              },
+// CHECK-NEXT:              "valueCategory": "rvalue",
+// CHECK-NEXT:              "castKind": "NullToPointer",
 // 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": 20, 
+// CHECK-NEXT:                  "offset": 1984,
+// CHECK-NEXT:                  "col": 20,
 // CHECK-NEXT:                  "tokLen": 1
-// CHECK-NEXT:                 }, 
+// CHECK-NEXT:                 },
 // CHECK-NEXT:                 "end": {
-// CHECK-NEXT:                  "col": 20, 
+// CHECK-NEXT:                  "offset": 1984,
+// CHECK-NEXT:                  "col": 20,
 // CHECK-NEXT:                  "tokLen": 1
 // 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:              ]
@@ -2332,85 +2552,93 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:          ]
 // CHECK-NEXT:         }
 // CHECK-NEXT:        ]
-// CHECK-NEXT:       }, 
+// CHECK-NEXT:       },
 // CHECK-NEXT:       {
-// CHECK-NEXT:        "id": "0x{{.*}}", 
-// CHECK-NEXT:        "kind": "ObjCMessageExpr", 
+// CHECK-NEXT:        "id": "0x{{.*}}",
+// CHECK-NEXT:        "kind": "ObjCMessageExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
-// CHECK-NEXT:          "col": 2, 
+// CHECK-NEXT:          "offset": 1966,
+// CHECK-NEXT:          "col": 2,
 // CHECK-NEXT:          "tokLen": 5
-// CHECK-NEXT:         }, 
+// CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "col": 2, 
+// CHECK-NEXT:          "offset": 1966,
+// CHECK-NEXT:          "col": 2,
 // CHECK-NEXT:          "tokLen": 5
 // CHECK-NEXT:         }
-// CHECK-NEXT:        }, 
+// CHECK-NEXT:        },
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "void"
-// CHECK-NEXT:        }, 
-// CHECK-NEXT:        "valueCategory": "rvalue", 
-// CHECK-NEXT:        "selector": "setObject:atIndexedSubscript:", 
-// CHECK-NEXT:        "receiverKind": "instance", 
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "selector": "setObject:atIndexedSubscript:",
+// CHECK-NEXT:        "receiverKind": "instance",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
-// CHECK-NEXT:          "id": "0x{{.*}}", 
-// CHECK-NEXT:          "kind": "OpaqueValueExpr", 
+// CHECK-NEXT:          "id": "0x{{.*}}",
+// CHECK-NEXT:          "kind": "OpaqueValueExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
-// CHECK-NEXT:            "col": 2, 
+// CHECK-NEXT:            "offset": 1966,
+// CHECK-NEXT:            "col": 2,
 // CHECK-NEXT:            "tokLen": 5
-// CHECK-NEXT:           }, 
+// CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
-// CHECK-NEXT:            "col": 2, 
+// CHECK-NEXT:            "offset": 1966,
+// CHECK-NEXT:            "col": 2,
 // CHECK-NEXT:            "tokLen": 5
 // CHECK-NEXT:           }
-// CHECK-NEXT:          }, 
+// CHECK-NEXT:          },
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "qualType": "NSMutableArray *"
-// CHECK-NEXT:          }, 
-// CHECK-NEXT:          "valueCategory": "rvalue", 
+// CHECK-NEXT:          },
+// CHECK-NEXT:          "valueCategory": "rvalue",
 // CHECK-NEXT:          "inner": [
 // CHECK-NEXT:           {
-// CHECK-NEXT:            "id": "0x{{.*}}", 
-// CHECK-NEXT:            "kind": "ImplicitCastExpr", 
+// CHECK-NEXT:            "id": "0x{{.*}}",
+// CHECK-NEXT:            "kind": "ImplicitCastExpr",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
-// CHECK-NEXT:              "col": 2, 
+// CHECK-NEXT:              "offset": 1966,
+// CHECK-NEXT:              "col": 2,
 // CHECK-NEXT:              "tokLen": 5
-// CHECK-NEXT:             }, 
+// CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
-// CHECK-NEXT:              "col": 2, 
+// CHECK-NEXT:              "offset": 1966,
+// CHECK-NEXT:              "col": 2,
 // CHECK-NEXT:              "tokLen": 5
 // CHECK-NEXT:             }
-// CHECK-NEXT:            }, 
+// CHECK-NEXT:            },
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "qualType": "NSMutableArray *"
-// CHECK-NEXT:            }, 
-// CHECK-NEXT:            "valueCategory": "rvalue", 
-// CHECK-NEXT:            "castKind": "LValueToRValue", 
+// CHECK-NEXT:            },
+// CHECK-NEXT:            "valueCategory": "rvalue",
+// CHECK-NEXT:            "castKind": "LValueToRValue",
 // CHECK-NEXT:            "inner": [
 // CHECK-NEXT:             {
-// CHECK-NEXT:              "id": "0x{{.*}}", 
-// CHECK-NEXT:              "kind": "DeclRefExpr", 
+// CHECK-NEXT:              "id": "0x{{.*}}",
+// CHECK-NEXT:              "kind": "DeclRefExpr",
 // CHECK-NEXT:              "range": {
 // CHECK-NEXT:               "begin": {
-// CHECK-NEXT:                "col": 2, 
+// CHECK-NEXT:                "offset": 1966,
+// CHECK-NEXT:                "col": 2,
 // CHECK-NEXT:                "tokLen": 5
-// CHECK-NEXT:               }, 
+// CHECK-NEXT:               },
 // CHECK-NEXT:               "end": {
-// CHECK-NEXT:                "col": 2, 
+// CHECK-NEXT:                "offset": 1966,
+// CHECK-NEXT:                "col": 2,
 // CHECK-NEXT:                "tokLen": 5
 // CHECK-NEXT:               }
-// CHECK-NEXT:              }, 
+// CHECK-NEXT:              },
 // CHECK-NEXT:              "type": {
 // CHECK-NEXT:               "qualType": "NSMutableArray *"
-// CHECK-NEXT:              }, 
-// CHECK-NEXT:              "valueCategory": "lvalue", 
+// CHECK-NEXT:              },
+// CHECK-NEXT:              "valueCategory": "lvalue",
 // CHECK-NEXT:              "referencedDecl": {
-// CHECK-NEXT:               "id": "0x{{.*}}", 
-// CHECK-NEXT:               "kind": "ParmVarDecl", 
-// CHECK-NEXT:               "name": "Array", 
+// CHECK-NEXT:               "id": "0x{{.*}}",
+// CHECK-NEXT:               "kind": "ParmVarDecl",
+// CHECK-NEXT:               "name": "Array",
 // CHECK-NEXT:               "type": {
 // CHECK-NEXT:                "qualType": "NSMutableArray *"
 // CHECK-NEXT:               }
@@ -2419,102 +2647,112 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:            ]
 // CHECK-NEXT:           }
 // CHECK-NEXT:          ]
-// CHECK-NEXT:         }, 
+// CHECK-NEXT:         },
 // CHECK-NEXT:         {
-// CHECK-NEXT:          "id": "0x{{.*}}", 
-// CHECK-NEXT:          "kind": "OpaqueValueExpr", 
+// CHECK-NEXT:          "id": "0x{{.*}}",
+// CHECK-NEXT:          "kind": "OpaqueValueExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
-// CHECK-NEXT:            "col": 13, 
+// CHECK-NEXT:            "offset": 1977,
+// CHECK-NEXT:            "col": 13,
 // CHECK-NEXT:            "tokLen": 1
-// CHECK-NEXT:           }, 
+// CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
-// CHECK-NEXT:            "col": 20, 
+// CHECK-NEXT:            "offset": 1984,
+// CHECK-NEXT:            "col": 20,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
-// CHECK-NEXT:          }, 
+// CHECK-NEXT:          },
 // CHECK-NEXT:          "type": {
-// CHECK-NEXT:           "desugaredQualType": "id", 
-// CHECK-NEXT:           "qualType": "id", 
+// CHECK-NEXT:           "desugaredQualType": "id",
+// CHECK-NEXT:           "qualType": "id",
 // CHECK-NEXT:           "typeAliasDeclId": "0x{{.*}}"
-// CHECK-NEXT:          }, 
-// CHECK-NEXT:          "valueCategory": "rvalue", 
+// CHECK-NEXT:          },
+// CHECK-NEXT:          "valueCategory": "rvalue",
 // CHECK-NEXT:          "inner": [
 // CHECK-NEXT:           {
-// CHECK-NEXT:            "id": "0x{{.*}}", 
-// CHECK-NEXT:            "kind": "ImplicitCastExpr", 
+// CHECK-NEXT:            "id": "0x{{.*}}",
+// CHECK-NEXT:            "kind": "ImplicitCastExpr",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
-// CHECK-NEXT:              "col": 13, 
+// CHECK-NEXT:              "offset": 1977,
+// CHECK-NEXT:              "col": 13,
 // CHECK-NEXT:              "tokLen": 1
-// CHECK-NEXT:             }, 
+// CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
-// CHECK-NEXT:              "col": 20, 
+// CHECK-NEXT:              "offset": 1984,
+// CHECK-NEXT:              "col": 20,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
-// CHECK-NEXT:            }, 
+// CHECK-NEXT:            },
 // CHECK-NEXT:            "type": {
-// CHECK-NEXT:             "desugaredQualType": "id", 
-// CHECK-NEXT:             "qualType": "id", 
+// CHECK-NEXT:             "desugaredQualType": "id",
+// CHECK-NEXT:             "qualType": "id",
 // CHECK-NEXT:             "typeAliasDeclId": "0x{{.*}}"
-// CHECK-NEXT:            }, 
-// CHECK-NEXT:            "valueCategory": "rvalue", 
-// CHECK-NEXT:            "castKind": "NullToPointer", 
+// CHECK-NEXT:            },
+// CHECK-NEXT:            "valueCategory": "rvalue",
+// CHECK-NEXT:            "castKind": "NullToPointer",
 // CHECK-NEXT:            "inner": [
 // CHECK-NEXT:             {
-// CHECK-NEXT:              "id": "0x{{.*}}", 
-// CHECK-NEXT:              "kind": "OpaqueValueExpr", 
+// CHECK-NEXT:              "id": "0x{{.*}}",
+// CHECK-NEXT:              "kind": "OpaqueValueExpr",
 // CHECK-NEXT:              "range": {
 // CHECK-NEXT:               "begin": {
-// CHECK-NEXT:                "col": 13, 
+// CHECK-NEXT:                "offset": 1977,
+// CHECK-NEXT:                "col": 13,
 // CHECK-NEXT:                "tokLen": 1
-// CHECK-NEXT:               }, 
+// CHECK-NEXT:               },
 // CHECK-NEXT:               "end": {
-// CHECK-NEXT:                "col": 20, 
+// CHECK-NEXT:                "offset": 1984,
+// CHECK-NEXT:                "col": 20,
 // CHECK-NEXT:                "tokLen": 1
 // CHECK-NEXT:               }
-// CHECK-NEXT:              }, 
+// CHECK-NEXT:              },
 // CHECK-NEXT:              "type": {
 // CHECK-NEXT:               "qualType": "void *"
-// CHECK-NEXT:              }, 
-// CHECK-NEXT:              "valueCategory": "rvalue", 
+// CHECK-NEXT:              },
+// CHECK-NEXT:              "valueCategory": "rvalue",
 // CHECK-NEXT:              "inner": [
 // CHECK-NEXT:               {
-// CHECK-NEXT:                "id": "0x{{.*}}", 
-// CHECK-NEXT:                "kind": "CStyleCastExpr", 
+// CHECK-NEXT:                "id": "0x{{.*}}",
+// CHECK-NEXT:                "kind": "CStyleCastExpr",
 // CHECK-NEXT:                "range": {
 // CHECK-NEXT:                 "begin": {
-// CHECK-NEXT:                  "col": 13, 
+// CHECK-NEXT:                  "offset": 1977,
+// CHECK-NEXT:                  "col": 13,
 // CHECK-NEXT:                  "tokLen": 1
-// CHECK-NEXT:                 }, 
+// CHECK-NEXT:                 },
 // CHECK-NEXT:                 "end": {
-// CHECK-NEXT:                  "col": 20, 
+// CHECK-NEXT:                  "offset": 1984,
+// CHECK-NEXT:                  "col": 20,
 // CHECK-NEXT:                  "tokLen": 1
 // CHECK-NEXT:                 }
-// CHECK-NEXT:                }, 
+// CHECK-NEXT:                },
 // CHECK-NEXT:                "type": {
 // CHECK-NEXT:                 "qualType": "void *"
-// CHECK-NEXT:                }, 
-// CHECK-NEXT:                "valueCategory": "rvalue", 
-// CHECK-NEXT:                "castKind": "NullToPointer", 
+// CHECK-NEXT:                },
+// CHECK-NEXT:                "valueCategory": "rvalue",
+// CHECK-NEXT:                "castKind": "NullToPointer",
 // 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": 20, 
+// CHECK-NEXT:                    "offset": 1984,
+// CHECK-NEXT:                    "col": 20,
 // CHECK-NEXT:                    "tokLen": 1
-// CHECK-NEXT:                   }, 
+// CHECK-NEXT:                   },
 // CHECK-NEXT:                   "end": {
-// CHECK-NEXT:                    "col": 20, 
+// CHECK-NEXT:                    "offset": 1984,
+// CHECK-NEXT:                    "col": 20,
 // CHECK-NEXT:                    "tokLen": 1
 // 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:                ]
@@ -2524,42 +2762,46 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:            ]
 // CHECK-NEXT:           }
 // CHECK-NEXT:          ]
-// CHECK-NEXT:         }, 
+// CHECK-NEXT:         },
 // CHECK-NEXT:         {
-// CHECK-NEXT:          "id": "0x{{.*}}", 
-// CHECK-NEXT:          "kind": "OpaqueValueExpr", 
+// CHECK-NEXT:          "id": "0x{{.*}}",
+// CHECK-NEXT:          "kind": "OpaqueValueExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
-// CHECK-NEXT:            "col": 8, 
+// CHECK-NEXT:            "offset": 1972,
+// CHECK-NEXT:            "col": 8,
 // CHECK-NEXT:            "tokLen": 1
-// CHECK-NEXT:           }, 
+// CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
-// CHECK-NEXT:            "col": 8, 
+// CHECK-NEXT:            "offset": 1972,
+// CHECK-NEXT:            "col": 8,
 // CHECK-NEXT:            "tokLen": 1
 // 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:          "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": 8, 
+// CHECK-NEXT:              "offset": 1972,
+// CHECK-NEXT:              "col": 8,
 // CHECK-NEXT:              "tokLen": 1
-// CHECK-NEXT:             }, 
+// CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
-// CHECK-NEXT:              "col": 8, 
+// CHECK-NEXT:              "offset": 1972,
+// CHECK-NEXT:              "col": 8,
 // CHECK-NEXT:              "tokLen": 1
 // 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:          ]
@@ -2567,145 +2809,160 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:        ]
 // CHECK-NEXT:       }
 // CHECK-NEXT:      ]
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     {
-// CHECK-NEXT:      "id": "0x{{.*}}", 
-// CHECK-NEXT:      "kind": "DeclStmt", 
+// CHECK-NEXT:      "id": "0x{{.*}}",
+// CHECK-NEXT:      "kind": "DeclStmt",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
-// CHECK-NEXT:        "line": 83, 
-// CHECK-NEXT:        "col": 2, 
+// CHECK-NEXT:        "offset": 1988,
+// CHECK-NEXT:        "line": 83,
+// CHECK-NEXT:        "col": 2,
 // CHECK-NEXT:        "tokLen": 2
-// CHECK-NEXT:       }, 
+// CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
-// CHECK-NEXT:        "col": 17, 
+// CHECK-NEXT:        "offset": 2003,
+// CHECK-NEXT:        "col": 17,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
-// CHECK-NEXT:      }, 
+// CHECK-NEXT:      },
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
-// CHECK-NEXT:        "id": "0x{{.*}}", 
-// CHECK-NEXT:        "kind": "VarDecl", 
+// CHECK-NEXT:        "id": "0x{{.*}}",
+// CHECK-NEXT:        "kind": "VarDecl",
 // CHECK-NEXT:        "loc": {
-// CHECK-NEXT:         "col": 5, 
+// CHECK-NEXT:         "offset": 1991,
+// CHECK-NEXT:         "col": 5,
 // CHECK-NEXT:         "tokLen": 1
-// CHECK-NEXT:        }, 
+// CHECK-NEXT:        },
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
-// CHECK-NEXT:          "col": 2, 
+// CHECK-NEXT:          "offset": 1988,
+// CHECK-NEXT:          "col": 2,
 // CHECK-NEXT:          "tokLen": 2
-// CHECK-NEXT:         }, 
+// CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "col": 16, 
+// CHECK-NEXT:          "offset": 2002,
+// CHECK-NEXT:          "col": 16,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
-// CHECK-NEXT:        }, 
-// CHECK-NEXT:        "isUsed": true, 
-// CHECK-NEXT:        "name": "i", 
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "isUsed": true,
+// CHECK-NEXT:        "name": "i",
 // CHECK-NEXT:        "type": {
-// CHECK-NEXT:         "desugaredQualType": "id", 
-// CHECK-NEXT:         "qualType": "id", 
+// CHECK-NEXT:         "desugaredQualType": "id",
+// CHECK-NEXT:         "qualType": "id",
 // CHECK-NEXT:         "typeAliasDeclId": "0x{{.*}}"
-// CHECK-NEXT:        }, 
-// CHECK-NEXT:        "init": "c", 
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "init": "c",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
-// CHECK-NEXT:          "id": "0x{{.*}}", 
-// CHECK-NEXT:          "kind": "PseudoObjectExpr", 
+// CHECK-NEXT:          "id": "0x{{.*}}",
+// CHECK-NEXT:          "kind": "PseudoObjectExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
-// CHECK-NEXT:            "col": 9, 
+// CHECK-NEXT:            "offset": 1995,
+// CHECK-NEXT:            "col": 9,
 // CHECK-NEXT:            "tokLen": 5
-// CHECK-NEXT:           }, 
+// CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
-// CHECK-NEXT:            "col": 16, 
+// CHECK-NEXT:            "offset": 2002,
+// CHECK-NEXT:            "col": 16,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
-// CHECK-NEXT:          }, 
+// CHECK-NEXT:          },
 // CHECK-NEXT:          "type": {
-// CHECK-NEXT:           "desugaredQualType": "id", 
-// CHECK-NEXT:           "qualType": "id", 
+// CHECK-NEXT:           "desugaredQualType": "id",
+// CHECK-NEXT:           "qualType": "id",
 // CHECK-NEXT:           "typeAliasDeclId": "0x{{.*}}"
-// CHECK-NEXT:          }, 
-// CHECK-NEXT:          "valueCategory": "rvalue", 
+// CHECK-NEXT:          },
+// CHECK-NEXT:          "valueCategory": "rvalue",
 // CHECK-NEXT:          "inner": [
 // CHECK-NEXT:           {
-// CHECK-NEXT:            "id": "0x{{.*}}", 
-// CHECK-NEXT:            "kind": "ObjCSubscriptRefExpr", 
+// CHECK-NEXT:            "id": "0x{{.*}}",
+// CHECK-NEXT:            "kind": "ObjCSubscriptRefExpr",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
-// CHECK-NEXT:              "col": 9, 
+// CHECK-NEXT:              "offset": 1995,
+// CHECK-NEXT:              "col": 9,
 // CHECK-NEXT:              "tokLen": 5
-// CHECK-NEXT:             }, 
+// CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
-// CHECK-NEXT:              "col": 16, 
+// CHECK-NEXT:              "offset": 2002,
+// CHECK-NEXT:              "col": 16,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
-// CHECK-NEXT:            }, 
+// CHECK-NEXT:            },
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "qualType": "<pseudo-object type>"
-// CHECK-NEXT:            }, 
-// CHECK-NEXT:            "valueCategory": "lvalue", 
-// CHECK-NEXT:            "subscriptKind": "array", 
+// CHECK-NEXT:            },
+// CHECK-NEXT:            "valueCategory": "lvalue",
+// CHECK-NEXT:            "subscriptKind": "array",
 // CHECK-NEXT:            "inner": [
 // CHECK-NEXT:             {
-// CHECK-NEXT:              "id": "0x{{.*}}", 
-// CHECK-NEXT:              "kind": "OpaqueValueExpr", 
+// CHECK-NEXT:              "id": "0x{{.*}}",
+// CHECK-NEXT:              "kind": "OpaqueValueExpr",
 // CHECK-NEXT:              "range": {
 // CHECK-NEXT:               "begin": {
-// CHECK-NEXT:                "col": 9, 
+// CHECK-NEXT:                "offset": 1995,
+// CHECK-NEXT:                "col": 9,
 // CHECK-NEXT:                "tokLen": 5
-// CHECK-NEXT:               }, 
+// CHECK-NEXT:               },
 // CHECK-NEXT:               "end": {
-// CHECK-NEXT:                "col": 9, 
+// CHECK-NEXT:                "offset": 1995,
+// CHECK-NEXT:                "col": 9,
 // CHECK-NEXT:                "tokLen": 5
 // CHECK-NEXT:               }
-// CHECK-NEXT:              }, 
+// CHECK-NEXT:              },
 // CHECK-NEXT:              "type": {
 // CHECK-NEXT:               "qualType": "NSMutableArray *"
-// CHECK-NEXT:              }, 
-// CHECK-NEXT:              "valueCategory": "rvalue", 
+// CHECK-NEXT:              },
+// CHECK-NEXT:              "valueCategory": "rvalue",
 // CHECK-NEXT:              "inner": [
 // CHECK-NEXT:               {
-// CHECK-NEXT:                "id": "0x{{.*}}", 
-// CHECK-NEXT:                "kind": "ImplicitCastExpr", 
+// CHECK-NEXT:                "id": "0x{{.*}}",
+// CHECK-NEXT:                "kind": "ImplicitCastExpr",
 // CHECK-NEXT:                "range": {
 // CHECK-NEXT:                 "begin": {
-// CHECK-NEXT:                  "col": 9, 
+// CHECK-NEXT:                  "offset": 1995,
+// CHECK-NEXT:                  "col": 9,
 // CHECK-NEXT:                  "tokLen": 5
-// CHECK-NEXT:                 }, 
+// CHECK-NEXT:                 },
 // CHECK-NEXT:                 "end": {
-// CHECK-NEXT:                  "col": 9, 
+// CHECK-NEXT:                  "offset": 1995,
+// CHECK-NEXT:                  "col": 9,
 // CHECK-NEXT:                  "tokLen": 5
 // CHECK-NEXT:                 }
-// CHECK-NEXT:                }, 
+// CHECK-NEXT:                },
 // CHECK-NEXT:                "type": {
 // CHECK-NEXT:                 "qualType": "NSMutableArray *"
-// CHECK-NEXT:                }, 
-// CHECK-NEXT:                "valueCategory": "rvalue", 
-// CHECK-NEXT:                "castKind": "LValueToRValue", 
+// CHECK-NEXT:                },
+// CHECK-NEXT:                "valueCategory": "rvalue",
+// CHECK-NEXT:                "castKind": "LValueToRValue",
 // CHECK-NEXT:                "inner": [
 // CHECK-NEXT:                 {
-// CHECK-NEXT:                  "id": "0x{{.*}}", 
-// CHECK-NEXT:                  "kind": "DeclRefExpr", 
+// CHECK-NEXT:                  "id": "0x{{.*}}",
+// CHECK-NEXT:                  "kind": "DeclRefExpr",
 // CHECK-NEXT:                  "range": {
 // CHECK-NEXT:                   "begin": {
-// CHECK-NEXT:                    "col": 9, 
+// CHECK-NEXT:                    "offset": 1995,
+// CHECK-NEXT:                    "col": 9,
 // CHECK-NEXT:                    "tokLen": 5
-// CHECK-NEXT:                   }, 
+// CHECK-NEXT:                   },
 // CHECK-NEXT:                   "end": {
-// CHECK-NEXT:                    "col": 9, 
+// CHECK-NEXT:                    "offset": 1995,
+// CHECK-NEXT:                    "col": 9,
 // CHECK-NEXT:                    "tokLen": 5
 // CHECK-NEXT:                   }
-// CHECK-NEXT:                  }, 
+// CHECK-NEXT:                  },
 // CHECK-NEXT:                  "type": {
 // CHECK-NEXT:                   "qualType": "NSMutableArray *"
-// CHECK-NEXT:                  }, 
-// CHECK-NEXT:                  "valueCategory": "lvalue", 
+// CHECK-NEXT:                  },
+// CHECK-NEXT:                  "valueCategory": "lvalue",
 // CHECK-NEXT:                  "referencedDecl": {
-// CHECK-NEXT:                   "id": "0x{{.*}}", 
-// CHECK-NEXT:                   "kind": "ParmVarDecl", 
-// CHECK-NEXT:                   "name": "Array", 
+// CHECK-NEXT:                   "id": "0x{{.*}}",
+// CHECK-NEXT:                   "kind": "ParmVarDecl",
+// CHECK-NEXT:                   "name": "Array",
 // CHECK-NEXT:                   "type": {
 // CHECK-NEXT:                    "qualType": "NSMutableArray *"
 // CHECK-NEXT:                   }
@@ -2714,106 +2971,116 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:                ]
 // CHECK-NEXT:               }
 // CHECK-NEXT:              ]
-// CHECK-NEXT:             }, 
+// CHECK-NEXT:             },
 // CHECK-NEXT:             {
-// CHECK-NEXT:              "id": "0x{{.*}}", 
-// CHECK-NEXT:              "kind": "OpaqueValueExpr", 
+// CHECK-NEXT:              "id": "0x{{.*}}",
+// CHECK-NEXT:              "kind": "OpaqueValueExpr",
 // CHECK-NEXT:              "range": {
 // CHECK-NEXT:               "begin": {
-// CHECK-NEXT:                "col": 15, 
+// CHECK-NEXT:                "offset": 2001,
+// CHECK-NEXT:                "col": 15,
 // CHECK-NEXT:                "tokLen": 1
-// CHECK-NEXT:               }, 
+// CHECK-NEXT:               },
 // CHECK-NEXT:               "end": {
-// CHECK-NEXT:                "col": 15, 
+// CHECK-NEXT:                "offset": 2001,
+// CHECK-NEXT:                "col": 15,
 // CHECK-NEXT:                "tokLen": 1
 // 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:              "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": 15, 
+// CHECK-NEXT:                  "offset": 2001,
+// CHECK-NEXT:                  "col": 15,
 // CHECK-NEXT:                  "tokLen": 1
-// CHECK-NEXT:                 }, 
+// CHECK-NEXT:                 },
 // CHECK-NEXT:                 "end": {
-// CHECK-NEXT:                  "col": 15, 
+// CHECK-NEXT:                  "offset": 2001,
+// CHECK-NEXT:                  "col": 15,
 // CHECK-NEXT:                  "tokLen": 1
 // 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": "OpaqueValueExpr", 
+// CHECK-NEXT:            "id": "0x{{.*}}",
+// CHECK-NEXT:            "kind": "OpaqueValueExpr",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
-// CHECK-NEXT:              "col": 9, 
+// CHECK-NEXT:              "offset": 1995,
+// CHECK-NEXT:              "col": 9,
 // CHECK-NEXT:              "tokLen": 5
-// CHECK-NEXT:             }, 
+// CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
-// CHECK-NEXT:              "col": 9, 
+// CHECK-NEXT:              "offset": 1995,
+// CHECK-NEXT:              "col": 9,
 // CHECK-NEXT:              "tokLen": 5
 // CHECK-NEXT:             }
-// CHECK-NEXT:            }, 
+// CHECK-NEXT:            },
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "qualType": "NSMutableArray *"
-// CHECK-NEXT:            }, 
-// CHECK-NEXT:            "valueCategory": "rvalue", 
+// CHECK-NEXT:            },
+// CHECK-NEXT:            "valueCategory": "rvalue",
 // CHECK-NEXT:            "inner": [
 // CHECK-NEXT:             {
-// CHECK-NEXT:              "id": "0x{{.*}}", 
-// CHECK-NEXT:              "kind": "ImplicitCastExpr", 
+// CHECK-NEXT:              "id": "0x{{.*}}",
+// CHECK-NEXT:              "kind": "ImplicitCastExpr",
 // CHECK-NEXT:              "range": {
 // CHECK-NEXT:               "begin": {
-// CHECK-NEXT:                "col": 9, 
+// CHECK-NEXT:                "offset": 1995,
+// CHECK-NEXT:                "col": 9,
 // CHECK-NEXT:                "tokLen": 5
-// CHECK-NEXT:               }, 
+// CHECK-NEXT:               },
 // CHECK-NEXT:               "end": {
-// CHECK-NEXT:                "col": 9, 
+// CHECK-NEXT:                "offset": 1995,
+// CHECK-NEXT:                "col": 9,
 // CHECK-NEXT:                "tokLen": 5
 // CHECK-NEXT:               }
-// CHECK-NEXT:              }, 
+// CHECK-NEXT:              },
 // CHECK-NEXT:              "type": {
 // CHECK-NEXT:               "qualType": "NSMutableArray *"
-// CHECK-NEXT:              }, 
-// CHECK-NEXT:              "valueCategory": "rvalue", 
-// CHECK-NEXT:              "castKind": "LValueToRValue", 
+// CHECK-NEXT:              },
+// CHECK-NEXT:              "valueCategory": "rvalue",
+// CHECK-NEXT:              "castKind": "LValueToRValue",
 // CHECK-NEXT:              "inner": [
 // CHECK-NEXT:               {
-// CHECK-NEXT:                "id": "0x{{.*}}", 
-// CHECK-NEXT:                "kind": "DeclRefExpr", 
+// CHECK-NEXT:                "id": "0x{{.*}}",
+// CHECK-NEXT:                "kind": "DeclRefExpr",
 // CHECK-NEXT:                "range": {
 // CHECK-NEXT:                 "begin": {
-// CHECK-NEXT:                  "col": 9, 
+// CHECK-NEXT:                  "offset": 1995,
+// CHECK-NEXT:                  "col": 9,
 // CHECK-NEXT:                  "tokLen": 5
-// CHECK-NEXT:                 }, 
+// CHECK-NEXT:                 },
 // CHECK-NEXT:                 "end": {
-// CHECK-NEXT:                  "col": 9, 
+// CHECK-NEXT:                  "offset": 1995,
+// CHECK-NEXT:                  "col": 9,
 // CHECK-NEXT:                  "tokLen": 5
 // CHECK-NEXT:                 }
-// CHECK-NEXT:                }, 
+// CHECK-NEXT:                },
 // CHECK-NEXT:                "type": {
 // CHECK-NEXT:                 "qualType": "NSMutableArray *"
-// CHECK-NEXT:                }, 
-// CHECK-NEXT:                "valueCategory": "lvalue", 
+// CHECK-NEXT:                },
+// CHECK-NEXT:                "valueCategory": "lvalue",
 // CHECK-NEXT:                "referencedDecl": {
-// CHECK-NEXT:                 "id": "0x{{.*}}", 
-// CHECK-NEXT:                 "kind": "ParmVarDecl", 
-// CHECK-NEXT:                 "name": "Array", 
+// CHECK-NEXT:                 "id": "0x{{.*}}",
+// CHECK-NEXT:                 "kind": "ParmVarDecl",
+// CHECK-NEXT:                 "name": "Array",
 // CHECK-NEXT:                 "type": {
 // CHECK-NEXT:                  "qualType": "NSMutableArray *"
 // CHECK-NEXT:                 }
@@ -2822,126 +3089,138 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:              ]
 // CHECK-NEXT:             }
 // CHECK-NEXT:            ]
-// CHECK-NEXT:           }, 
+// CHECK-NEXT:           },
 // CHECK-NEXT:           {
-// CHECK-NEXT:            "id": "0x{{.*}}", 
-// CHECK-NEXT:            "kind": "OpaqueValueExpr", 
+// CHECK-NEXT:            "id": "0x{{.*}}",
+// CHECK-NEXT:            "kind": "OpaqueValueExpr",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
-// CHECK-NEXT:              "col": 15, 
+// CHECK-NEXT:              "offset": 2001,
+// CHECK-NEXT:              "col": 15,
 // CHECK-NEXT:              "tokLen": 1
-// CHECK-NEXT:             }, 
+// CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
-// CHECK-NEXT:              "col": 15, 
+// CHECK-NEXT:              "offset": 2001,
+// CHECK-NEXT:              "col": 15,
 // CHECK-NEXT:              "tokLen": 1
 // 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:            "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": 15, 
+// CHECK-NEXT:                "offset": 2001,
+// CHECK-NEXT:                "col": 15,
 // CHECK-NEXT:                "tokLen": 1
-// CHECK-NEXT:               }, 
+// CHECK-NEXT:               },
 // CHECK-NEXT:               "end": {
-// CHECK-NEXT:                "col": 15, 
+// CHECK-NEXT:                "offset": 2001,
+// CHECK-NEXT:                "col": 15,
 // CHECK-NEXT:                "tokLen": 1
 // 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:            "id": "0x{{.*}}", 
-// CHECK-NEXT:            "kind": "ObjCMessageExpr", 
+// CHECK-NEXT:            "id": "0x{{.*}}",
+// CHECK-NEXT:            "kind": "ObjCMessageExpr",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
-// CHECK-NEXT:              "col": 9, 
+// CHECK-NEXT:              "offset": 1995,
+// CHECK-NEXT:              "col": 9,
 // CHECK-NEXT:              "tokLen": 5
-// CHECK-NEXT:             }, 
+// CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
-// CHECK-NEXT:              "col": 9, 
+// CHECK-NEXT:              "offset": 1995,
+// CHECK-NEXT:              "col": 9,
 // CHECK-NEXT:              "tokLen": 5
 // CHECK-NEXT:             }
-// CHECK-NEXT:            }, 
+// CHECK-NEXT:            },
 // CHECK-NEXT:            "type": {
-// CHECK-NEXT:             "desugaredQualType": "id", 
-// CHECK-NEXT:             "qualType": "id", 
+// CHECK-NEXT:             "desugaredQualType": "id",
+// CHECK-NEXT:             "qualType": "id",
 // CHECK-NEXT:             "typeAliasDeclId": "0x{{.*}}"
-// CHECK-NEXT:            }, 
-// CHECK-NEXT:            "valueCategory": "rvalue", 
-// CHECK-NEXT:            "selector": "objectAtIndexedSubscript:", 
-// CHECK-NEXT:            "receiverKind": "instance", 
+// CHECK-NEXT:            },
+// CHECK-NEXT:            "valueCategory": "rvalue",
+// CHECK-NEXT:            "selector": "objectAtIndexedSubscript:",
+// CHECK-NEXT:            "receiverKind": "instance",
 // CHECK-NEXT:            "inner": [
 // CHECK-NEXT:             {
-// CHECK-NEXT:              "id": "0x{{.*}}", 
-// CHECK-NEXT:              "kind": "OpaqueValueExpr", 
+// CHECK-NEXT:              "id": "0x{{.*}}",
+// CHECK-NEXT:              "kind": "OpaqueValueExpr",
 // CHECK-NEXT:              "range": {
 // CHECK-NEXT:               "begin": {
-// CHECK-NEXT:                "col": 9, 
+// CHECK-NEXT:                "offset": 1995,
+// CHECK-NEXT:                "col": 9,
 // CHECK-NEXT:                "tokLen": 5
-// CHECK-NEXT:               }, 
+// CHECK-NEXT:               },
 // CHECK-NEXT:               "end": {
-// CHECK-NEXT:                "col": 9, 
+// CHECK-NEXT:                "offset": 1995,
+// CHECK-NEXT:                "col": 9,
 // CHECK-NEXT:                "tokLen": 5
 // CHECK-NEXT:               }
-// CHECK-NEXT:              }, 
+// CHECK-NEXT:              },
 // CHECK-NEXT:              "type": {
 // CHECK-NEXT:               "qualType": "NSMutableArray *"
-// CHECK-NEXT:              }, 
-// CHECK-NEXT:              "valueCategory": "rvalue", 
+// CHECK-NEXT:              },
+// CHECK-NEXT:              "valueCategory": "rvalue",
 // CHECK-NEXT:              "inner": [
 // CHECK-NEXT:               {
-// CHECK-NEXT:                "id": "0x{{.*}}", 
-// CHECK-NEXT:                "kind": "ImplicitCastExpr", 
+// CHECK-NEXT:                "id": "0x{{.*}}",
+// CHECK-NEXT:                "kind": "ImplicitCastExpr",
 // CHECK-NEXT:                "range": {
 // CHECK-NEXT:                 "begin": {
-// CHECK-NEXT:                  "col": 9, 
+// CHECK-NEXT:                  "offset": 1995,
+// CHECK-NEXT:                  "col": 9,
 // CHECK-NEXT:                  "tokLen": 5
-// CHECK-NEXT:                 }, 
+// CHECK-NEXT:                 },
 // CHECK-NEXT:                 "end": {
-// CHECK-NEXT:                  "col": 9, 
+// CHECK-NEXT:                  "offset": 1995,
+// CHECK-NEXT:                  "col": 9,
 // CHECK-NEXT:                  "tokLen": 5
 // CHECK-NEXT:                 }
-// CHECK-NEXT:                }, 
+// CHECK-NEXT:                },
 // CHECK-NEXT:                "type": {
 // CHECK-NEXT:                 "qualType": "NSMutableArray *"
-// CHECK-NEXT:                }, 
-// CHECK-NEXT:                "valueCategory": "rvalue", 
-// CHECK-NEXT:                "castKind": "LValueToRValue", 
+// CHECK-NEXT:                },
+// CHECK-NEXT:                "valueCategory": "rvalue",
+// CHECK-NEXT:                "castKind": "LValueToRValue",
 // CHECK-NEXT:                "inner": [
 // CHECK-NEXT:                 {
-// CHECK-NEXT:                  "id": "0x{{.*}}", 
-// CHECK-NEXT:                  "kind": "DeclRefExpr", 
+// CHECK-NEXT:                  "id": "0x{{.*}}",
+// CHECK-NEXT:                  "kind": "DeclRefExpr",
 // CHECK-NEXT:                  "range": {
 // CHECK-NEXT:                   "begin": {
-// CHECK-NEXT:                    "col": 9, 
+// CHECK-NEXT:                    "offset": 1995,
+// CHECK-NEXT:                    "col": 9,
 // CHECK-NEXT:                    "tokLen": 5
-// CHECK-NEXT:                   }, 
+// CHECK-NEXT:                   },
 // CHECK-NEXT:                   "end": {
-// CHECK-NEXT:                    "col": 9, 
+// CHECK-NEXT:                    "offset": 1995,
+// CHECK-NEXT:                    "col": 9,
 // CHECK-NEXT:                    "tokLen": 5
 // CHECK-NEXT:                   }
-// CHECK-NEXT:                  }, 
+// CHECK-NEXT:                  },
 // CHECK-NEXT:                  "type": {
 // CHECK-NEXT:                   "qualType": "NSMutableArray *"
-// CHECK-NEXT:                  }, 
-// CHECK-NEXT:                  "valueCategory": "lvalue", 
+// CHECK-NEXT:                  },
+// CHECK-NEXT:                  "valueCategory": "lvalue",
 // CHECK-NEXT:                  "referencedDecl": {
-// CHECK-NEXT:                   "id": "0x{{.*}}", 
-// CHECK-NEXT:                   "kind": "ParmVarDecl", 
-// CHECK-NEXT:                   "name": "Array", 
+// CHECK-NEXT:                   "id": "0x{{.*}}",
+// CHECK-NEXT:                   "kind": "ParmVarDecl",
+// CHECK-NEXT:                   "name": "Array",
 // CHECK-NEXT:                   "type": {
 // CHECK-NEXT:                    "qualType": "NSMutableArray *"
 // CHECK-NEXT:                   }
@@ -2950,42 +3229,46 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:                ]
 // CHECK-NEXT:               }
 // CHECK-NEXT:              ]
-// CHECK-NEXT:             }, 
+// CHECK-NEXT:             },
 // CHECK-NEXT:             {
-// CHECK-NEXT:              "id": "0x{{.*}}", 
-// CHECK-NEXT:              "kind": "OpaqueValueExpr", 
+// CHECK-NEXT:              "id": "0x{{.*}}",
+// CHECK-NEXT:              "kind": "OpaqueValueExpr",
 // CHECK-NEXT:              "range": {
 // CHECK-NEXT:               "begin": {
-// CHECK-NEXT:                "col": 15, 
+// CHECK-NEXT:                "offset": 2001,
+// CHECK-NEXT:                "col": 15,
 // CHECK-NEXT:                "tokLen": 1
-// CHECK-NEXT:               }, 
+// CHECK-NEXT:               },
 // CHECK-NEXT:               "end": {
-// CHECK-NEXT:                "col": 15, 
+// CHECK-NEXT:                "offset": 2001,
+// CHECK-NEXT:                "col": 15,
 // CHECK-NEXT:                "tokLen": 1
 // 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:              "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": 15, 
+// CHECK-NEXT:                  "offset": 2001,
+// CHECK-NEXT:                  "col": 15,
 // CHECK-NEXT:                  "tokLen": 1
-// CHECK-NEXT:                 }, 
+// CHECK-NEXT:                 },
 // CHECK-NEXT:                 "end": {
-// CHECK-NEXT:                  "col": 15, 
+// CHECK-NEXT:                  "offset": 2001,
+// CHECK-NEXT:                  "col": 15,
 // CHECK-NEXT:                  "tokLen": 1
 // 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:              ]
@@ -2997,124 +3280,136 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:        ]
 // CHECK-NEXT:       }
 // CHECK-NEXT:      ]
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     {
-// CHECK-NEXT:      "id": "0x{{.*}}", 
-// CHECK-NEXT:      "kind": "PseudoObjectExpr", 
+// CHECK-NEXT:      "id": "0x{{.*}}",
+// CHECK-NEXT:      "kind": "PseudoObjectExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
-// CHECK-NEXT:        "line": 85, 
-// CHECK-NEXT:        "col": 2, 
+// CHECK-NEXT:        "offset": 2008,
+// CHECK-NEXT:        "line": 85,
+// CHECK-NEXT:        "col": 2,
 // CHECK-NEXT:        "tokLen": 4
-// CHECK-NEXT:       }, 
+// CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
-// CHECK-NEXT:        "col": 24, 
+// CHECK-NEXT:        "offset": 2030,
+// CHECK-NEXT:        "col": 24,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
-// CHECK-NEXT:      }, 
+// CHECK-NEXT:      },
 // CHECK-NEXT:      "type": {
-// CHECK-NEXT:       "desugaredQualType": "id", 
-// CHECK-NEXT:       "qualType": "id", 
+// CHECK-NEXT:       "desugaredQualType": "id",
+// CHECK-NEXT:       "qualType": "id",
 // CHECK-NEXT:       "typeAliasDeclId": "0x{{.*}}"
-// CHECK-NEXT:      }, 
-// CHECK-NEXT:      "valueCategory": "rvalue", 
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "valueCategory": "rvalue",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
-// CHECK-NEXT:        "id": "0x{{.*}}", 
-// CHECK-NEXT:        "kind": "BinaryOperator", 
+// CHECK-NEXT:        "id": "0x{{.*}}",
+// CHECK-NEXT:        "kind": "BinaryOperator",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
-// CHECK-NEXT:          "col": 2, 
+// CHECK-NEXT:          "offset": 2008,
+// CHECK-NEXT:          "col": 2,
 // CHECK-NEXT:          "tokLen": 4
-// CHECK-NEXT:         }, 
+// CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "col": 24, 
+// CHECK-NEXT:          "offset": 2030,
+// CHECK-NEXT:          "col": 24,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
-// CHECK-NEXT:        }, 
+// CHECK-NEXT:        },
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "void *"
-// CHECK-NEXT:        }, 
-// CHECK-NEXT:        "valueCategory": "rvalue", 
-// CHECK-NEXT:        "opcode": "=", 
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "opcode": "=",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
-// CHECK-NEXT:          "id": "0x{{.*}}", 
-// CHECK-NEXT:          "kind": "ObjCSubscriptRefExpr", 
+// CHECK-NEXT:          "id": "0x{{.*}}",
+// CHECK-NEXT:          "kind": "ObjCSubscriptRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
-// CHECK-NEXT:            "col": 2, 
+// CHECK-NEXT:            "offset": 2008,
+// CHECK-NEXT:            "col": 2,
 // CHECK-NEXT:            "tokLen": 4
-// CHECK-NEXT:           }, 
+// CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
-// CHECK-NEXT:            "col": 13, 
+// CHECK-NEXT:            "offset": 2019,
+// CHECK-NEXT:            "col": 13,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
-// CHECK-NEXT:          }, 
+// CHECK-NEXT:          },
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "qualType": "<pseudo-object type>"
-// CHECK-NEXT:          }, 
-// CHECK-NEXT:          "valueCategory": "lvalue", 
-// CHECK-NEXT:          "subscriptKind": "dictionary", 
+// CHECK-NEXT:          },
+// CHECK-NEXT:          "valueCategory": "lvalue",
+// CHECK-NEXT:          "subscriptKind": "dictionary",
 // CHECK-NEXT:          "inner": [
 // CHECK-NEXT:           {
-// CHECK-NEXT:            "id": "0x{{.*}}", 
-// CHECK-NEXT:            "kind": "OpaqueValueExpr", 
+// CHECK-NEXT:            "id": "0x{{.*}}",
+// CHECK-NEXT:            "kind": "OpaqueValueExpr",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
-// CHECK-NEXT:              "col": 2, 
+// CHECK-NEXT:              "offset": 2008,
+// CHECK-NEXT:              "col": 2,
 // CHECK-NEXT:              "tokLen": 4
-// CHECK-NEXT:             }, 
+// CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
-// CHECK-NEXT:              "col": 2, 
+// CHECK-NEXT:              "offset": 2008,
+// CHECK-NEXT:              "col": 2,
 // CHECK-NEXT:              "tokLen": 4
 // CHECK-NEXT:             }
-// CHECK-NEXT:            }, 
+// CHECK-NEXT:            },
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "qualType": "NSMutableDictionary *"
-// CHECK-NEXT:            }, 
-// CHECK-NEXT:            "valueCategory": "rvalue", 
+// CHECK-NEXT:            },
+// CHECK-NEXT:            "valueCategory": "rvalue",
 // CHECK-NEXT:            "inner": [
 // CHECK-NEXT:             {
-// CHECK-NEXT:              "id": "0x{{.*}}", 
-// CHECK-NEXT:              "kind": "ImplicitCastExpr", 
+// CHECK-NEXT:              "id": "0x{{.*}}",
+// CHECK-NEXT:              "kind": "ImplicitCastExpr",
 // CHECK-NEXT:              "range": {
 // CHECK-NEXT:               "begin": {
-// CHECK-NEXT:                "col": 2, 
+// CHECK-NEXT:                "offset": 2008,
+// CHECK-NEXT:                "col": 2,
 // CHECK-NEXT:                "tokLen": 4
-// CHECK-NEXT:               }, 
+// CHECK-NEXT:               },
 // CHECK-NEXT:               "end": {
-// CHECK-NEXT:                "col": 2, 
+// CHECK-NEXT:                "offset": 2008,
+// CHECK-NEXT:                "col": 2,
 // CHECK-NEXT:                "tokLen": 4
 // CHECK-NEXT:               }
-// CHECK-NEXT:              }, 
+// CHECK-NEXT:              },
 // CHECK-NEXT:              "type": {
 // CHECK-NEXT:               "qualType": "NSMutableDictionary *"
-// CHECK-NEXT:              }, 
-// CHECK-NEXT:              "valueCategory": "rvalue", 
-// CHECK-NEXT:              "castKind": "LValueToRValue", 
+// CHECK-NEXT:              },
+// CHECK-NEXT:              "valueCategory": "rvalue",
+// CHECK-NEXT:              "castKind": "LValueToRValue",
 // CHECK-NEXT:              "inner": [
 // CHECK-NEXT:               {
-// CHECK-NEXT:                "id": "0x{{.*}}", 
-// CHECK-NEXT:                "kind": "DeclRefExpr", 
+// CHECK-NEXT:                "id": "0x{{.*}}",
+// CHECK-NEXT:                "kind": "DeclRefExpr",
 // CHECK-NEXT:                "range": {
 // CHECK-NEXT:                 "begin": {
-// CHECK-NEXT:                  "col": 2, 
+// CHECK-NEXT:                  "offset": 2008,
+// CHECK-NEXT:                  "col": 2,
 // CHECK-NEXT:                  "tokLen": 4
-// CHECK-NEXT:                 }, 
+// CHECK-NEXT:                 },
 // CHECK-NEXT:                 "end": {
-// CHECK-NEXT:                  "col": 2, 
+// CHECK-NEXT:                  "offset": 2008,
+// CHECK-NEXT:                  "col": 2,
 // CHECK-NEXT:                  "tokLen": 4
 // CHECK-NEXT:                 }
-// CHECK-NEXT:                }, 
+// CHECK-NEXT:                },
 // CHECK-NEXT:                "type": {
 // CHECK-NEXT:                 "qualType": "NSMutableDictionary *"
-// CHECK-NEXT:                }, 
-// CHECK-NEXT:                "valueCategory": "lvalue", 
+// CHECK-NEXT:                },
+// CHECK-NEXT:                "valueCategory": "lvalue",
 // CHECK-NEXT:                "referencedDecl": {
-// CHECK-NEXT:                 "id": "0x{{.*}}", 
-// CHECK-NEXT:                 "kind": "ParmVarDecl", 
-// CHECK-NEXT:                 "name": "Dict", 
+// CHECK-NEXT:                 "id": "0x{{.*}}",
+// CHECK-NEXT:                 "kind": "ParmVarDecl",
+// CHECK-NEXT:                 "name": "Dict",
 // CHECK-NEXT:                 "type": {
 // CHECK-NEXT:                  "qualType": "NSMutableDictionary *"
 // CHECK-NEXT:                 }
@@ -3123,60 +3418,66 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:              ]
 // CHECK-NEXT:             }
 // CHECK-NEXT:            ]
-// CHECK-NEXT:           }, 
+// CHECK-NEXT:           },
 // CHECK-NEXT:           {
-// CHECK-NEXT:            "id": "0x{{.*}}", 
-// CHECK-NEXT:            "kind": "OpaqueValueExpr", 
+// CHECK-NEXT:            "id": "0x{{.*}}",
+// CHECK-NEXT:            "kind": "OpaqueValueExpr",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
-// CHECK-NEXT:              "col": 7, 
+// CHECK-NEXT:              "offset": 2013,
+// CHECK-NEXT:              "col": 7,
 // CHECK-NEXT:              "tokLen": 1
-// CHECK-NEXT:             }, 
+// CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
-// CHECK-NEXT:              "col": 8, 
+// CHECK-NEXT:              "offset": 2014,
+// CHECK-NEXT:              "col": 8,
 // CHECK-NEXT:              "tokLen": 5
 // CHECK-NEXT:             }
-// CHECK-NEXT:            }, 
+// CHECK-NEXT:            },
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "qualType": "NSString *"
-// CHECK-NEXT:            }, 
-// CHECK-NEXT:            "valueCategory": "rvalue", 
+// CHECK-NEXT:            },
+// CHECK-NEXT:            "valueCategory": "rvalue",
 // CHECK-NEXT:            "inner": [
 // CHECK-NEXT:             {
-// CHECK-NEXT:              "id": "0x{{.*}}", 
-// CHECK-NEXT:              "kind": "ObjCStringLiteral", 
+// CHECK-NEXT:              "id": "0x{{.*}}",
+// CHECK-NEXT:              "kind": "ObjCStringLiteral",
 // CHECK-NEXT:              "range": {
 // CHECK-NEXT:               "begin": {
-// CHECK-NEXT:                "col": 7, 
+// CHECK-NEXT:                "offset": 2013,
+// CHECK-NEXT:                "col": 7,
 // CHECK-NEXT:                "tokLen": 1
-// CHECK-NEXT:               }, 
+// CHECK-NEXT:               },
 // CHECK-NEXT:               "end": {
-// CHECK-NEXT:                "col": 8, 
+// CHECK-NEXT:                "offset": 2014,
+// CHECK-NEXT:                "col": 8,
 // CHECK-NEXT:                "tokLen": 5
 // CHECK-NEXT:               }
-// CHECK-NEXT:              }, 
+// CHECK-NEXT:              },
 // CHECK-NEXT:              "type": {
 // CHECK-NEXT:               "qualType": "NSString *"
-// CHECK-NEXT:              }, 
-// CHECK-NEXT:              "valueCategory": "rvalue", 
+// CHECK-NEXT:              },
+// CHECK-NEXT:              "valueCategory": "rvalue",
 // CHECK-NEXT:              "inner": [
 // CHECK-NEXT:               {
-// CHECK-NEXT:                "id": "0x{{.*}}", 
-// CHECK-NEXT:                "kind": "StringLiteral", 
+// CHECK-NEXT:                "id": "0x{{.*}}",
+// CHECK-NEXT:                "kind": "StringLiteral",
 // CHECK-NEXT:                "range": {
 // CHECK-NEXT:                 "begin": {
-// CHECK-NEXT:                  "col": 8, 
+// CHECK-NEXT:                  "offset": 2014,
+// CHECK-NEXT:                  "col": 8,
 // CHECK-NEXT:                  "tokLen": 5
-// CHECK-NEXT:                 }, 
+// CHECK-NEXT:                 },
 // CHECK-NEXT:                 "end": {
-// CHECK-NEXT:                  "col": 8, 
+// CHECK-NEXT:                  "offset": 2014,
+// CHECK-NEXT:                  "col": 8,
 // CHECK-NEXT:                  "tokLen": 5
 // CHECK-NEXT:                 }
-// CHECK-NEXT:                }, 
+// CHECK-NEXT:                },
 // CHECK-NEXT:                "type": {
 // CHECK-NEXT:                 "qualType": "char [4]"
-// CHECK-NEXT:                }, 
-// CHECK-NEXT:                "valueCategory": "lvalue", 
+// CHECK-NEXT:                },
+// CHECK-NEXT:                "valueCategory": "lvalue",
 // CHECK-NEXT:                "value": "\"key\""
 // CHECK-NEXT:               }
 // CHECK-NEXT:              ]
@@ -3184,61 +3485,67 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:            ]
 // CHECK-NEXT:           }
 // CHECK-NEXT:          ]
-// CHECK-NEXT:         }, 
+// CHECK-NEXT:         },
 // CHECK-NEXT:         {
-// CHECK-NEXT:          "id": "0x{{.*}}", 
-// CHECK-NEXT:          "kind": "OpaqueValueExpr", 
+// CHECK-NEXT:          "id": "0x{{.*}}",
+// CHECK-NEXT:          "kind": "OpaqueValueExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
-// CHECK-NEXT:            "col": 17, 
+// CHECK-NEXT:            "offset": 2023,
+// CHECK-NEXT:            "col": 17,
 // CHECK-NEXT:            "tokLen": 1
-// CHECK-NEXT:           }, 
+// CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
-// CHECK-NEXT:            "col": 24, 
+// CHECK-NEXT:            "offset": 2030,
+// CHECK-NEXT:            "col": 24,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
-// CHECK-NEXT:          }, 
+// CHECK-NEXT:          },
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "qualType": "void *"
-// CHECK-NEXT:          }, 
-// CHECK-NEXT:          "valueCategory": "rvalue", 
+// CHECK-NEXT:          },
+// CHECK-NEXT:          "valueCategory": "rvalue",
 // CHECK-NEXT:          "inner": [
 // CHECK-NEXT:           {
-// CHECK-NEXT:            "id": "0x{{.*}}", 
-// CHECK-NEXT:            "kind": "CStyleCastExpr", 
+// CHECK-NEXT:            "id": "0x{{.*}}",
+// CHECK-NEXT:            "kind": "CStyleCastExpr",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
-// CHECK-NEXT:              "col": 17, 
+// CHECK-NEXT:              "offset": 2023,
+// CHECK-NEXT:              "col": 17,
 // CHECK-NEXT:              "tokLen": 1
-// CHECK-NEXT:             }, 
+// CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
-// CHECK-NEXT:              "col": 24, 
+// CHECK-NEXT:              "offset": 2030,
+// CHECK-NEXT:              "col": 24,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
-// CHECK-NEXT:            }, 
+// CHECK-NEXT:            },
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "qualType": "void *"
-// CHECK-NEXT:            }, 
-// CHECK-NEXT:            "valueCategory": "rvalue", 
-// CHECK-NEXT:            "castKind": "NullToPointer", 
+// CHECK-NEXT:            },
+// CHECK-NEXT:            "valueCategory": "rvalue",
+// CHECK-NEXT:            "castKind": "NullToPointer",
 // 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": 24, 
+// CHECK-NEXT:                "offset": 2030,
+// CHECK-NEXT:                "col": 24,
 // CHECK-NEXT:                "tokLen": 1
-// CHECK-NEXT:               }, 
+// CHECK-NEXT:               },
 // CHECK-NEXT:               "end": {
-// CHECK-NEXT:                "col": 24, 
+// CHECK-NEXT:                "offset": 2030,
+// CHECK-NEXT:                "col": 24,
 // CHECK-NEXT:                "tokLen": 1
 // 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:            ]
@@ -3246,65 +3553,71 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:          ]
 // CHECK-NEXT:         }
 // CHECK-NEXT:        ]
-// CHECK-NEXT:       }, 
+// CHECK-NEXT:       },
 // CHECK-NEXT:       {
-// CHECK-NEXT:        "id": "0x{{.*}}", 
-// CHECK-NEXT:        "kind": "OpaqueValueExpr", 
+// CHECK-NEXT:        "id": "0x{{.*}}",
+// CHECK-NEXT:        "kind": "OpaqueValueExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
-// CHECK-NEXT:          "col": 2, 
+// CHECK-NEXT:          "offset": 2008,
+// CHECK-NEXT:          "col": 2,
 // CHECK-NEXT:          "tokLen": 4
-// CHECK-NEXT:         }, 
+// CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "col": 2, 
+// CHECK-NEXT:          "offset": 2008,
+// CHECK-NEXT:          "col": 2,
 // CHECK-NEXT:          "tokLen": 4
 // CHECK-NEXT:         }
-// CHECK-NEXT:        }, 
+// CHECK-NEXT:        },
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "NSMutableDictionary *"
-// CHECK-NEXT:        }, 
-// CHECK-NEXT:        "valueCategory": "rvalue", 
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "valueCategory": "rvalue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
-// CHECK-NEXT:          "id": "0x{{.*}}", 
-// CHECK-NEXT:          "kind": "ImplicitCastExpr", 
+// CHECK-NEXT:          "id": "0x{{.*}}",
+// CHECK-NEXT:          "kind": "ImplicitCastExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
-// CHECK-NEXT:            "col": 2, 
+// CHECK-NEXT:            "offset": 2008,
+// CHECK-NEXT:            "col": 2,
 // CHECK-NEXT:            "tokLen": 4
-// CHECK-NEXT:           }, 
+// CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
-// CHECK-NEXT:            "col": 2, 
+// CHECK-NEXT:            "offset": 2008,
+// CHECK-NEXT:            "col": 2,
 // CHECK-NEXT:            "tokLen": 4
 // CHECK-NEXT:           }
-// CHECK-NEXT:          }, 
+// CHECK-NEXT:          },
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "qualType": "NSMutableDictionary *"
-// CHECK-NEXT:          }, 
-// CHECK-NEXT:          "valueCategory": "rvalue", 
-// CHECK-NEXT:          "castKind": "LValueToRValue", 
+// CHECK-NEXT:          },
+// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "castKind": "LValueToRValue",
 // CHECK-NEXT:          "inner": [
 // CHECK-NEXT:           {
-// CHECK-NEXT:            "id": "0x{{.*}}", 
-// CHECK-NEXT:            "kind": "DeclRefExpr", 
+// CHECK-NEXT:            "id": "0x{{.*}}",
+// CHECK-NEXT:            "kind": "DeclRefExpr",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
-// CHECK-NEXT:              "col": 2, 
+// CHECK-NEXT:              "offset": 2008,
+// CHECK-NEXT:              "col": 2,
 // CHECK-NEXT:              "tokLen": 4
-// CHECK-NEXT:             }, 
+// CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
-// CHECK-NEXT:              "col": 2, 
+// CHECK-NEXT:              "offset": 2008,
+// CHECK-NEXT:              "col": 2,
 // CHECK-NEXT:              "tokLen": 4
 // CHECK-NEXT:             }
-// CHECK-NEXT:            }, 
+// CHECK-NEXT:            },
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "qualType": "NSMutableDictionary *"
-// CHECK-NEXT:            }, 
-// CHECK-NEXT:            "valueCategory": "lvalue", 
+// CHECK-NEXT:            },
+// CHECK-NEXT:            "valueCategory": "lvalue",
 // CHECK-NEXT:            "referencedDecl": {
-// CHECK-NEXT:             "id": "0x{{.*}}", 
-// CHECK-NEXT:             "kind": "ParmVarDecl", 
-// CHECK-NEXT:             "name": "Dict", 
+// CHECK-NEXT:             "id": "0x{{.*}}",
+// CHECK-NEXT:             "kind": "ParmVarDecl",
+// CHECK-NEXT:             "name": "Dict",
 // CHECK-NEXT:             "type": {
 // CHECK-NEXT:              "qualType": "NSMutableDictionary *"
 // CHECK-NEXT:             }
@@ -3313,221 +3626,243 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:          ]
 // CHECK-NEXT:         }
 // CHECK-NEXT:        ]
-// CHECK-NEXT:       }, 
+// CHECK-NEXT:       },
 // CHECK-NEXT:       {
-// CHECK-NEXT:        "id": "0x{{.*}}", 
-// CHECK-NEXT:        "kind": "OpaqueValueExpr", 
+// CHECK-NEXT:        "id": "0x{{.*}}",
+// CHECK-NEXT:        "kind": "OpaqueValueExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
-// CHECK-NEXT:          "col": 7, 
+// CHECK-NEXT:          "offset": 2013,
+// CHECK-NEXT:          "col": 7,
 // CHECK-NEXT:          "tokLen": 1
-// CHECK-NEXT:         }, 
+// CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "col": 8, 
+// CHECK-NEXT:          "offset": 2014,
+// CHECK-NEXT:          "col": 8,
 // CHECK-NEXT:          "tokLen": 5
 // CHECK-NEXT:         }
-// CHECK-NEXT:        }, 
+// CHECK-NEXT:        },
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "NSString *"
-// CHECK-NEXT:        }, 
-// CHECK-NEXT:        "valueCategory": "rvalue", 
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "valueCategory": "rvalue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
-// CHECK-NEXT:          "id": "0x{{.*}}", 
-// CHECK-NEXT:          "kind": "ObjCStringLiteral", 
+// CHECK-NEXT:          "id": "0x{{.*}}",
+// CHECK-NEXT:          "kind": "ObjCStringLiteral",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
-// CHECK-NEXT:            "col": 7, 
+// CHECK-NEXT:            "offset": 2013,
+// CHECK-NEXT:            "col": 7,
 // CHECK-NEXT:            "tokLen": 1
-// CHECK-NEXT:           }, 
+// CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
-// CHECK-NEXT:            "col": 8, 
+// CHECK-NEXT:            "offset": 2014,
+// CHECK-NEXT:            "col": 8,
 // CHECK-NEXT:            "tokLen": 5
 // CHECK-NEXT:           }
-// CHECK-NEXT:          }, 
+// CHECK-NEXT:          },
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "qualType": "NSString *"
-// CHECK-NEXT:          }, 
-// CHECK-NEXT:          "valueCategory": "rvalue", 
+// CHECK-NEXT:          },
+// CHECK-NEXT:          "valueCategory": "rvalue",
 // CHECK-NEXT:          "inner": [
 // CHECK-NEXT:           {
-// CHECK-NEXT:            "id": "0x{{.*}}", 
-// CHECK-NEXT:            "kind": "StringLiteral", 
+// CHECK-NEXT:            "id": "0x{{.*}}",
+// CHECK-NEXT:            "kind": "StringLiteral",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
-// CHECK-NEXT:              "col": 8, 
+// CHECK-NEXT:              "offset": 2014,
+// CHECK-NEXT:              "col": 8,
 // CHECK-NEXT:              "tokLen": 5
-// CHECK-NEXT:             }, 
+// CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
-// CHECK-NEXT:              "col": 8, 
+// CHECK-NEXT:              "offset": 2014,
+// CHECK-NEXT:              "col": 8,
 // CHECK-NEXT:              "tokLen": 5
 // CHECK-NEXT:             }
-// CHECK-NEXT:            }, 
+// CHECK-NEXT:            },
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "qualType": "char [4]"
-// CHECK-NEXT:            }, 
-// CHECK-NEXT:            "valueCategory": "lvalue", 
+// CHECK-NEXT:            },
+// CHECK-NEXT:            "valueCategory": "lvalue",
 // CHECK-NEXT:            "value": "\"key\""
 // CHECK-NEXT:           }
 // CHECK-NEXT:          ]
 // CHECK-NEXT:         }
 // CHECK-NEXT:        ]
-// CHECK-NEXT:       }, 
+// CHECK-NEXT:       },
 // CHECK-NEXT:       {
-// CHECK-NEXT:        "id": "0x{{.*}}", 
-// CHECK-NEXT:        "kind": "OpaqueValueExpr", 
+// CHECK-NEXT:        "id": "0x{{.*}}",
+// CHECK-NEXT:        "kind": "OpaqueValueExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
-// CHECK-NEXT:          "col": 17, 
+// CHECK-NEXT:          "offset": 2023,
+// CHECK-NEXT:          "col": 17,
 // CHECK-NEXT:          "tokLen": 1
-// CHECK-NEXT:         }, 
+// CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "col": 24, 
+// CHECK-NEXT:          "offset": 2030,
+// CHECK-NEXT:          "col": 24,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
-// CHECK-NEXT:        }, 
+// CHECK-NEXT:        },
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "void *"
-// CHECK-NEXT:        }, 
-// CHECK-NEXT:        "valueCategory": "rvalue", 
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "valueCategory": "rvalue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
-// CHECK-NEXT:          "id": "0x{{.*}}", 
-// CHECK-NEXT:          "kind": "CStyleCastExpr", 
+// CHECK-NEXT:          "id": "0x{{.*}}",
+// CHECK-NEXT:          "kind": "CStyleCastExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
-// CHECK-NEXT:            "col": 17, 
+// CHECK-NEXT:            "offset": 2023,
+// CHECK-NEXT:            "col": 17,
 // CHECK-NEXT:            "tokLen": 1
-// CHECK-NEXT:           }, 
+// CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
-// CHECK-NEXT:            "col": 24, 
+// CHECK-NEXT:            "offset": 2030,
+// CHECK-NEXT:            "col": 24,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
-// CHECK-NEXT:          }, 
+// CHECK-NEXT:          },
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "qualType": "void *"
-// CHECK-NEXT:          }, 
-// CHECK-NEXT:          "valueCategory": "rvalue", 
-// CHECK-NEXT:          "castKind": "NullToPointer", 
+// CHECK-NEXT:          },
+// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "castKind": "NullToPointer",
 // 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": 24, 
+// CHECK-NEXT:              "offset": 2030,
+// CHECK-NEXT:              "col": 24,
 // CHECK-NEXT:              "tokLen": 1
-// CHECK-NEXT:             }, 
+// CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
-// CHECK-NEXT:              "col": 24, 
+// CHECK-NEXT:              "offset": 2030,
+// CHECK-NEXT:              "col": 24,
 // CHECK-NEXT:              "tokLen": 1
 // 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": "OpaqueValueExpr", 
+// CHECK-NEXT:        "id": "0x{{.*}}",
+// CHECK-NEXT:        "kind": "OpaqueValueExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
-// CHECK-NEXT:          "col": 17, 
+// CHECK-NEXT:          "offset": 2023,
+// CHECK-NEXT:          "col": 17,
 // CHECK-NEXT:          "tokLen": 1
-// CHECK-NEXT:         }, 
+// CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "col": 24, 
+// CHECK-NEXT:          "offset": 2030,
+// CHECK-NEXT:          "col": 24,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
-// CHECK-NEXT:        }, 
+// CHECK-NEXT:        },
 // CHECK-NEXT:        "type": {
-// CHECK-NEXT:         "desugaredQualType": "id", 
-// CHECK-NEXT:         "qualType": "id", 
+// CHECK-NEXT:         "desugaredQualType": "id",
+// CHECK-NEXT:         "qualType": "id",
 // CHECK-NEXT:         "typeAliasDeclId": "0x{{.*}}"
-// CHECK-NEXT:        }, 
-// CHECK-NEXT:        "valueCategory": "rvalue", 
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "valueCategory": "rvalue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
-// CHECK-NEXT:          "id": "0x{{.*}}", 
-// CHECK-NEXT:          "kind": "ImplicitCastExpr", 
+// CHECK-NEXT:          "id": "0x{{.*}}",
+// CHECK-NEXT:          "kind": "ImplicitCastExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
-// CHECK-NEXT:            "col": 17, 
+// CHECK-NEXT:            "offset": 2023,
+// CHECK-NEXT:            "col": 17,
 // CHECK-NEXT:            "tokLen": 1
-// CHECK-NEXT:           }, 
+// CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
-// CHECK-NEXT:            "col": 24, 
+// CHECK-NEXT:            "offset": 2030,
+// CHECK-NEXT:            "col": 24,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
-// CHECK-NEXT:          }, 
+// CHECK-NEXT:          },
 // CHECK-NEXT:          "type": {
-// CHECK-NEXT:           "desugaredQualType": "id", 
-// CHECK-NEXT:           "qualType": "id", 
+// CHECK-NEXT:           "desugaredQualType": "id",
+// CHECK-NEXT:           "qualType": "id",
 // CHECK-NEXT:           "typeAliasDeclId": "0x{{.*}}"
-// CHECK-NEXT:          }, 
-// CHECK-NEXT:          "valueCategory": "rvalue", 
-// CHECK-NEXT:          "castKind": "NullToPointer", 
+// CHECK-NEXT:          },
+// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "castKind": "NullToPointer",
 // CHECK-NEXT:          "inner": [
 // CHECK-NEXT:           {
-// CHECK-NEXT:            "id": "0x{{.*}}", 
-// CHECK-NEXT:            "kind": "OpaqueValueExpr", 
+// CHECK-NEXT:            "id": "0x{{.*}}",
+// CHECK-NEXT:            "kind": "OpaqueValueExpr",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
-// CHECK-NEXT:              "col": 17, 
+// CHECK-NEXT:              "offset": 2023,
+// CHECK-NEXT:              "col": 17,
 // CHECK-NEXT:              "tokLen": 1
-// CHECK-NEXT:             }, 
+// CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
-// CHECK-NEXT:              "col": 24, 
+// CHECK-NEXT:              "offset": 2030,
+// CHECK-NEXT:              "col": 24,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
-// CHECK-NEXT:            }, 
+// CHECK-NEXT:            },
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "qualType": "void *"
-// CHECK-NEXT:            }, 
-// CHECK-NEXT:            "valueCategory": "rvalue", 
+// CHECK-NEXT:            },
+// CHECK-NEXT:            "valueCategory": "rvalue",
 // CHECK-NEXT:            "inner": [
 // CHECK-NEXT:             {
-// CHECK-NEXT:              "id": "0x{{.*}}", 
-// CHECK-NEXT:              "kind": "CStyleCastExpr", 
+// CHECK-NEXT:              "id": "0x{{.*}}",
+// CHECK-NEXT:              "kind": "CStyleCastExpr",
 // CHECK-NEXT:              "range": {
 // CHECK-NEXT:               "begin": {
-// CHECK-NEXT:                "col": 17, 
+// CHECK-NEXT:                "offset": 2023,
+// CHECK-NEXT:                "col": 17,
 // CHECK-NEXT:                "tokLen": 1
-// CHECK-NEXT:               }, 
+// CHECK-NEXT:               },
 // CHECK-NEXT:               "end": {
-// CHECK-NEXT:                "col": 24, 
+// CHECK-NEXT:                "offset": 2030,
+// CHECK-NEXT:                "col": 24,
 // CHECK-NEXT:                "tokLen": 1
 // CHECK-NEXT:               }
-// CHECK-NEXT:              }, 
+// CHECK-NEXT:              },
 // CHECK-NEXT:              "type": {
 // CHECK-NEXT:               "qualType": "void *"
-// CHECK-NEXT:              }, 
-// CHECK-NEXT:              "valueCategory": "rvalue", 
-// CHECK-NEXT:              "castKind": "NullToPointer", 
+// CHECK-NEXT:              },
+// CHECK-NEXT:              "valueCategory": "rvalue",
+// CHECK-NEXT:              "castKind": "NullToPointer",
 // 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": 24, 
+// CHECK-NEXT:                  "offset": 2030,
+// CHECK-NEXT:                  "col": 24,
 // CHECK-NEXT:                  "tokLen": 1
-// CHECK-NEXT:                 }, 
+// CHECK-NEXT:                 },
 // CHECK-NEXT:                 "end": {
-// CHECK-NEXT:                  "col": 24, 
+// CHECK-NEXT:                  "offset": 2030,
+// CHECK-NEXT:                  "col": 24,
 // CHECK-NEXT:                  "tokLen": 1
 // 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:              ]
@@ -3537,85 +3872,93 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:          ]
 // CHECK-NEXT:         }
 // CHECK-NEXT:        ]
-// CHECK-NEXT:       }, 
+// CHECK-NEXT:       },
 // CHECK-NEXT:       {
-// CHECK-NEXT:        "id": "0x{{.*}}", 
-// CHECK-NEXT:        "kind": "ObjCMessageExpr", 
+// CHECK-NEXT:        "id": "0x{{.*}}",
+// CHECK-NEXT:        "kind": "ObjCMessageExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
-// CHECK-NEXT:          "col": 2, 
+// CHECK-NEXT:          "offset": 2008,
+// CHECK-NEXT:          "col": 2,
 // CHECK-NEXT:          "tokLen": 4
-// CHECK-NEXT:         }, 
+// CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "col": 2, 
+// CHECK-NEXT:          "offset": 2008,
+// CHECK-NEXT:          "col": 2,
 // CHECK-NEXT:          "tokLen": 4
 // CHECK-NEXT:         }
-// CHECK-NEXT:        }, 
+// CHECK-NEXT:        },
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "void"
-// CHECK-NEXT:        }, 
-// CHECK-NEXT:        "valueCategory": "rvalue", 
-// CHECK-NEXT:        "selector": "setObject:forKeyedSubscript:", 
-// CHECK-NEXT:        "receiverKind": "instance", 
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "selector": "setObject:forKeyedSubscript:",
+// CHECK-NEXT:        "receiverKind": "instance",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
-// CHECK-NEXT:          "id": "0x{{.*}}", 
-// CHECK-NEXT:          "kind": "OpaqueValueExpr", 
+// CHECK-NEXT:          "id": "0x{{.*}}",
+// CHECK-NEXT:          "kind": "OpaqueValueExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
-// CHECK-NEXT:            "col": 2, 
+// CHECK-NEXT:            "offset": 2008,
+// CHECK-NEXT:            "col": 2,
 // CHECK-NEXT:            "tokLen": 4
-// CHECK-NEXT:           }, 
+// CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
-// CHECK-NEXT:            "col": 2, 
+// CHECK-NEXT:            "offset": 2008,
+// CHECK-NEXT:            "col": 2,
 // CHECK-NEXT:            "tokLen": 4
 // CHECK-NEXT:           }
-// CHECK-NEXT:          }, 
+// CHECK-NEXT:          },
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "qualType": "NSMutableDictionary *"
-// CHECK-NEXT:          }, 
-// CHECK-NEXT:          "valueCategory": "rvalue", 
+// CHECK-NEXT:          },
+// CHECK-NEXT:          "valueCategory": "rvalue",
 // CHECK-NEXT:          "inner": [
 // CHECK-NEXT:           {
-// CHECK-NEXT:            "id": "0x{{.*}}", 
-// CHECK-NEXT:            "kind": "ImplicitCastExpr", 
+// CHECK-NEXT:            "id": "0x{{.*}}",
+// CHECK-NEXT:            "kind": "ImplicitCastExpr",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
-// CHECK-NEXT:              "col": 2, 
+// CHECK-NEXT:              "offset": 2008,
+// CHECK-NEXT:              "col": 2,
 // CHECK-NEXT:              "tokLen": 4
-// CHECK-NEXT:             }, 
+// CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
-// CHECK-NEXT:              "col": 2, 
+// CHECK-NEXT:              "offset": 2008,
+// CHECK-NEXT:              "col": 2,
 // CHECK-NEXT:              "tokLen": 4
 // CHECK-NEXT:             }
-// CHECK-NEXT:            }, 
+// CHECK-NEXT:            },
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "qualType": "NSMutableDictionary *"
-// CHECK-NEXT:            }, 
-// CHECK-NEXT:            "valueCategory": "rvalue", 
-// CHECK-NEXT:            "castKind": "LValueToRValue", 
+// CHECK-NEXT:            },
+// CHECK-NEXT:            "valueCategory": "rvalue",
+// CHECK-NEXT:            "castKind": "LValueToRValue",
 // CHECK-NEXT:            "inner": [
 // CHECK-NEXT:             {
-// CHECK-NEXT:              "id": "0x{{.*}}", 
-// CHECK-NEXT:              "kind": "DeclRefExpr", 
+// CHECK-NEXT:              "id": "0x{{.*}}",
+// CHECK-NEXT:              "kind": "DeclRefExpr",
 // CHECK-NEXT:              "range": {
 // CHECK-NEXT:               "begin": {
-// CHECK-NEXT:                "col": 2, 
+// CHECK-NEXT:                "offset": 2008,
+// CHECK-NEXT:                "col": 2,
 // CHECK-NEXT:                "tokLen": 4
-// CHECK-NEXT:               }, 
+// CHECK-NEXT:               },
 // CHECK-NEXT:               "end": {
-// CHECK-NEXT:                "col": 2, 
+// CHECK-NEXT:                "offset": 2008,
+// CHECK-NEXT:                "col": 2,
 // CHECK-NEXT:                "tokLen": 4
 // CHECK-NEXT:               }
-// CHECK-NEXT:              }, 
+// CHECK-NEXT:              },
 // CHECK-NEXT:              "type": {
 // CHECK-NEXT:               "qualType": "NSMutableDictionary *"
-// CHECK-NEXT:              }, 
-// CHECK-NEXT:              "valueCategory": "lvalue", 
+// CHECK-NEXT:              },
+// CHECK-NEXT:              "valueCategory": "lvalue",
 // CHECK-NEXT:              "referencedDecl": {
-// CHECK-NEXT:               "id": "0x{{.*}}", 
-// CHECK-NEXT:               "kind": "ParmVarDecl", 
-// CHECK-NEXT:               "name": "Dict", 
+// CHECK-NEXT:               "id": "0x{{.*}}",
+// CHECK-NEXT:               "kind": "ParmVarDecl",
+// CHECK-NEXT:               "name": "Dict",
 // CHECK-NEXT:               "type": {
 // CHECK-NEXT:                "qualType": "NSMutableDictionary *"
 // CHECK-NEXT:               }
@@ -3624,102 +3967,112 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:            ]
 // CHECK-NEXT:           }
 // CHECK-NEXT:          ]
-// CHECK-NEXT:         }, 
+// CHECK-NEXT:         },
 // CHECK-NEXT:         {
-// CHECK-NEXT:          "id": "0x{{.*}}", 
-// CHECK-NEXT:          "kind": "OpaqueValueExpr", 
+// CHECK-NEXT:          "id": "0x{{.*}}",
+// CHECK-NEXT:          "kind": "OpaqueValueExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
-// CHECK-NEXT:            "col": 17, 
+// CHECK-NEXT:            "offset": 2023,
+// CHECK-NEXT:            "col": 17,
 // CHECK-NEXT:            "tokLen": 1
-// CHECK-NEXT:           }, 
+// CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
-// CHECK-NEXT:            "col": 24, 
+// CHECK-NEXT:            "offset": 2030,
+// CHECK-NEXT:            "col": 24,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
-// CHECK-NEXT:          }, 
+// CHECK-NEXT:          },
 // CHECK-NEXT:          "type": {
-// CHECK-NEXT:           "desugaredQualType": "id", 
-// CHECK-NEXT:           "qualType": "id", 
+// CHECK-NEXT:           "desugaredQualType": "id",
+// CHECK-NEXT:           "qualType": "id",
 // CHECK-NEXT:           "typeAliasDeclId": "0x{{.*}}"
-// CHECK-NEXT:          }, 
-// CHECK-NEXT:          "valueCategory": "rvalue", 
+// CHECK-NEXT:          },
+// CHECK-NEXT:          "valueCategory": "rvalue",
 // CHECK-NEXT:          "inner": [
 // CHECK-NEXT:           {
-// CHECK-NEXT:            "id": "0x{{.*}}", 
-// CHECK-NEXT:            "kind": "ImplicitCastExpr", 
+// CHECK-NEXT:            "id": "0x{{.*}}",
+// CHECK-NEXT:            "kind": "ImplicitCastExpr",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
-// CHECK-NEXT:              "col": 17, 
+// CHECK-NEXT:              "offset": 2023,
+// CHECK-NEXT:              "col": 17,
 // CHECK-NEXT:              "tokLen": 1
-// CHECK-NEXT:             }, 
+// CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
-// CHECK-NEXT:              "col": 24, 
+// CHECK-NEXT:              "offset": 2030,
+// CHECK-NEXT:              "col": 24,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
-// CHECK-NEXT:            }, 
+// CHECK-NEXT:            },
 // CHECK-NEXT:            "type": {
-// CHECK-NEXT:             "desugaredQualType": "id", 
-// CHECK-NEXT:             "qualType": "id", 
+// CHECK-NEXT:             "desugaredQualType": "id",
+// CHECK-NEXT:             "qualType": "id",
 // CHECK-NEXT:             "typeAliasDeclId": "0x{{.*}}"
-// CHECK-NEXT:            }, 
-// CHECK-NEXT:            "valueCategory": "rvalue", 
-// CHECK-NEXT:            "castKind": "NullToPointer", 
+// CHECK-NEXT:            },
+// CHECK-NEXT:            "valueCategory": "rvalue",
+// CHECK-NEXT:            "castKind": "NullToPointer",
 // CHECK-NEXT:            "inner": [
 // CHECK-NEXT:             {
-// CHECK-NEXT:              "id": "0x{{.*}}", 
-// CHECK-NEXT:              "kind": "OpaqueValueExpr", 
+// CHECK-NEXT:              "id": "0x{{.*}}",
+// CHECK-NEXT:              "kind": "OpaqueValueExpr",
 // CHECK-NEXT:              "range": {
 // CHECK-NEXT:               "begin": {
-// CHECK-NEXT:                "col": 17, 
+// CHECK-NEXT:                "offset": 2023,
+// CHECK-NEXT:                "col": 17,
 // CHECK-NEXT:                "tokLen": 1
-// CHECK-NEXT:               }, 
+// CHECK-NEXT:               },
 // CHECK-NEXT:               "end": {
-// CHECK-NEXT:                "col": 24, 
+// CHECK-NEXT:                "offset": 2030,
+// CHECK-NEXT:                "col": 24,
 // CHECK-NEXT:                "tokLen": 1
 // CHECK-NEXT:               }
-// CHECK-NEXT:              }, 
+// CHECK-NEXT:              },
 // CHECK-NEXT:              "type": {
 // CHECK-NEXT:               "qualType": "void *"
-// CHECK-NEXT:              }, 
-// CHECK-NEXT:              "valueCategory": "rvalue", 
+// CHECK-NEXT:              },
+// CHECK-NEXT:              "valueCategory": "rvalue",
 // CHECK-NEXT:              "inner": [
 // CHECK-NEXT:               {
-// CHECK-NEXT:                "id": "0x{{.*}}", 
-// CHECK-NEXT:                "kind": "CStyleCastExpr", 
+// CHECK-NEXT:                "id": "0x{{.*}}",
+// CHECK-NEXT:                "kind": "CStyleCastExpr",
 // CHECK-NEXT:                "range": {
 // CHECK-NEXT:                 "begin": {
-// CHECK-NEXT:                  "col": 17, 
+// CHECK-NEXT:                  "offset": 2023,
+// CHECK-NEXT:                  "col": 17,
 // CHECK-NEXT:                  "tokLen": 1
-// CHECK-NEXT:                 }, 
+// CHECK-NEXT:                 },
 // CHECK-NEXT:                 "end": {
-// CHECK-NEXT:                  "col": 24, 
+// CHECK-NEXT:                  "offset": 2030,
+// CHECK-NEXT:                  "col": 24,
 // CHECK-NEXT:                  "tokLen": 1
 // CHECK-NEXT:                 }
-// CHECK-NEXT:                }, 
+// CHECK-NEXT:                },
 // CHECK-NEXT:                "type": {
 // CHECK-NEXT:                 "qualType": "void *"
-// CHECK-NEXT:                }, 
-// CHECK-NEXT:                "valueCategory": "rvalue", 
-// CHECK-NEXT:                "castKind": "NullToPointer", 
+// CHECK-NEXT:                },
+// CHECK-NEXT:                "valueCategory": "rvalue",
+// CHECK-NEXT:                "castKind": "NullToPointer",
 // 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": 24, 
+// CHECK-NEXT:                    "offset": 2030,
+// CHECK-NEXT:                    "col": 24,
 // CHECK-NEXT:                    "tokLen": 1
-// CHECK-NEXT:                   }, 
+// CHECK-NEXT:                   },
 // CHECK-NEXT:                   "end": {
-// CHECK-NEXT:                    "col": 24, 
+// CHECK-NEXT:                    "offset": 2030,
+// CHECK-NEXT:                    "col": 24,
 // CHECK-NEXT:                    "tokLen": 1
 // 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:                ]
@@ -3729,81 +4082,89 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:            ]
 // CHECK-NEXT:           }
 // CHECK-NEXT:          ]
-// CHECK-NEXT:         }, 
+// CHECK-NEXT:         },
 // CHECK-NEXT:         {
-// CHECK-NEXT:          "id": "0x{{.*}}", 
-// CHECK-NEXT:          "kind": "ImplicitCastExpr", 
+// CHECK-NEXT:          "id": "0x{{.*}}",
+// CHECK-NEXT:          "kind": "ImplicitCastExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
-// CHECK-NEXT:            "col": 7, 
+// CHECK-NEXT:            "offset": 2013,
+// CHECK-NEXT:            "col": 7,
 // CHECK-NEXT:            "tokLen": 1
-// CHECK-NEXT:           }, 
+// CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
-// CHECK-NEXT:            "col": 8, 
+// CHECK-NEXT:            "offset": 2014,
+// CHECK-NEXT:            "col": 8,
 // CHECK-NEXT:            "tokLen": 5
 // CHECK-NEXT:           }
-// CHECK-NEXT:          }, 
+// CHECK-NEXT:          },
 // CHECK-NEXT:          "type": {
-// CHECK-NEXT:           "desugaredQualType": "id", 
-// CHECK-NEXT:           "qualType": "id", 
+// CHECK-NEXT:           "desugaredQualType": "id",
+// CHECK-NEXT:           "qualType": "id",
 // CHECK-NEXT:           "typeAliasDeclId": "0x{{.*}}"
-// CHECK-NEXT:          }, 
-// CHECK-NEXT:          "valueCategory": "rvalue", 
-// CHECK-NEXT:          "castKind": "BitCast", 
+// CHECK-NEXT:          },
+// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "castKind": "BitCast",
 // CHECK-NEXT:          "inner": [
 // CHECK-NEXT:           {
-// CHECK-NEXT:            "id": "0x{{.*}}", 
-// CHECK-NEXT:            "kind": "OpaqueValueExpr", 
+// CHECK-NEXT:            "id": "0x{{.*}}",
+// CHECK-NEXT:            "kind": "OpaqueValueExpr",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
-// CHECK-NEXT:              "col": 7, 
+// CHECK-NEXT:              "offset": 2013,
+// CHECK-NEXT:              "col": 7,
 // CHECK-NEXT:              "tokLen": 1
-// CHECK-NEXT:             }, 
+// CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
-// CHECK-NEXT:              "col": 8, 
+// CHECK-NEXT:              "offset": 2014,
+// CHECK-NEXT:              "col": 8,
 // CHECK-NEXT:              "tokLen": 5
 // CHECK-NEXT:             }
-// CHECK-NEXT:            }, 
+// CHECK-NEXT:            },
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "qualType": "NSString *"
-// CHECK-NEXT:            }, 
-// CHECK-NEXT:            "valueCategory": "rvalue", 
+// CHECK-NEXT:            },
+// CHECK-NEXT:            "valueCategory": "rvalue",
 // CHECK-NEXT:            "inner": [
 // CHECK-NEXT:             {
-// CHECK-NEXT:              "id": "0x{{.*}}", 
-// CHECK-NEXT:              "kind": "ObjCStringLiteral", 
+// CHECK-NEXT:              "id": "0x{{.*}}",
+// CHECK-NEXT:              "kind": "ObjCStringLiteral",
 // CHECK-NEXT:              "range": {
 // CHECK-NEXT:               "begin": {
-// CHECK-NEXT:                "col": 7, 
+// CHECK-NEXT:                "offset": 2013,
+// CHECK-NEXT:                "col": 7,
 // CHECK-NEXT:                "tokLen": 1
-// CHECK-NEXT:               }, 
+// CHECK-NEXT:               },
 // CHECK-NEXT:               "end": {
-// CHECK-NEXT:                "col": 8, 
+// CHECK-NEXT:                "offset": 2014,
+// CHECK-NEXT:                "col": 8,
 // CHECK-NEXT:                "tokLen": 5
 // CHECK-NEXT:               }
-// CHECK-NEXT:              }, 
+// CHECK-NEXT:              },
 // CHECK-NEXT:              "type": {
 // CHECK-NEXT:               "qualType": "NSString *"
-// CHECK-NEXT:              }, 
-// CHECK-NEXT:              "valueCategory": "rvalue", 
+// CHECK-NEXT:              },
+// CHECK-NEXT:              "valueCategory": "rvalue",
 // CHECK-NEXT:              "inner": [
 // CHECK-NEXT:               {
-// CHECK-NEXT:                "id": "0x{{.*}}", 
-// CHECK-NEXT:                "kind": "StringLiteral", 
+// CHECK-NEXT:                "id": "0x{{.*}}",
+// CHECK-NEXT:                "kind": "StringLiteral",
 // CHECK-NEXT:                "range": {
 // CHECK-NEXT:                 "begin": {
-// CHECK-NEXT:                  "col": 8, 
+// CHECK-NEXT:                  "offset": 2014,
+// CHECK-NEXT:                  "col": 8,
 // CHECK-NEXT:                  "tokLen": 5
-// CHECK-NEXT:                 }, 
+// CHECK-NEXT:                 },
 // CHECK-NEXT:                 "end": {
-// CHECK-NEXT:                  "col": 8, 
+// CHECK-NEXT:                  "offset": 2014,
+// CHECK-NEXT:                  "col": 8,
 // CHECK-NEXT:                  "tokLen": 5
 // CHECK-NEXT:                 }
-// CHECK-NEXT:                }, 
+// CHECK-NEXT:                },
 // CHECK-NEXT:                "type": {
 // CHECK-NEXT:                 "qualType": "char [4]"
-// CHECK-NEXT:                }, 
-// CHECK-NEXT:                "valueCategory": "lvalue", 
+// CHECK-NEXT:                },
+// CHECK-NEXT:                "valueCategory": "lvalue",
 // CHECK-NEXT:                "value": "\"key\""
 // CHECK-NEXT:               }
 // CHECK-NEXT:              ]
@@ -3815,156 +4176,170 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:        ]
 // CHECK-NEXT:       }
 // CHECK-NEXT:      ]
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     {
-// CHECK-NEXT:      "id": "0x{{.*}}", 
-// CHECK-NEXT:      "kind": "BinaryOperator", 
+// CHECK-NEXT:      "id": "0x{{.*}}",
+// CHECK-NEXT:      "kind": "BinaryOperator",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
-// CHECK-NEXT:        "line": 86, 
-// CHECK-NEXT:        "col": 2, 
+// CHECK-NEXT:        "offset": 2034,
+// CHECK-NEXT:        "line": 86,
+// CHECK-NEXT:        "col": 2,
 // CHECK-NEXT:        "tokLen": 1
-// CHECK-NEXT:       }, 
+// CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
-// CHECK-NEXT:        "col": 17, 
+// CHECK-NEXT:        "offset": 2049,
+// CHECK-NEXT:        "col": 17,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
-// CHECK-NEXT:      }, 
+// CHECK-NEXT:      },
 // CHECK-NEXT:      "type": {
-// CHECK-NEXT:       "desugaredQualType": "id", 
-// CHECK-NEXT:       "qualType": "id", 
+// CHECK-NEXT:       "desugaredQualType": "id",
+// CHECK-NEXT:       "qualType": "id",
 // CHECK-NEXT:       "typeAliasDeclId": "0x{{.*}}"
-// CHECK-NEXT:      }, 
-// CHECK-NEXT:      "valueCategory": "rvalue", 
-// CHECK-NEXT:      "opcode": "=", 
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "opcode": "=",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
-// CHECK-NEXT:        "id": "0x{{.*}}", 
-// CHECK-NEXT:        "kind": "DeclRefExpr", 
+// CHECK-NEXT:        "id": "0x{{.*}}",
+// CHECK-NEXT:        "kind": "DeclRefExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
-// CHECK-NEXT:          "col": 2, 
+// CHECK-NEXT:          "offset": 2034,
+// CHECK-NEXT:          "col": 2,
 // CHECK-NEXT:          "tokLen": 1
-// CHECK-NEXT:         }, 
+// CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "col": 2, 
+// CHECK-NEXT:          "offset": 2034,
+// CHECK-NEXT:          "col": 2,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
-// CHECK-NEXT:        }, 
+// CHECK-NEXT:        },
 // CHECK-NEXT:        "type": {
-// CHECK-NEXT:         "desugaredQualType": "id", 
-// CHECK-NEXT:         "qualType": "id", 
+// CHECK-NEXT:         "desugaredQualType": "id",
+// CHECK-NEXT:         "qualType": "id",
 // CHECK-NEXT:         "typeAliasDeclId": "0x{{.*}}"
-// CHECK-NEXT:        }, 
-// CHECK-NEXT:        "valueCategory": "lvalue", 
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "valueCategory": "lvalue",
 // CHECK-NEXT:        "referencedDecl": {
-// CHECK-NEXT:         "id": "0x{{.*}}", 
-// CHECK-NEXT:         "kind": "VarDecl", 
-// CHECK-NEXT:         "name": "i", 
+// CHECK-NEXT:         "id": "0x{{.*}}",
+// CHECK-NEXT:         "kind": "VarDecl",
+// CHECK-NEXT:         "name": "i",
 // CHECK-NEXT:         "type": {
-// CHECK-NEXT:          "desugaredQualType": "id", 
-// CHECK-NEXT:          "qualType": "id", 
+// CHECK-NEXT:          "desugaredQualType": "id",
+// CHECK-NEXT:          "qualType": "id",
 // CHECK-NEXT:          "typeAliasDeclId": "0x{{.*}}"
 // CHECK-NEXT:         }
 // CHECK-NEXT:        }
-// CHECK-NEXT:       }, 
+// CHECK-NEXT:       },
 // CHECK-NEXT:       {
-// CHECK-NEXT:        "id": "0x{{.*}}", 
-// CHECK-NEXT:        "kind": "PseudoObjectExpr", 
+// CHECK-NEXT:        "id": "0x{{.*}}",
+// CHECK-NEXT:        "kind": "PseudoObjectExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
-// CHECK-NEXT:          "col": 6, 
+// CHECK-NEXT:          "offset": 2038,
+// CHECK-NEXT:          "col": 6,
 // CHECK-NEXT:          "tokLen": 4
-// CHECK-NEXT:         }, 
+// CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "col": 17, 
+// CHECK-NEXT:          "offset": 2049,
+// CHECK-NEXT:          "col": 17,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
-// CHECK-NEXT:        }, 
+// CHECK-NEXT:        },
 // CHECK-NEXT:        "type": {
-// CHECK-NEXT:         "desugaredQualType": "id", 
-// CHECK-NEXT:         "qualType": "id", 
+// CHECK-NEXT:         "desugaredQualType": "id",
+// CHECK-NEXT:         "qualType": "id",
 // CHECK-NEXT:         "typeAliasDeclId": "0x{{.*}}"
-// CHECK-NEXT:        }, 
-// CHECK-NEXT:        "valueCategory": "rvalue", 
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "valueCategory": "rvalue",
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
-// CHECK-NEXT:          "id": "0x{{.*}}", 
-// CHECK-NEXT:          "kind": "ObjCSubscriptRefExpr", 
+// CHECK-NEXT:          "id": "0x{{.*}}",
+// CHECK-NEXT:          "kind": "ObjCSubscriptRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
-// CHECK-NEXT:            "col": 6, 
+// CHECK-NEXT:            "offset": 2038,
+// CHECK-NEXT:            "col": 6,
 // CHECK-NEXT:            "tokLen": 4
-// CHECK-NEXT:           }, 
+// CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
-// CHECK-NEXT:            "col": 17, 
+// CHECK-NEXT:            "offset": 2049,
+// CHECK-NEXT:            "col": 17,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
-// CHECK-NEXT:          }, 
+// CHECK-NEXT:          },
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "qualType": "<pseudo-object type>"
-// CHECK-NEXT:          }, 
-// CHECK-NEXT:          "valueCategory": "lvalue", 
-// CHECK-NEXT:          "subscriptKind": "dictionary", 
+// CHECK-NEXT:          },
+// CHECK-NEXT:          "valueCategory": "lvalue",
+// CHECK-NEXT:          "subscriptKind": "dictionary",
 // CHECK-NEXT:          "inner": [
 // CHECK-NEXT:           {
-// CHECK-NEXT:            "id": "0x{{.*}}", 
-// CHECK-NEXT:            "kind": "OpaqueValueExpr", 
+// CHECK-NEXT:            "id": "0x{{.*}}",
+// CHECK-NEXT:            "kind": "OpaqueValueExpr",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
-// CHECK-NEXT:              "col": 6, 
+// CHECK-NEXT:              "offset": 2038,
+// CHECK-NEXT:              "col": 6,
 // CHECK-NEXT:              "tokLen": 4
-// CHECK-NEXT:             }, 
+// CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
-// CHECK-NEXT:              "col": 6, 
+// CHECK-NEXT:              "offset": 2038,
+// CHECK-NEXT:              "col": 6,
 // CHECK-NEXT:              "tokLen": 4
 // CHECK-NEXT:             }
-// CHECK-NEXT:            }, 
+// CHECK-NEXT:            },
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "qualType": "NSMutableDictionary *"
-// CHECK-NEXT:            }, 
-// CHECK-NEXT:            "valueCategory": "rvalue", 
+// CHECK-NEXT:            },
+// CHECK-NEXT:            "valueCategory": "rvalue",
 // CHECK-NEXT:            "inner": [
 // CHECK-NEXT:             {
-// CHECK-NEXT:              "id": "0x{{.*}}", 
-// CHECK-NEXT:              "kind": "ImplicitCastExpr", 
+// CHECK-NEXT:              "id": "0x{{.*}}",
+// CHECK-NEXT:              "kind": "ImplicitCastExpr",
 // CHECK-NEXT:              "range": {
 // CHECK-NEXT:               "begin": {
-// CHECK-NEXT:                "col": 6, 
+// CHECK-NEXT:                "offset": 2038,
+// CHECK-NEXT:                "col": 6,
 // CHECK-NEXT:                "tokLen": 4
-// CHECK-NEXT:               }, 
+// CHECK-NEXT:               },
 // CHECK-NEXT:               "end": {
-// CHECK-NEXT:                "col": 6, 
+// CHECK-NEXT:                "offset": 2038,
+// CHECK-NEXT:                "col": 6,
 // CHECK-NEXT:                "tokLen": 4
 // CHECK-NEXT:               }
-// CHECK-NEXT:              }, 
+// CHECK-NEXT:              },
 // CHECK-NEXT:              "type": {
 // CHECK-NEXT:               "qualType": "NSMutableDictionary *"
-// CHECK-NEXT:              }, 
-// CHECK-NEXT:              "valueCategory": "rvalue", 
-// CHECK-NEXT:              "castKind": "LValueToRValue", 
+// CHECK-NEXT:              },
+// CHECK-NEXT:              "valueCategory": "rvalue",
+// CHECK-NEXT:              "castKind": "LValueToRValue",
 // CHECK-NEXT:              "inner": [
 // CHECK-NEXT:               {
-// CHECK-NEXT:                "id": "0x{{.*}}", 
-// CHECK-NEXT:                "kind": "DeclRefExpr", 
+// CHECK-NEXT:                "id": "0x{{.*}}",
+// CHECK-NEXT:                "kind": "DeclRefExpr",
 // CHECK-NEXT:                "range": {
 // CHECK-NEXT:                 "begin": {
-// CHECK-NEXT:                  "col": 6, 
+// CHECK-NEXT:                  "offset": 2038,
+// CHECK-NEXT:                  "col": 6,
 // CHECK-NEXT:                  "tokLen": 4
-// CHECK-NEXT:                 }, 
+// CHECK-NEXT:                 },
 // CHECK-NEXT:                 "end": {
-// CHECK-NEXT:                  "col": 6, 
+// CHECK-NEXT:                  "offset": 2038,
+// CHECK-NEXT:                  "col": 6,
 // CHECK-NEXT:                  "tokLen": 4
 // CHECK-NEXT:                 }
-// CHECK-NEXT:                }, 
+// CHECK-NEXT:                },
 // CHECK-NEXT:                "type": {
 // CHECK-NEXT:                 "qualType": "NSMutableDictionary *"
-// CHECK-NEXT:                }, 
-// CHECK-NEXT:                "valueCategory": "lvalue", 
+// CHECK-NEXT:                },
+// CHECK-NEXT:                "valueCategory": "lvalue",
 // CHECK-NEXT:                "referencedDecl": {
-// CHECK-NEXT:                 "id": "0x{{.*}}", 
-// CHECK-NEXT:                 "kind": "ParmVarDecl", 
-// CHECK-NEXT:                 "name": "Dict", 
+// CHECK-NEXT:                 "id": "0x{{.*}}",
+// CHECK-NEXT:                 "kind": "ParmVarDecl",
+// CHECK-NEXT:                 "name": "Dict",
 // CHECK-NEXT:                 "type": {
 // CHECK-NEXT:                  "qualType": "NSMutableDictionary *"
 // CHECK-NEXT:                 }
@@ -3973,60 +4348,66 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:              ]
 // CHECK-NEXT:             }
 // CHECK-NEXT:            ]
-// CHECK-NEXT:           }, 
+// CHECK-NEXT:           },
 // CHECK-NEXT:           {
-// CHECK-NEXT:            "id": "0x{{.*}}", 
-// CHECK-NEXT:            "kind": "OpaqueValueExpr", 
+// CHECK-NEXT:            "id": "0x{{.*}}",
+// CHECK-NEXT:            "kind": "OpaqueValueExpr",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
-// CHECK-NEXT:              "col": 11, 
+// CHECK-NEXT:              "offset": 2043,
+// CHECK-NEXT:              "col": 11,
 // CHECK-NEXT:              "tokLen": 1
-// CHECK-NEXT:             }, 
+// CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
-// CHECK-NEXT:              "col": 12, 
+// CHECK-NEXT:              "offset": 2044,
+// CHECK-NEXT:              "col": 12,
 // CHECK-NEXT:              "tokLen": 5
 // CHECK-NEXT:             }
-// CHECK-NEXT:            }, 
+// CHECK-NEXT:            },
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "qualType": "NSString *"
-// CHECK-NEXT:            }, 
-// CHECK-NEXT:            "valueCategory": "rvalue", 
+// CHECK-NEXT:            },
+// CHECK-NEXT:            "valueCategory": "rvalue",
 // CHECK-NEXT:            "inner": [
 // CHECK-NEXT:             {
-// CHECK-NEXT:              "id": "0x{{.*}}", 
-// CHECK-NEXT:              "kind": "ObjCStringLiteral", 
+// CHECK-NEXT:              "id": "0x{{.*}}",
+// CHECK-NEXT:              "kind": "ObjCStringLiteral",
 // CHECK-NEXT:              "range": {
 // CHECK-NEXT:               "begin": {
-// CHECK-NEXT:                "col": 11, 
+// CHECK-NEXT:                "offset": 2043,
+// CHECK-NEXT:                "col": 11,
 // CHECK-NEXT:                "tokLen": 1
-// CHECK-NEXT:               }, 
+// CHECK-NEXT:               },
 // CHECK-NEXT:               "end": {
-// CHECK-NEXT:                "col": 12, 
+// CHECK-NEXT:                "offset": 2044,
+// CHECK-NEXT:                "col": 12,
 // CHECK-NEXT:                "tokLen": 5
 // CHECK-NEXT:               }
-// CHECK-NEXT:              }, 
+// CHECK-NEXT:              },
 // CHECK-NEXT:              "type": {
 // CHECK-NEXT:               "qualType": "NSString *"
-// CHECK-NEXT:              }, 
-// CHECK-NEXT:              "valueCategory": "rvalue", 
+// CHECK-NEXT:              },
+// CHECK-NEXT:              "valueCategory": "rvalue",
 // CHECK-NEXT:              "inner": [
 // CHECK-NEXT:               {
-// CHECK-NEXT:                "id": "0x{{.*}}", 
-// CHECK-NEXT:                "kind": "StringLiteral", 
+// CHECK-NEXT:                "id": "0x{{.*}}",
+// CHECK-NEXT:                "kind": "StringLiteral",
 // CHECK-NEXT:                "range": {
 // CHECK-NEXT:                 "begin": {
-// CHECK-NEXT:                  "col": 12, 
+// CHECK-NEXT:                  "offset": 2044,
+// CHECK-NEXT:                  "col": 12,
 // CHECK-NEXT:                  "tokLen": 5
-// CHECK-NEXT:                 }, 
+// CHECK-NEXT:                 },
 // CHECK-NEXT:                 "end": {
-// CHECK-NEXT:                  "col": 12, 
+// CHECK-NEXT:                  "offset": 2044,
+// CHECK-NEXT:                  "col": 12,
 // CHECK-NEXT:                  "tokLen": 5
 // CHECK-NEXT:                 }
-// CHECK-NEXT:                }, 
+// CHECK-NEXT:                },
 // CHECK-NEXT:                "type": {
 // CHECK-NEXT:                 "qualType": "char [4]"
-// CHECK-NEXT:                }, 
-// CHECK-NEXT:                "valueCategory": "lvalue", 
+// CHECK-NEXT:                },
+// CHECK-NEXT:                "valueCategory": "lvalue",
 // CHECK-NEXT:                "value": "\"key\""
 // CHECK-NEXT:               }
 // CHECK-NEXT:              ]
@@ -4034,65 +4415,71 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:            ]
 // CHECK-NEXT:           }
 // CHECK-NEXT:          ]
-// CHECK-NEXT:         }, 
+// CHECK-NEXT:         },
 // CHECK-NEXT:         {
-// CHECK-NEXT:          "id": "0x{{.*}}", 
-// CHECK-NEXT:          "kind": "OpaqueValueExpr", 
+// CHECK-NEXT:          "id": "0x{{.*}}",
+// CHECK-NEXT:          "kind": "OpaqueValueExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
-// CHECK-NEXT:            "col": 6, 
+// CHECK-NEXT:            "offset": 2038,
+// CHECK-NEXT:            "col": 6,
 // CHECK-NEXT:            "tokLen": 4
-// CHECK-NEXT:           }, 
+// CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
-// CHECK-NEXT:            "col": 6, 
+// CHECK-NEXT:            "offset": 2038,
+// CHECK-NEXT:            "col": 6,
 // CHECK-NEXT:            "tokLen": 4
 // CHECK-NEXT:           }
-// CHECK-NEXT:          }, 
+// CHECK-NEXT:          },
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "qualType": "NSMutableDictionary *"
-// CHECK-NEXT:          }, 
-// CHECK-NEXT:          "valueCategory": "rvalue", 
+// CHECK-NEXT:          },
+// CHECK-NEXT:          "valueCategory": "rvalue",
 // CHECK-NEXT:          "inner": [
 // CHECK-NEXT:           {
-// CHECK-NEXT:            "id": "0x{{.*}}", 
-// CHECK-NEXT:            "kind": "ImplicitCastExpr", 
+// CHECK-NEXT:            "id": "0x{{.*}}",
+// CHECK-NEXT:            "kind": "ImplicitCastExpr",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
-// CHECK-NEXT:              "col": 6, 
+// CHECK-NEXT:              "offset": 2038,
+// CHECK-NEXT:              "col": 6,
 // CHECK-NEXT:              "tokLen": 4
-// CHECK-NEXT:             }, 
+// CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
-// CHECK-NEXT:              "col": 6, 
+// CHECK-NEXT:              "offset": 2038,
+// CHECK-NEXT:              "col": 6,
 // CHECK-NEXT:              "tokLen": 4
 // CHECK-NEXT:             }
-// CHECK-NEXT:            }, 
+// CHECK-NEXT:            },
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "qualType": "NSMutableDictionary *"
-// CHECK-NEXT:            }, 
-// CHECK-NEXT:            "valueCategory": "rvalue", 
-// CHECK-NEXT:            "castKind": "LValueToRValue", 
+// CHECK-NEXT:            },
+// CHECK-NEXT:            "valueCategory": "rvalue",
+// CHECK-NEXT:            "castKind": "LValueToRValue",
 // CHECK-NEXT:            "inner": [
 // CHECK-NEXT:             {
-// CHECK-NEXT:              "id": "0x{{.*}}", 
-// CHECK-NEXT:              "kind": "DeclRefExpr", 
+// CHECK-NEXT:              "id": "0x{{.*}}",
+// CHECK-NEXT:              "kind": "DeclRefExpr",
 // CHECK-NEXT:              "range": {
 // CHECK-NEXT:               "begin": {
-// CHECK-NEXT:                "col": 6, 
+// CHECK-NEXT:                "offset": 2038,
+// CHECK-NEXT:                "col": 6,
 // CHECK-NEXT:                "tokLen": 4
-// CHECK-NEXT:               }, 
+// CHECK-NEXT:               },
 // CHECK-NEXT:               "end": {
-// CHECK-NEXT:                "col": 6, 
+// CHECK-NEXT:                "offset": 2038,
+// CHECK-NEXT:                "col": 6,
 // CHECK-NEXT:                "tokLen": 4
 // CHECK-NEXT:               }
-// CHECK-NEXT:              }, 
+// CHECK-NEXT:              },
 // CHECK-NEXT:              "type": {
 // CHECK-NEXT:               "qualType": "NSMutableDictionary *"
-// CHECK-NEXT:              }, 
-// CHECK-NEXT:              "valueCategory": "lvalue", 
+// CHECK-NEXT:              },
+// CHECK-NEXT:              "valueCategory": "lvalue",
 // CHECK-NEXT:              "referencedDecl": {
-// CHECK-NEXT:               "id": "0x{{.*}}", 
-// CHECK-NEXT:               "kind": "ParmVarDecl", 
-// CHECK-NEXT:               "name": "Dict", 
+// CHECK-NEXT:               "id": "0x{{.*}}",
+// CHECK-NEXT:               "kind": "ParmVarDecl",
+// CHECK-NEXT:               "name": "Dict",
 // CHECK-NEXT:               "type": {
 // CHECK-NEXT:                "qualType": "NSMutableDictionary *"
 // CHECK-NEXT:               }
@@ -4101,146 +4488,160 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:            ]
 // CHECK-NEXT:           }
 // CHECK-NEXT:          ]
-// CHECK-NEXT:         }, 
+// CHECK-NEXT:         },
 // CHECK-NEXT:         {
-// CHECK-NEXT:          "id": "0x{{.*}}", 
-// CHECK-NEXT:          "kind": "OpaqueValueExpr", 
+// CHECK-NEXT:          "id": "0x{{.*}}",
+// CHECK-NEXT:          "kind": "OpaqueValueExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
-// CHECK-NEXT:            "col": 11, 
+// CHECK-NEXT:            "offset": 2043,
+// CHECK-NEXT:            "col": 11,
 // CHECK-NEXT:            "tokLen": 1
-// CHECK-NEXT:           }, 
+// CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
-// CHECK-NEXT:            "col": 12, 
+// CHECK-NEXT:            "offset": 2044,
+// CHECK-NEXT:            "col": 12,
 // CHECK-NEXT:            "tokLen": 5
 // CHECK-NEXT:           }
-// CHECK-NEXT:          }, 
+// CHECK-NEXT:          },
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "qualType": "NSString *"
-// CHECK-NEXT:          }, 
-// CHECK-NEXT:          "valueCategory": "rvalue", 
+// CHECK-NEXT:          },
+// CHECK-NEXT:          "valueCategory": "rvalue",
 // CHECK-NEXT:          "inner": [
 // CHECK-NEXT:           {
-// CHECK-NEXT:            "id": "0x{{.*}}", 
-// CHECK-NEXT:            "kind": "ObjCStringLiteral", 
+// CHECK-NEXT:            "id": "0x{{.*}}",
+// CHECK-NEXT:            "kind": "ObjCStringLiteral",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
-// CHECK-NEXT:              "col": 11, 
+// CHECK-NEXT:              "offset": 2043,
+// CHECK-NEXT:              "col": 11,
 // CHECK-NEXT:              "tokLen": 1
-// CHECK-NEXT:             }, 
+// CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
-// CHECK-NEXT:              "col": 12, 
+// CHECK-NEXT:              "offset": 2044,
+// CHECK-NEXT:              "col": 12,
 // CHECK-NEXT:              "tokLen": 5
 // CHECK-NEXT:             }
-// CHECK-NEXT:            }, 
+// CHECK-NEXT:            },
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "qualType": "NSString *"
-// CHECK-NEXT:            }, 
-// CHECK-NEXT:            "valueCategory": "rvalue", 
+// CHECK-NEXT:            },
+// CHECK-NEXT:            "valueCategory": "rvalue",
 // CHECK-NEXT:            "inner": [
 // CHECK-NEXT:             {
-// CHECK-NEXT:              "id": "0x{{.*}}", 
-// CHECK-NEXT:              "kind": "StringLiteral", 
+// CHECK-NEXT:              "id": "0x{{.*}}",
+// CHECK-NEXT:              "kind": "StringLiteral",
 // CHECK-NEXT:              "range": {
 // CHECK-NEXT:               "begin": {
-// CHECK-NEXT:                "col": 12, 
+// CHECK-NEXT:                "offset": 2044,
+// CHECK-NEXT:                "col": 12,
 // CHECK-NEXT:                "tokLen": 5
-// CHECK-NEXT:               }, 
+// CHECK-NEXT:               },
 // CHECK-NEXT:               "end": {
-// CHECK-NEXT:                "col": 12, 
+// CHECK-NEXT:                "offset": 2044,
+// CHECK-NEXT:                "col": 12,
 // CHECK-NEXT:                "tokLen": 5
 // CHECK-NEXT:               }
-// CHECK-NEXT:              }, 
+// CHECK-NEXT:              },
 // CHECK-NEXT:              "type": {
 // CHECK-NEXT:               "qualType": "char [4]"
-// CHECK-NEXT:              }, 
-// CHECK-NEXT:              "valueCategory": "lvalue", 
+// CHECK-NEXT:              },
+// CHECK-NEXT:              "valueCategory": "lvalue",
 // CHECK-NEXT:              "value": "\"key\""
 // CHECK-NEXT:             }
 // CHECK-NEXT:            ]
 // CHECK-NEXT:           }
 // CHECK-NEXT:          ]
-// CHECK-NEXT:         }, 
+// CHECK-NEXT:         },
 // CHECK-NEXT:         {
-// CHECK-NEXT:          "id": "0x{{.*}}", 
-// CHECK-NEXT:          "kind": "ObjCMessageExpr", 
+// CHECK-NEXT:          "id": "0x{{.*}}",
+// CHECK-NEXT:          "kind": "ObjCMessageExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
-// CHECK-NEXT:            "col": 6, 
+// CHECK-NEXT:            "offset": 2038,
+// CHECK-NEXT:            "col": 6,
 // CHECK-NEXT:            "tokLen": 4
-// CHECK-NEXT:           }, 
+// CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
-// CHECK-NEXT:            "col": 6, 
+// CHECK-NEXT:            "offset": 2038,
+// CHECK-NEXT:            "col": 6,
 // CHECK-NEXT:            "tokLen": 4
 // CHECK-NEXT:           }
-// CHECK-NEXT:          }, 
+// CHECK-NEXT:          },
 // CHECK-NEXT:          "type": {
-// CHECK-NEXT:           "desugaredQualType": "id", 
-// CHECK-NEXT:           "qualType": "id", 
+// CHECK-NEXT:           "desugaredQualType": "id",
+// CHECK-NEXT:           "qualType": "id",
 // CHECK-NEXT:           "typeAliasDeclId": "0x{{.*}}"
-// CHECK-NEXT:          }, 
-// CHECK-NEXT:          "valueCategory": "rvalue", 
-// CHECK-NEXT:          "selector": "objectForKeyedSubscript:", 
-// CHECK-NEXT:          "receiverKind": "instance", 
+// CHECK-NEXT:          },
+// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "selector": "objectForKeyedSubscript:",
+// CHECK-NEXT:          "receiverKind": "instance",
 // CHECK-NEXT:          "inner": [
 // CHECK-NEXT:           {
-// CHECK-NEXT:            "id": "0x{{.*}}", 
-// CHECK-NEXT:            "kind": "OpaqueValueExpr", 
+// CHECK-NEXT:            "id": "0x{{.*}}",
+// CHECK-NEXT:            "kind": "OpaqueValueExpr",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
-// CHECK-NEXT:              "col": 6, 
+// CHECK-NEXT:              "offset": 2038,
+// CHECK-NEXT:              "col": 6,
 // CHECK-NEXT:              "tokLen": 4
-// CHECK-NEXT:             }, 
+// CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
-// CHECK-NEXT:              "col": 6, 
+// CHECK-NEXT:              "offset": 2038,
+// CHECK-NEXT:              "col": 6,
 // CHECK-NEXT:              "tokLen": 4
 // CHECK-NEXT:             }
-// CHECK-NEXT:            }, 
+// CHECK-NEXT:            },
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "qualType": "NSMutableDictionary *"
-// CHECK-NEXT:            }, 
-// CHECK-NEXT:            "valueCategory": "rvalue", 
+// CHECK-NEXT:            },
+// CHECK-NEXT:            "valueCategory": "rvalue",
 // CHECK-NEXT:            "inner": [
 // CHECK-NEXT:             {
-// CHECK-NEXT:              "id": "0x{{.*}}", 
-// CHECK-NEXT:              "kind": "ImplicitCastExpr", 
+// CHECK-NEXT:              "id": "0x{{.*}}",
+// CHECK-NEXT:              "kind": "ImplicitCastExpr",
 // CHECK-NEXT:              "range": {
 // CHECK-NEXT:               "begin": {
-// CHECK-NEXT:                "col": 6, 
+// CHECK-NEXT:                "offset": 2038,
+// CHECK-NEXT:                "col": 6,
 // CHECK-NEXT:                "tokLen": 4
-// CHECK-NEXT:               }, 
+// CHECK-NEXT:               },
 // CHECK-NEXT:               "end": {
-// CHECK-NEXT:                "col": 6, 
+// CHECK-NEXT:                "offset": 2038,
+// CHECK-NEXT:                "col": 6,
 // CHECK-NEXT:                "tokLen": 4
 // CHECK-NEXT:               }
-// CHECK-NEXT:              }, 
+// CHECK-NEXT:              },
 // CHECK-NEXT:              "type": {
 // CHECK-NEXT:               "qualType": "NSMutableDictionary *"
-// CHECK-NEXT:              }, 
-// CHECK-NEXT:              "valueCategory": "rvalue", 
-// CHECK-NEXT:              "castKind": "LValueToRValue", 
+// CHECK-NEXT:              },
+// CHECK-NEXT:              "valueCategory": "rvalue",
+// CHECK-NEXT:              "castKind": "LValueToRValue",
 // CHECK-NEXT:              "inner": [
 // CHECK-NEXT:               {
-// CHECK-NEXT:                "id": "0x{{.*}}", 
-// CHECK-NEXT:                "kind": "DeclRefExpr", 
+// CHECK-NEXT:                "id": "0x{{.*}}",
+// CHECK-NEXT:                "kind": "DeclRefExpr",
 // CHECK-NEXT:                "range": {
 // CHECK-NEXT:                 "begin": {
-// CHECK-NEXT:                  "col": 6, 
+// CHECK-NEXT:                  "offset": 2038,
+// CHECK-NEXT:                  "col": 6,
 // CHECK-NEXT:                  "tokLen": 4
-// CHECK-NEXT:                 }, 
+// CHECK-NEXT:                 },
 // CHECK-NEXT:                 "end": {
-// CHECK-NEXT:                  "col": 6, 
+// CHECK-NEXT:                  "offset": 2038,
+// CHECK-NEXT:                  "col": 6,
 // CHECK-NEXT:                  "tokLen": 4
 // CHECK-NEXT:                 }
-// CHECK-NEXT:                }, 
+// CHECK-NEXT:                },
 // CHECK-NEXT:                "type": {
 // CHECK-NEXT:                 "qualType": "NSMutableDictionary *"
-// CHECK-NEXT:                }, 
-// CHECK-NEXT:                "valueCategory": "lvalue", 
+// CHECK-NEXT:                },
+// CHECK-NEXT:                "valueCategory": "lvalue",
 // CHECK-NEXT:                "referencedDecl": {
-// CHECK-NEXT:                 "id": "0x{{.*}}", 
-// CHECK-NEXT:                 "kind": "ParmVarDecl", 
-// CHECK-NEXT:                 "name": "Dict", 
+// CHECK-NEXT:                 "id": "0x{{.*}}",
+// CHECK-NEXT:                 "kind": "ParmVarDecl",
+// CHECK-NEXT:                 "name": "Dict",
 // CHECK-NEXT:                 "type": {
 // CHECK-NEXT:                  "qualType": "NSMutableDictionary *"
 // CHECK-NEXT:                 }
@@ -4249,81 +4650,89 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:              ]
 // CHECK-NEXT:             }
 // CHECK-NEXT:            ]
-// CHECK-NEXT:           }, 
+// CHECK-NEXT:           },
 // CHECK-NEXT:           {
-// CHECK-NEXT:            "id": "0x{{.*}}", 
-// CHECK-NEXT:            "kind": "ImplicitCastExpr", 
+// CHECK-NEXT:            "id": "0x{{.*}}",
+// CHECK-NEXT:            "kind": "ImplicitCastExpr",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
-// CHECK-NEXT:              "col": 11, 
+// CHECK-NEXT:              "offset": 2043,
+// CHECK-NEXT:              "col": 11,
 // CHECK-NEXT:              "tokLen": 1
-// CHECK-NEXT:             }, 
+// CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
-// CHECK-NEXT:              "col": 12, 
+// CHECK-NEXT:              "offset": 2044,
+// CHECK-NEXT:              "col": 12,
 // CHECK-NEXT:              "tokLen": 5
 // CHECK-NEXT:             }
-// CHECK-NEXT:            }, 
+// CHECK-NEXT:            },
 // CHECK-NEXT:            "type": {
-// CHECK-NEXT:             "desugaredQualType": "id", 
-// CHECK-NEXT:             "qualType": "id", 
+// CHECK-NEXT:             "desugaredQualType": "id",
+// CHECK-NEXT:             "qualType": "id",
 // CHECK-NEXT:             "typeAliasDeclId": "0x{{.*}}"
-// CHECK-NEXT:            }, 
-// CHECK-NEXT:            "valueCategory": "rvalue", 
-// CHECK-NEXT:            "castKind": "BitCast", 
+// CHECK-NEXT:            },
+// CHECK-NEXT:            "valueCategory": "rvalue",
+// CHECK-NEXT:            "castKind": "BitCast",
 // CHECK-NEXT:            "inner": [
 // CHECK-NEXT:             {
-// CHECK-NEXT:              "id": "0x{{.*}}", 
-// CHECK-NEXT:              "kind": "OpaqueValueExpr", 
+// CHECK-NEXT:              "id": "0x{{.*}}",
+// CHECK-NEXT:              "kind": "OpaqueValueExpr",
 // CHECK-NEXT:              "range": {
 // CHECK-NEXT:               "begin": {
-// CHECK-NEXT:                "col": 11, 
+// CHECK-NEXT:                "offset": 2043,
+// CHECK-NEXT:                "col": 11,
 // CHECK-NEXT:                "tokLen": 1
-// CHECK-NEXT:               }, 
+// CHECK-NEXT:               },
 // CHECK-NEXT:               "end": {
-// CHECK-NEXT:                "col": 12, 
+// CHECK-NEXT:                "offset": 2044,
+// CHECK-NEXT:                "col": 12,
 // CHECK-NEXT:                "tokLen": 5
 // CHECK-NEXT:               }
-// CHECK-NEXT:              }, 
+// CHECK-NEXT:              },
 // CHECK-NEXT:              "type": {
 // CHECK-NEXT:               "qualType": "NSString *"
-// CHECK-NEXT:              }, 
-// CHECK-NEXT:              "valueCategory": "rvalue", 
+// CHECK-NEXT:              },
+// CHECK-NEXT:              "valueCategory": "rvalue",
 // CHECK-NEXT:              "inner": [
 // CHECK-NEXT:               {
-// CHECK-NEXT:                "id": "0x{{.*}}", 
-// CHECK-NEXT:                "kind": "ObjCStringLiteral", 
+// CHECK-NEXT:                "id": "0x{{.*}}",
+// CHECK-NEXT:                "kind": "ObjCStringLiteral",
 // CHECK-NEXT:                "range": {
 // CHECK-NEXT:                 "begin": {
-// CHECK-NEXT:                  "col": 11, 
+// CHECK-NEXT:                  "offset": 2043,
+// CHECK-NEXT:                  "col": 11,
 // CHECK-NEXT:                  "tokLen": 1
-// CHECK-NEXT:                 }, 
+// CHECK-NEXT:                 },
 // CHECK-NEXT:                 "end": {
-// CHECK-NEXT:                  "col": 12, 
+// CHECK-NEXT:                  "offset": 2044,
+// CHECK-NEXT:                  "col": 12,
 // CHECK-NEXT:                  "tokLen": 5
 // CHECK-NEXT:                 }
-// CHECK-NEXT:                }, 
+// CHECK-NEXT:                },
 // CHECK-NEXT:                "type": {
 // CHECK-NEXT:                 "qualType": "NSString *"
-// CHECK-NEXT:                }, 
-// CHECK-NEXT:                "valueCategory": "rvalue", 
+// CHECK-NEXT:                },
+// CHECK-NEXT:                "valueCategory": "rvalue",
 // CHECK-NEXT:                "inner": [
 // CHECK-NEXT:                 {
-// CHECK-NEXT:                  "id": "0x{{.*}}", 
-// CHECK-NEXT:                  "kind": "StringLiteral", 
+// CHECK-NEXT:                  "id": "0x{{.*}}",
+// CHECK-NEXT:                  "kind": "StringLiteral",
 // CHECK-NEXT:                  "range": {
 // CHECK-NEXT:                   "begin": {
-// CHECK-NEXT:                    "col": 12, 
+// CHECK-NEXT:                    "offset": 2044,
+// CHECK-NEXT:                    "col": 12,
 // CHECK-NEXT:                    "tokLen": 5
-// CHECK-NEXT:                   }, 
+// CHECK-NEXT:                   },
 // CHECK-NEXT:                   "end": {
-// CHECK-NEXT:                    "col": 12, 
+// CHECK-NEXT:                    "offset": 2044,
+// CHECK-NEXT:                    "col": 12,
 // CHECK-NEXT:                    "tokLen": 5
 // CHECK-NEXT:                   }
-// CHECK-NEXT:                  }, 
+// CHECK-NEXT:                  },
 // CHECK-NEXT:                  "type": {
 // CHECK-NEXT:                   "qualType": "char [4]"
-// CHECK-NEXT:                  }, 
-// CHECK-NEXT:                  "valueCategory": "lvalue", 
+// CHECK-NEXT:                  },
+// CHECK-NEXT:                  "valueCategory": "lvalue",
 // CHECK-NEXT:                  "value": "\"key\""
 // CHECK-NEXT:                 }
 // CHECK-NEXT:                ]
@@ -4344,155 +4753,171 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT: }
 
 
-// CHECK:  "kind": "FunctionDecl", 
+// CHECK:  "kind": "FunctionDecl",
 // CHECK-NEXT:  "loc": {
-// CHECK-NEXT:   "file": "{{.*}}", 
-// CHECK-NEXT:   "line": 89, 
-// CHECK-NEXT:   "col": 6, 
+// CHECK-NEXT:   "offset": 2060,
+// CHECK-NEXT:   "file": "{{.*}}",
+// CHECK-NEXT:   "line": 89,
+// CHECK-NEXT:   "col": 6,
 // CHECK-NEXT:   "tokLen": 15
-// CHECK-NEXT:  }, 
+// CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
-// CHECK-NEXT:    "col": 1, 
+// CHECK-NEXT:    "offset": 2055,
+// CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 4
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
-// CHECK-NEXT:    "line": 91, 
-// CHECK-NEXT:    "col": 1, 
+// CHECK-NEXT:    "offset": 2105,
+// CHECK-NEXT:    "line": 91,
+// CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   }
-// CHECK-NEXT:  }, 
-// CHECK-NEXT:  "name": "TestObjCIVarRef", 
+// CHECK-NEXT:  },
+// CHECK-NEXT:  "name": "TestObjCIVarRef",
 // CHECK-NEXT:  "type": {
 // CHECK-NEXT:   "qualType": "void (I *)"
-// CHECK-NEXT:  }, 
+// CHECK-NEXT:  },
 // 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:     "line": 89, 
-// CHECK-NEXT:     "col": 25, 
+// CHECK-NEXT:     "offset": 2079,
+// CHECK-NEXT:     "line": 89,
+// CHECK-NEXT:     "col": 25,
 // CHECK-NEXT:     "tokLen": 3
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "col": 22, 
+// CHECK-NEXT:      "offset": 2076,
+// CHECK-NEXT:      "col": 22,
 // CHECK-NEXT:      "tokLen": 1
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "col": 25, 
+// CHECK-NEXT:      "offset": 2079,
+// CHECK-NEXT:      "col": 25,
 // CHECK-NEXT:      "tokLen": 3
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
-// CHECK-NEXT:    "isUsed": true, 
-// CHECK-NEXT:    "name": "Ptr", 
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "isUsed": true,
+// CHECK-NEXT:    "name": "Ptr",
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "qualType": "I *"
 // CHECK-NEXT:    }
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "id": "0x{{.*}}", 
-// CHECK-NEXT:    "kind": "CompoundStmt", 
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "CompoundStmt",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "col": 30, 
+// CHECK-NEXT:      "offset": 2084,
+// CHECK-NEXT:      "col": 30,
 // CHECK-NEXT:      "tokLen": 1
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "line": 91, 
-// CHECK-NEXT:      "col": 1, 
+// CHECK-NEXT:      "offset": 2105,
+// CHECK-NEXT:      "line": 91,
+// CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "inner": [
 // CHECK-NEXT:     {
-// CHECK-NEXT:      "id": "0x{{.*}}", 
-// CHECK-NEXT:      "kind": "BinaryOperator", 
+// CHECK-NEXT:      "id": "0x{{.*}}",
+// CHECK-NEXT:      "kind": "BinaryOperator",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
-// CHECK-NEXT:        "line": 90, 
-// CHECK-NEXT:        "col": 3, 
+// CHECK-NEXT:        "offset": 2088,
+// CHECK-NEXT:        "line": 90,
+// CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 3
-// CHECK-NEXT:       }, 
+// CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
-// CHECK-NEXT:        "col": 17, 
+// CHECK-NEXT:        "offset": 2102,
+// CHECK-NEXT:        "col": 17,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
-// CHECK-NEXT:      }, 
+// CHECK-NEXT:      },
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "int"
-// CHECK-NEXT:      }, 
-// CHECK-NEXT:      "valueCategory": "rvalue", 
-// CHECK-NEXT:      "opcode": "=", 
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "opcode": "=",
 // CHECK-NEXT:      "inner": [
 // CHECK-NEXT:       {
-// CHECK-NEXT:        "id": "0x{{.*}}", 
-// CHECK-NEXT:        "kind": "ObjCIvarRefExpr", 
+// CHECK-NEXT:        "id": "0x{{.*}}",
+// CHECK-NEXT:        "kind": "ObjCIvarRefExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
-// CHECK-NEXT:          "col": 3, 
+// CHECK-NEXT:          "offset": 2088,
+// CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 3
-// CHECK-NEXT:         }, 
+// CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "col": 8, 
+// CHECK-NEXT:          "offset": 2093,
+// CHECK-NEXT:          "col": 8,
 // CHECK-NEXT:          "tokLen": 6
 // CHECK-NEXT:         }
-// CHECK-NEXT:        }, 
+// CHECK-NEXT:        },
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "int"
-// CHECK-NEXT:        }, 
-// CHECK-NEXT:        "valueCategory": "lvalue", 
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "valueCategory": "lvalue",
 // CHECK-NEXT:        "decl": {
-// CHECK-NEXT:         "id": "0x{{.*}}", 
-// CHECK-NEXT:         "kind": "ObjCIvarDecl", 
-// CHECK-NEXT:         "name": "public", 
+// CHECK-NEXT:         "id": "0x{{.*}}",
+// CHECK-NEXT:         "kind": "ObjCIvarDecl",
+// CHECK-NEXT:         "name": "public",
 // CHECK-NEXT:         "type": {
 // CHECK-NEXT:          "qualType": "int"
 // CHECK-NEXT:         }
-// CHECK-NEXT:        }, 
-// CHECK-NEXT:        "isArrow": true, 
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "isArrow": true,
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
-// CHECK-NEXT:          "id": "0x{{.*}}", 
-// CHECK-NEXT:          "kind": "ImplicitCastExpr", 
+// CHECK-NEXT:          "id": "0x{{.*}}",
+// CHECK-NEXT:          "kind": "ImplicitCastExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
-// CHECK-NEXT:            "col": 3, 
+// CHECK-NEXT:            "offset": 2088,
+// CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 3
-// CHECK-NEXT:           }, 
+// CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
-// CHECK-NEXT:            "col": 3, 
+// CHECK-NEXT:            "offset": 2088,
+// CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 3
 // CHECK-NEXT:           }
-// CHECK-NEXT:          }, 
+// CHECK-NEXT:          },
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "qualType": "I *"
-// CHECK-NEXT:          }, 
-// CHECK-NEXT:          "valueCategory": "rvalue", 
-// CHECK-NEXT:          "castKind": "LValueToRValue", 
+// CHECK-NEXT:          },
+// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "castKind": "LValueToRValue",
 // CHECK-NEXT:          "inner": [
 // CHECK-NEXT:           {
-// CHECK-NEXT:            "id": "0x{{.*}}", 
-// CHECK-NEXT:            "kind": "DeclRefExpr", 
+// CHECK-NEXT:            "id": "0x{{.*}}",
+// CHECK-NEXT:            "kind": "DeclRefExpr",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
-// CHECK-NEXT:              "col": 3, 
+// CHECK-NEXT:              "offset": 2088,
+// CHECK-NEXT:              "col": 3,
 // CHECK-NEXT:              "tokLen": 3
-// CHECK-NEXT:             }, 
+// CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
-// CHECK-NEXT:              "col": 3, 
+// CHECK-NEXT:              "offset": 2088,
+// CHECK-NEXT:              "col": 3,
 // CHECK-NEXT:              "tokLen": 3
 // CHECK-NEXT:             }
-// CHECK-NEXT:            }, 
+// CHECK-NEXT:            },
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "qualType": "I *"
-// CHECK-NEXT:            }, 
-// CHECK-NEXT:            "valueCategory": "lvalue", 
+// CHECK-NEXT:            },
+// CHECK-NEXT:            "valueCategory": "lvalue",
 // CHECK-NEXT:            "referencedDecl": {
-// CHECK-NEXT:             "id": "0x{{.*}}", 
-// CHECK-NEXT:             "kind": "ParmVarDecl", 
-// CHECK-NEXT:             "name": "Ptr", 
+// CHECK-NEXT:             "id": "0x{{.*}}",
+// CHECK-NEXT:             "kind": "ParmVarDecl",
+// CHECK-NEXT:             "name": "Ptr",
 // CHECK-NEXT:             "type": {
 // CHECK-NEXT:              "qualType": "I *"
 // CHECK-NEXT:             }
@@ -4501,24 +4926,26 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:          ]
 // CHECK-NEXT:         }
 // CHECK-NEXT:        ]
-// CHECK-NEXT:       }, 
+// CHECK-NEXT:       },
 // 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": 17, 
+// CHECK-NEXT:          "offset": 2102,
+// CHECK-NEXT:          "col": 17,
 // CHECK-NEXT:          "tokLen": 1
-// CHECK-NEXT:         }, 
+// CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "col": 17, 
+// CHECK-NEXT:          "offset": 2102,
+// CHECK-NEXT:          "col": 17,
 // CHECK-NEXT:          "tokLen": 1
 // 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:      ]
@@ -4529,87 +4956,96 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT: }
 
 
-// CHECK:  "kind": "FunctionDecl", 
+// CHECK:  "kind": "FunctionDecl",
 // CHECK-NEXT:  "loc": {
-// CHECK-NEXT:   "file": "{{.*}}", 
-// CHECK-NEXT:   "line": 93, 
-// CHECK-NEXT:   "col": 6, 
+// CHECK-NEXT:   "offset": 2113,
+// CHECK-NEXT:   "file": "{{.*}}",
+// CHECK-NEXT:   "line": 93,
+// CHECK-NEXT:   "col": 6,
 // CHECK-NEXT:   "tokLen": 19
-// CHECK-NEXT:  }, 
+// CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
-// CHECK-NEXT:    "col": 1, 
+// CHECK-NEXT:    "offset": 2108,
+// CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 4
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
-// CHECK-NEXT:    "line": 96, 
-// CHECK-NEXT:    "col": 1, 
+// CHECK-NEXT:    "offset": 2164,
+// CHECK-NEXT:    "line": 96,
+// CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   }
-// CHECK-NEXT:  }, 
-// CHECK-NEXT:  "name": "TestObjCBoolLiteral", 
+// CHECK-NEXT:  },
+// CHECK-NEXT:  "name": "TestObjCBoolLiteral",
 // CHECK-NEXT:  "type": {
 // CHECK-NEXT:   "qualType": "void ()"
-// CHECK-NEXT:  }, 
+// CHECK-NEXT:  },
 // CHECK-NEXT:  "inner": [
 // CHECK-NEXT:   {
-// CHECK-NEXT:    "id": "0x{{.*}}", 
-// CHECK-NEXT:    "kind": "CompoundStmt", 
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "CompoundStmt",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "line": 93, 
-// CHECK-NEXT:      "col": 28, 
+// CHECK-NEXT:      "offset": 2135,
+// CHECK-NEXT:      "line": 93,
+// CHECK-NEXT:      "col": 28,
 // CHECK-NEXT:      "tokLen": 1
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "line": 96, 
-// CHECK-NEXT:      "col": 1, 
+// CHECK-NEXT:      "offset": 2164,
+// CHECK-NEXT:      "line": 96,
+// CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "inner": [
 // CHECK-NEXT:     {
-// CHECK-NEXT:      "id": "0x{{.*}}", 
-// CHECK-NEXT:      "kind": "ObjCBoolLiteralExpr", 
+// CHECK-NEXT:      "id": "0x{{.*}}",
+// CHECK-NEXT:      "kind": "ObjCBoolLiteralExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
-// CHECK-NEXT:        "line": 94, 
-// CHECK-NEXT:        "col": 3, 
+// CHECK-NEXT:        "offset": 2139,
+// CHECK-NEXT:        "line": 94,
+// CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 10
-// CHECK-NEXT:       }, 
+// CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
-// CHECK-NEXT:        "col": 3, 
+// CHECK-NEXT:        "offset": 2139,
+// CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 10
 // CHECK-NEXT:       }
-// CHECK-NEXT:      }, 
+// CHECK-NEXT:      },
 // CHECK-NEXT:      "type": {
-// CHECK-NEXT:       "desugaredQualType": "signed char", 
-// CHECK-NEXT:       "qualType": "BOOL", 
+// CHECK-NEXT:       "desugaredQualType": "signed char",
+// CHECK-NEXT:       "qualType": "BOOL",
 // CHECK-NEXT:       "typeAliasDeclId": "0x{{.*}}"
-// CHECK-NEXT:      }, 
-// CHECK-NEXT:      "valueCategory": "rvalue", 
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "valueCategory": "rvalue",
 // CHECK-NEXT:      "value": "__objc_yes"
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     {
-// CHECK-NEXT:      "id": "0x{{.*}}", 
-// CHECK-NEXT:      "kind": "ObjCBoolLiteralExpr", 
+// CHECK-NEXT:      "id": "0x{{.*}}",
+// CHECK-NEXT:      "kind": "ObjCBoolLiteralExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
-// CHECK-NEXT:        "line": 95, 
-// CHECK-NEXT:        "col": 3, 
+// CHECK-NEXT:        "offset": 2153,
+// CHECK-NEXT:        "line": 95,
+// CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 9
-// CHECK-NEXT:       }, 
+// CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
-// CHECK-NEXT:        "col": 3, 
+// CHECK-NEXT:        "offset": 2153,
+// CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 9
 // CHECK-NEXT:       }
-// CHECK-NEXT:      }, 
+// CHECK-NEXT:      },
 // CHECK-NEXT:      "type": {
-// CHECK-NEXT:       "desugaredQualType": "signed char", 
-// CHECK-NEXT:       "qualType": "BOOL", 
+// CHECK-NEXT:       "desugaredQualType": "signed char",
+// CHECK-NEXT:       "qualType": "BOOL",
 // CHECK-NEXT:       "typeAliasDeclId": "0x{{.*}}"
-// CHECK-NEXT:      }, 
-// CHECK-NEXT:      "valueCategory": "rvalue", 
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "valueCategory": "rvalue",
 // CHECK-NEXT:      "value": "__objc_no"
 // CHECK-NEXT:     }
 // CHECK-NEXT:    ]

Modified: cfe/trunk/test/AST/ast-dump-funcs-json.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/AST/ast-dump-funcs-json.cpp?rev=374921&r1=374920&r2=374921&view=diff
==============================================================================
--- cfe/trunk/test/AST/ast-dump-funcs-json.cpp (original)
+++ cfe/trunk/test/AST/ast-dump-funcs-json.cpp Tue Oct 15 10:30:19 2019
@@ -46,6 +46,7 @@ int main() {
 
 // CHECK:  "kind": "CXXMethodDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 124,
 // CHECK-NEXT:   "file": "{{.*}}",
 // CHECK-NEXT:   "line": 4,
 // CHECK-NEXT:   "col": 8,
@@ -53,10 +54,12 @@ int main() {
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 119,
 // CHECK-NEXT:    "col": 3,
 // CHECK-NEXT:    "tokLen": 4
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 130,
 // CHECK-NEXT:    "col": 14,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   }
@@ -70,6 +73,7 @@ int main() {
 
 // CHECK:  "kind": "CXXMethodDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 140,
 // CHECK-NEXT:   "file": "{{.*}}",
 // CHECK-NEXT:   "line": 5,
 // CHECK-NEXT:   "col": 8,
@@ -77,10 +81,12 @@ int main() {
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 135,
 // CHECK-NEXT:    "col": 3,
 // CHECK-NEXT:    "tokLen": 4
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 148,
 // CHECK-NEXT:    "col": 16,
 // CHECK-NEXT:    "tokLen": 5
 // CHECK-NEXT:   }
@@ -94,6 +100,7 @@ int main() {
 
 // CHECK:  "kind": "CXXMethodDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 162,
 // CHECK-NEXT:   "file": "{{.*}}",
 // CHECK-NEXT:   "line": 6,
 // CHECK-NEXT:   "col": 8,
@@ -101,10 +108,12 @@ int main() {
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 157,
 // CHECK-NEXT:    "col": 3,
 // CHECK-NEXT:    "tokLen": 4
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 170,
 // CHECK-NEXT:    "col": 16,
 // CHECK-NEXT:    "tokLen": 8
 // CHECK-NEXT:   }
@@ -118,6 +127,7 @@ int main() {
 
 // CHECK:  "kind": "CXXMethodDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 187,
 // CHECK-NEXT:   "file": "{{.*}}",
 // CHECK-NEXT:   "line": 7,
 // CHECK-NEXT:   "col": 8,
@@ -125,10 +135,12 @@ int main() {
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 182,
 // CHECK-NEXT:    "col": 3,
 // CHECK-NEXT:    "tokLen": 4
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 195,
 // CHECK-NEXT:    "col": 16,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   }
@@ -142,6 +154,7 @@ int main() {
 
 // CHECK:  "kind": "CXXMethodDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 205,
 // CHECK-NEXT:   "file": "{{.*}}",
 // CHECK-NEXT:   "line": 8,
 // CHECK-NEXT:   "col": 8,
@@ -149,10 +162,12 @@ int main() {
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 200,
 // CHECK-NEXT:    "col": 3,
 // CHECK-NEXT:    "tokLen": 4
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 213,
 // CHECK-NEXT:    "col": 16,
 // CHECK-NEXT:    "tokLen": 2
 // CHECK-NEXT:   }
@@ -166,6 +181,7 @@ int main() {
 
 // CHECK:  "kind": "CXXMethodDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 232,
 // CHECK-NEXT:   "file": "{{.*}}",
 // CHECK-NEXT:   "line": 9,
 // CHECK-NEXT:   "col": 16,
@@ -173,10 +189,12 @@ int main() {
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 219,
 // CHECK-NEXT:    "col": 3,
 // CHECK-NEXT:    "tokLen": 7
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 253,
 // CHECK-NEXT:    "col": 37,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   }
@@ -191,15 +209,18 @@ int main() {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "ParmVarDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 243,
 // CHECK-NEXT:     "col": 27,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 238,
 // CHECK-NEXT:      "col": 22,
 // CHECK-NEXT:      "tokLen": 5
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 238,
 // CHECK-NEXT:      "col": 22,
 // CHECK-NEXT:      "tokLen": 5
 // CHECK-NEXT:     }
@@ -212,15 +233,18 @@ int main() {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "ParmVarDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 249,
 // CHECK-NEXT:     "col": 33,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 245,
 // CHECK-NEXT:      "col": 29,
 // CHECK-NEXT:      "tokLen": 3
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 251,
 // CHECK-NEXT:      "col": 35,
 // CHECK-NEXT:      "tokLen": 2
 // CHECK-NEXT:     }
@@ -235,10 +259,12 @@ int main() {
 // CHECK-NEXT:      "kind": "IntegerLiteral",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 251,
 // CHECK-NEXT:        "col": 35,
 // CHECK-NEXT:        "tokLen": 2
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 251,
 // CHECK-NEXT:        "col": 35,
 // CHECK-NEXT:        "tokLen": 2
 // CHECK-NEXT:       }
@@ -257,6 +283,7 @@ int main() {
 
 // CHECK:  "kind": "CXXMethodDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 271,
 // CHECK-NEXT:   "file": "{{.*}}",
 // CHECK-NEXT:   "line": 10,
 // CHECK-NEXT:   "col": 16,
@@ -264,10 +291,12 @@ int main() {
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 258,
 // CHECK-NEXT:    "col": 3,
 // CHECK-NEXT:    "tokLen": 7
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 281,
 // CHECK-NEXT:    "col": 26,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   }
@@ -283,6 +312,7 @@ int main() {
 
 // CHECK:  "kind": "CXXMethodDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 343,
 // CHECK-NEXT:   "file": "{{.*}}",
 // CHECK-NEXT:   "line": 14,
 // CHECK-NEXT:   "col": 8,
@@ -290,10 +320,12 @@ int main() {
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 338,
 // CHECK-NEXT:    "col": 3,
 // CHECK-NEXT:    "tokLen": 4
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 367,
 // CHECK-NEXT:    "col": 32,
 // CHECK-NEXT:    "tokLen": 8
 // CHECK-NEXT:   }
@@ -307,15 +339,18 @@ int main() {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "ParmVarDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 354,
 // CHECK-NEXT:     "col": 19,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 349,
 // CHECK-NEXT:      "col": 14,
 // CHECK-NEXT:      "tokLen": 5
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 349,
 // CHECK-NEXT:      "col": 14,
 // CHECK-NEXT:      "tokLen": 5
 // CHECK-NEXT:     }
@@ -328,15 +363,18 @@ int main() {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "ParmVarDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 360,
 // CHECK-NEXT:     "col": 25,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 356,
 // CHECK-NEXT:      "col": 21,
 // CHECK-NEXT:      "tokLen": 3
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 362,
 // CHECK-NEXT:      "col": 27,
 // CHECK-NEXT:      "tokLen": 3
 // CHECK-NEXT:     }
@@ -351,10 +389,12 @@ int main() {
 // CHECK-NEXT:      "kind": "IntegerLiteral",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 362,
 // CHECK-NEXT:        "col": 27,
 // CHECK-NEXT:        "tokLen": 3
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 362,
 // CHECK-NEXT:        "col": 27,
 // CHECK-NEXT:        "tokLen": 3
 // CHECK-NEXT:       }
@@ -372,10 +412,12 @@ int main() {
 // CHECK-NEXT:    "kind": "OverrideAttr",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 367,
 // CHECK-NEXT:      "col": 32,
 // CHECK-NEXT:      "tokLen": 8
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 367,
 // CHECK-NEXT:      "col": 32,
 // CHECK-NEXT:      "tokLen": 8
 // CHECK-NEXT:     }
@@ -387,6 +429,7 @@ int main() {
 
 // CHECK:  "kind": "CXXMethodDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 399,
 // CHECK-NEXT:   "file": "{{.*}}",
 // CHECK-NEXT:   "line": 18,
 // CHECK-NEXT:   "col": 8,
@@ -394,10 +437,12 @@ int main() {
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 394,
 // CHECK-NEXT:    "col": 3,
 // CHECK-NEXT:    "tokLen": 4
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 405,
 // CHECK-NEXT:    "col": 14,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   }
@@ -411,6 +456,7 @@ int main() {
 
 // CHECK:  "kind": "CXXMethodDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 419,
 // CHECK-NEXT:   "file": "{{.*}}",
 // CHECK-NEXT:   "line": 20,
 // CHECK-NEXT:   "col": 9,
@@ -418,10 +464,12 @@ int main() {
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 411,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 4
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 428,
 // CHECK-NEXT:    "col": 18,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   }
@@ -438,10 +486,12 @@ int main() {
 // CHECK-NEXT:    "kind": "CompoundStmt",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 427,
 // CHECK-NEXT:      "col": 17,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 428,
 // CHECK-NEXT:      "col": 18,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -453,6 +503,7 @@ int main() {
 
 // CHECK:  "kind": "FunctionDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 446,
 // CHECK-NEXT:   "file": "{{.*}}",
 // CHECK-NEXT:   "line": 22,
 // CHECK-NEXT:   "col": 6,
@@ -460,10 +511,12 @@ int main() {
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 441,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 4
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 452,
 // CHECK-NEXT:    "col": 12,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   }
@@ -478,6 +531,7 @@ int main() {
 
 // CHECK:  "kind": "FunctionDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 460,
 // CHECK-NEXT:   "file": "{{.*}}",
 // CHECK-NEXT:   "line": 23,
 // CHECK-NEXT:   "col": 6,
@@ -485,10 +539,12 @@ int main() {
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 455,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 4
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 470,
 // CHECK-NEXT:    "col": 16,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   }
@@ -502,6 +558,7 @@ int main() {
 
 // CHECK:  "kind": "FunctionDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 478,
 // CHECK-NEXT:   "file": "{{.*}}",
 // CHECK-NEXT:   "line": 24,
 // CHECK-NEXT:   "col": 6,
@@ -509,10 +566,12 @@ int main() {
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 473,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 4
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 496,
 // CHECK-NEXT:    "col": 24,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   }
@@ -526,15 +585,18 @@ int main() {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "ParmVarDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 488,
 // CHECK-NEXT:     "col": 16,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 484,
 // CHECK-NEXT:      "col": 12,
 // CHECK-NEXT:      "tokLen": 3
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 488,
 // CHECK-NEXT:      "col": 16,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -548,15 +610,18 @@ int main() {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "ParmVarDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 495,
 // CHECK-NEXT:     "col": 23,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 491,
 // CHECK-NEXT:      "col": 19,
 // CHECK-NEXT:      "tokLen": 3
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 495,
 // CHECK-NEXT:      "col": 23,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -572,6 +637,7 @@ int main() {
 
 // CHECK:  "kind": "FunctionDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 504,
 // CHECK-NEXT:   "file": "{{.*}}",
 // CHECK-NEXT:   "line": 25,
 // CHECK-NEXT:   "col": 6,
@@ -579,10 +645,12 @@ int main() {
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 499,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 4
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 527,
 // CHECK-NEXT:    "col": 29,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   }
@@ -596,15 +664,18 @@ int main() {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "ParmVarDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 514,
 // CHECK-NEXT:     "col": 16,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 510,
 // CHECK-NEXT:      "col": 12,
 // CHECK-NEXT:      "tokLen": 3
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 514,
 // CHECK-NEXT:      "col": 16,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -618,15 +689,18 @@ int main() {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "ParmVarDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 521,
 // CHECK-NEXT:     "col": 23,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 517,
 // CHECK-NEXT:      "col": 19,
 // CHECK-NEXT:      "tokLen": 3
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 525,
 // CHECK-NEXT:      "col": 27,
 // CHECK-NEXT:      "tokLen": 2
 // CHECK-NEXT:     }
@@ -642,10 +716,12 @@ int main() {
 // CHECK-NEXT:      "kind": "IntegerLiteral",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 525,
 // CHECK-NEXT:        "col": 27,
 // CHECK-NEXT:        "tokLen": 2
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 525,
 // CHECK-NEXT:        "col": 27,
 // CHECK-NEXT:        "tokLen": 2
 // CHECK-NEXT:       }
@@ -664,6 +740,7 @@ int main() {
 
 // CHECK:  "kind": "FunctionDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 545,
 // CHECK-NEXT:   "file": "{{.*}}",
 // CHECK-NEXT:   "line": 26,
 // CHECK-NEXT:   "col": 16,
@@ -671,10 +748,12 @@ int main() {
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 530,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 9
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 555,
 // CHECK-NEXT:    "col": 26,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   }
@@ -689,6 +768,7 @@ int main() {
 
 // CHECK:  "kind": "FunctionDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 570,
 // CHECK-NEXT:   "file": "{{.*}}",
 // CHECK-NEXT:   "line": 27,
 // CHECK-NEXT:   "col": 13,
@@ -696,10 +776,12 @@ int main() {
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 558,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 6
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 580,
 // CHECK-NEXT:    "col": 23,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   }
@@ -714,6 +796,7 @@ int main() {
 
 // CHECK:  "kind": "FunctionDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 595,
 // CHECK-NEXT:   "file": "{{.*}}",
 // CHECK-NEXT:   "line": 28,
 // CHECK-NEXT:   "col": 13,
@@ -721,10 +804,12 @@ int main() {
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 583,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 6
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 605,
 // CHECK-NEXT:    "col": 23,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   }
@@ -739,6 +824,7 @@ int main() {
 
 // CHECK:  "kind": "FunctionDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 620,
 // CHECK-NEXT:   "file": "{{.*}}",
 // CHECK-NEXT:   "line": 29,
 // CHECK-NEXT:   "col": 13,
@@ -746,10 +832,12 @@ int main() {
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 608,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 6
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 630,
 // CHECK-NEXT:    "col": 23,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   }
@@ -764,6 +852,7 @@ int main() {
 
 // CHECK:  "kind": "FunctionDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 638,
 // CHECK-NEXT:   "file": "{{.*}}",
 // CHECK-NEXT:   "line": 30,
 // CHECK-NEXT:   "col": 6,
@@ -771,10 +860,12 @@ int main() {
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 633,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 4
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 650,
 // CHECK-NEXT:    "col": 18,
 // CHECK-NEXT:    "tokLen": 8
 // CHECK-NEXT:   }
@@ -788,6 +879,7 @@ int main() {
 
 // CHECK:  "kind": "FunctionDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 665,
 // CHECK-NEXT:   "file": "{{.*}}",
 // CHECK-NEXT:   "line": 31,
 // CHECK-NEXT:   "col": 6,
@@ -795,10 +887,12 @@ int main() {
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 660,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 4
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 692,
 // CHECK-NEXT:    "col": 33,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   }
@@ -812,6 +906,7 @@ int main() {
 
 // CHECK:  "kind": "FunctionDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 700,
 // CHECK-NEXT:   "file": "{{.*}}",
 // CHECK-NEXT:   "line": 32,
 // CHECK-NEXT:   "col": 6,
@@ -819,10 +914,12 @@ int main() {
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 695,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 4
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 723,
 // CHECK-NEXT:    "col": 29,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   }
@@ -836,6 +933,7 @@ int main() {
 
 // CHECK:  "kind": "FunctionTemplateDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 751,
 // CHECK-NEXT:   "file": "{{.*}}",
 // CHECK-NEXT:   "line": 35,
 // CHECK-NEXT:   "col": 3,
@@ -843,11 +941,13 @@ int main() {
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 727,
 // CHECK-NEXT:    "line": 34,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 8
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 760,
 // CHECK-NEXT:    "line": 35,
 // CHECK-NEXT:    "col": 12,
 // CHECK-NEXT:    "tokLen": 1
@@ -859,16 +959,19 @@ int main() {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "TemplateTypeParmDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 746,
 // CHECK-NEXT:     "line": 34,
 // CHECK-NEXT:     "col": 20,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 737,
 // CHECK-NEXT:      "col": 11,
 // CHECK-NEXT:      "tokLen": 8
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 746,
 // CHECK-NEXT:      "col": 20,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -883,16 +986,19 @@ int main() {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "FunctionDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 751,
 // CHECK-NEXT:     "line": 35,
 // CHECK-NEXT:     "col": 3,
 // CHECK-NEXT:     "tokLen": 6
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 749,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 760,
 // CHECK-NEXT:      "col": 12,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -906,15 +1012,18 @@ int main() {
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "ParmVarDecl",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 760,
 // CHECK-NEXT:       "col": 12,
 // CHECK-NEXT:       "tokLen": 1
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 758,
 // CHECK-NEXT:        "col": 10,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 759,
 // CHECK-NEXT:        "col": 11,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -931,6 +1040,7 @@ int main() {
 
 // CHECK:  "kind": "FunctionDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 769,
 // CHECK-NEXT:   "file": "{{.*}}",
 // CHECK-NEXT:   "line": 37,
 // CHECK-NEXT:   "col": 6,
@@ -938,10 +1048,12 @@ int main() {
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 764,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 4
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 782,
 // CHECK-NEXT:    "col": 19,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   }
@@ -955,15 +1067,18 @@ int main() {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "ParmVarDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 779,
 // CHECK-NEXT:     "col": 16,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 776,
 // CHECK-NEXT:      "col": 13,
 // CHECK-NEXT:      "tokLen": 3
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 776,
 // CHECK-NEXT:      "col": 13,
 // CHECK-NEXT:      "tokLen": 3
 // CHECK-NEXT:     }
@@ -977,10 +1092,12 @@ int main() {
 // CHECK-NEXT:    "kind": "CompoundStmt",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 781,
 // CHECK-NEXT:      "col": 18,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 782,
 // CHECK-NEXT:      "col": 19,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -992,6 +1109,7 @@ int main() {
 
 // CHECK:  "kind": "FunctionDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 789,
 // CHECK-NEXT:   "file": "{{.*}}",
 // CHECK-NEXT:   "line": 38,
 // CHECK-NEXT:   "col": 6,
@@ -999,10 +1117,12 @@ int main() {
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 784,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 4
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 807,
 // CHECK-NEXT:    "col": 24,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   }
@@ -1017,15 +1137,18 @@ int main() {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "ParmVarDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 799,
 // CHECK-NEXT:     "col": 16,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 796,
 // CHECK-NEXT:      "col": 13,
 // CHECK-NEXT:      "tokLen": 3
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 796,
 // CHECK-NEXT:      "col": 13,
 // CHECK-NEXT:      "tokLen": 3
 // CHECK-NEXT:     }
@@ -1039,10 +1162,12 @@ int main() {
 // CHECK-NEXT:    "kind": "CompoundStmt",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 806,
 // CHECK-NEXT:      "col": 23,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 807,
 // CHECK-NEXT:      "col": 24,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }

Modified: cfe/trunk/test/AST/ast-dump-if-json.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/AST/ast-dump-if-json.cpp?rev=374921&r1=374920&r2=374921&view=diff
==============================================================================
--- cfe/trunk/test/AST/ast-dump-if-json.cpp (original)
+++ cfe/trunk/test/AST/ast-dump-if-json.cpp Tue Oct 15 10:30:19 2019
@@ -33,11 +33,13 @@ void func(int val) {
 // CHECK:  "kind": "IfStmt",
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 111,
 // CHECK-NEXT:    "line": 4,
 // CHECK-NEXT:    "col": 3,
 // CHECK-NEXT:    "tokLen": 2
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 124,
 // CHECK-NEXT:    "line": 5,
 // CHECK-NEXT:    "col": 5,
 // CHECK-NEXT:    "tokLen": 1
@@ -49,11 +51,13 @@ void func(int val) {
 // CHECK-NEXT:    "kind": "ImplicitCastExpr",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 115,
 // CHECK-NEXT:      "line": 4,
 // CHECK-NEXT:      "col": 7,
 // CHECK-NEXT:      "tokLen": 3
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 115,
 // CHECK-NEXT:      "col": 7,
 // CHECK-NEXT:      "tokLen": 3
 // CHECK-NEXT:     }
@@ -69,10 +73,12 @@ void func(int val) {
 // CHECK-NEXT:      "kind": "ImplicitCastExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 115,
 // CHECK-NEXT:        "col": 7,
 // CHECK-NEXT:        "tokLen": 3
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 115,
 // CHECK-NEXT:        "col": 7,
 // CHECK-NEXT:        "tokLen": 3
 // CHECK-NEXT:       }
@@ -88,10 +94,12 @@ void func(int val) {
 // CHECK-NEXT:        "kind": "DeclRefExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 115,
 // CHECK-NEXT:          "col": 7,
 // CHECK-NEXT:          "tokLen": 3
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 115,
 // CHECK-NEXT:          "col": 7,
 // CHECK-NEXT:          "tokLen": 3
 // CHECK-NEXT:         }
@@ -118,11 +126,13 @@ void func(int val) {
 // CHECK-NEXT:    "kind": "NullStmt",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 124,
 // CHECK-NEXT:      "line": 5,
 // CHECK-NEXT:      "col": 5,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 124,
 // CHECK-NEXT:      "col": 5,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -135,11 +145,13 @@ void func(int val) {
 // CHECK:  "kind": "IfStmt",
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 129,
 // CHECK-NEXT:    "line": 7,
 // CHECK-NEXT:    "col": 3,
 // CHECK-NEXT:    "tokLen": 2
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 155,
 // CHECK-NEXT:    "line": 10,
 // CHECK-NEXT:    "col": 5,
 // CHECK-NEXT:    "tokLen": 1
@@ -152,11 +164,13 @@ void func(int val) {
 // CHECK-NEXT:    "kind": "ImplicitCastExpr",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 133,
 // CHECK-NEXT:      "line": 7,
 // CHECK-NEXT:      "col": 7,
 // CHECK-NEXT:      "tokLen": 3
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 133,
 // CHECK-NEXT:      "col": 7,
 // CHECK-NEXT:      "tokLen": 3
 // CHECK-NEXT:     }
@@ -172,10 +186,12 @@ void func(int val) {
 // CHECK-NEXT:      "kind": "ImplicitCastExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 133,
 // CHECK-NEXT:        "col": 7,
 // CHECK-NEXT:        "tokLen": 3
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 133,
 // CHECK-NEXT:        "col": 7,
 // CHECK-NEXT:        "tokLen": 3
 // CHECK-NEXT:       }
@@ -191,10 +207,12 @@ void func(int val) {
 // CHECK-NEXT:        "kind": "DeclRefExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 133,
 // CHECK-NEXT:          "col": 7,
 // CHECK-NEXT:          "tokLen": 3
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 133,
 // CHECK-NEXT:          "col": 7,
 // CHECK-NEXT:          "tokLen": 3
 // CHECK-NEXT:         }
@@ -221,11 +239,13 @@ void func(int val) {
 // CHECK-NEXT:    "kind": "NullStmt",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 142,
 // CHECK-NEXT:      "line": 8,
 // CHECK-NEXT:      "col": 5,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 142,
 // CHECK-NEXT:      "col": 5,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -236,11 +256,13 @@ void func(int val) {
 // CHECK-NEXT:    "kind": "NullStmt",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 155,
 // CHECK-NEXT:      "line": 10,
 // CHECK-NEXT:      "col": 5,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 155,
 // CHECK-NEXT:      "col": 5,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -253,11 +275,13 @@ void func(int val) {
 // CHECK:  "kind": "IfStmt",
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 160,
 // CHECK-NEXT:    "line": 12,
 // CHECK-NEXT:    "col": 3,
 // CHECK-NEXT:    "tokLen": 2
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 208,
 // CHECK-NEXT:    "line": 17,
 // CHECK-NEXT:    "col": 5,
 // CHECK-NEXT:    "tokLen": 1
@@ -270,11 +294,13 @@ void func(int val) {
 // CHECK-NEXT:    "kind": "ImplicitCastExpr",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 164,
 // CHECK-NEXT:      "line": 12,
 // CHECK-NEXT:      "col": 7,
 // CHECK-NEXT:      "tokLen": 3
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 164,
 // CHECK-NEXT:      "col": 7,
 // CHECK-NEXT:      "tokLen": 3
 // CHECK-NEXT:     }
@@ -290,10 +316,12 @@ void func(int val) {
 // CHECK-NEXT:      "kind": "ImplicitCastExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 164,
 // CHECK-NEXT:        "col": 7,
 // CHECK-NEXT:        "tokLen": 3
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 164,
 // CHECK-NEXT:        "col": 7,
 // CHECK-NEXT:        "tokLen": 3
 // CHECK-NEXT:       }
@@ -309,10 +337,12 @@ void func(int val) {
 // CHECK-NEXT:        "kind": "DeclRefExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 164,
 // CHECK-NEXT:          "col": 7,
 // CHECK-NEXT:          "tokLen": 3
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 164,
 // CHECK-NEXT:          "col": 7,
 // CHECK-NEXT:          "tokLen": 3
 // CHECK-NEXT:         }
@@ -339,11 +369,13 @@ void func(int val) {
 // CHECK-NEXT:    "kind": "NullStmt",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 173,
 // CHECK-NEXT:      "line": 13,
 // CHECK-NEXT:      "col": 5,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 173,
 // CHECK-NEXT:      "col": 5,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -354,11 +386,13 @@ void func(int val) {
 // CHECK-NEXT:    "kind": "IfStmt",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 182,
 // CHECK-NEXT:      "line": 14,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 2
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 208,
 // CHECK-NEXT:      "line": 17,
 // CHECK-NEXT:      "col": 5,
 // CHECK-NEXT:      "tokLen": 1
@@ -371,11 +405,13 @@ void func(int val) {
 // CHECK-NEXT:      "kind": "ImplicitCastExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 186,
 // CHECK-NEXT:        "line": 14,
 // CHECK-NEXT:        "col": 12,
 // CHECK-NEXT:        "tokLen": 3
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 186,
 // CHECK-NEXT:        "col": 12,
 // CHECK-NEXT:        "tokLen": 3
 // CHECK-NEXT:       }
@@ -391,10 +427,12 @@ void func(int val) {
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 186,
 // CHECK-NEXT:          "col": 12,
 // CHECK-NEXT:          "tokLen": 3
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 186,
 // CHECK-NEXT:          "col": 12,
 // CHECK-NEXT:          "tokLen": 3
 // CHECK-NEXT:         }
@@ -410,10 +448,12 @@ void func(int val) {
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 186,
 // CHECK-NEXT:            "col": 12,
 // CHECK-NEXT:            "tokLen": 3
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 186,
 // CHECK-NEXT:            "col": 12,
 // CHECK-NEXT:            "tokLen": 3
 // CHECK-NEXT:           }
@@ -440,11 +480,13 @@ void func(int val) {
 // CHECK-NEXT:      "kind": "NullStmt",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 195,
 // CHECK-NEXT:        "line": 15,
 // CHECK-NEXT:        "col": 5,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 195,
 // CHECK-NEXT:        "col": 5,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -455,11 +497,13 @@ void func(int val) {
 // CHECK-NEXT:      "kind": "NullStmt",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 208,
 // CHECK-NEXT:        "line": 17,
 // CHECK-NEXT:        "col": 5,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 208,
 // CHECK-NEXT:        "col": 5,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -474,11 +518,13 @@ void func(int val) {
 // CHECK:  "kind": "IfStmt",
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 213,
 // CHECK-NEXT:    "line": 19,
 // CHECK-NEXT:    "col": 3,
 // CHECK-NEXT:    "tokLen": 2
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 240,
 // CHECK-NEXT:    "line": 20,
 // CHECK-NEXT:    "col": 5,
 // CHECK-NEXT:    "tokLen": 1
@@ -491,11 +537,13 @@ void func(int val) {
 // CHECK-NEXT:    "kind": "ConstantExpr",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 226,
 // CHECK-NEXT:      "line": 19,
 // CHECK-NEXT:      "col": 16,
 // CHECK-NEXT:      "tokLen": 2
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 232,
 // CHECK-NEXT:      "col": 22,
 // CHECK-NEXT:      "tokLen": 2
 // CHECK-NEXT:     }
@@ -511,10 +559,12 @@ void func(int val) {
 // CHECK-NEXT:      "kind": "BinaryOperator",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 226,
 // CHECK-NEXT:        "col": 16,
 // CHECK-NEXT:        "tokLen": 2
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 232,
 // CHECK-NEXT:        "col": 22,
 // CHECK-NEXT:        "tokLen": 2
 // CHECK-NEXT:       }
@@ -530,10 +580,12 @@ void func(int val) {
 // CHECK-NEXT:        "kind": "IntegerLiteral",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 226,
 // CHECK-NEXT:          "col": 16,
 // CHECK-NEXT:          "tokLen": 2
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 226,
 // CHECK-NEXT:          "col": 16,
 // CHECK-NEXT:          "tokLen": 2
 // CHECK-NEXT:         }
@@ -549,10 +601,12 @@ void func(int val) {
 // CHECK-NEXT:        "kind": "IntegerLiteral",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 232,
 // CHECK-NEXT:          "col": 22,
 // CHECK-NEXT:          "tokLen": 2
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 232,
 // CHECK-NEXT:          "col": 22,
 // CHECK-NEXT:          "tokLen": 2
 // CHECK-NEXT:         }
@@ -572,11 +626,13 @@ void func(int val) {
 // CHECK-NEXT:    "kind": "NullStmt",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 240,
 // CHECK-NEXT:      "line": 20,
 // CHECK-NEXT:      "col": 5,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 240,
 // CHECK-NEXT:      "col": 5,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -589,11 +645,13 @@ void func(int val) {
 // CHECK:  "kind": "IfStmt",
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 245,
 // CHECK-NEXT:    "line": 22,
 // CHECK-NEXT:    "col": 3,
 // CHECK-NEXT:    "tokLen": 2
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 265,
 // CHECK-NEXT:    "line": 23,
 // CHECK-NEXT:    "col": 5,
 // CHECK-NEXT:    "tokLen": 1
@@ -606,11 +664,13 @@ void func(int val) {
 // CHECK-NEXT:    "kind": "DeclStmt",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 249,
 // CHECK-NEXT:      "line": 22,
 // CHECK-NEXT:      "col": 7,
 // CHECK-NEXT:      "tokLen": 3
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 257,
 // CHECK-NEXT:      "col": 15,
 // CHECK-NEXT:      "tokLen": 2
 // CHECK-NEXT:     }
@@ -620,15 +680,18 @@ void func(int val) {
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "VarDecl",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 253,
 // CHECK-NEXT:       "col": 11,
 // CHECK-NEXT:       "tokLen": 1
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 249,
 // CHECK-NEXT:        "col": 7,
 // CHECK-NEXT:        "tokLen": 3
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 257,
 // CHECK-NEXT:        "col": 15,
 // CHECK-NEXT:        "tokLen": 2
 // CHECK-NEXT:       }
@@ -645,10 +708,12 @@ void func(int val) {
 // CHECK-NEXT:        "kind": "IntegerLiteral",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 257,
 // CHECK-NEXT:          "col": 15,
 // CHECK-NEXT:          "tokLen": 2
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 257,
 // CHECK-NEXT:          "col": 15,
 // CHECK-NEXT:          "tokLen": 2
 // CHECK-NEXT:         }
@@ -668,10 +733,12 @@ void func(int val) {
 // CHECK-NEXT:    "kind": "ImplicitCastExpr",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 253,
 // CHECK-NEXT:      "col": 11,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 253,
 // CHECK-NEXT:      "col": 11,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -687,10 +754,12 @@ void func(int val) {
 // CHECK-NEXT:      "kind": "ImplicitCastExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 253,
 // CHECK-NEXT:        "col": 11,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 253,
 // CHECK-NEXT:        "col": 11,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -706,10 +775,12 @@ void func(int val) {
 // CHECK-NEXT:        "kind": "DeclRefExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 253,
 // CHECK-NEXT:          "col": 11,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 253,
 // CHECK-NEXT:          "col": 11,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -736,11 +807,13 @@ void func(int val) {
 // CHECK-NEXT:    "kind": "NullStmt",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 265,
 // CHECK-NEXT:      "line": 23,
 // CHECK-NEXT:      "col": 5,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 265,
 // CHECK-NEXT:      "col": 5,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -753,11 +826,13 @@ void func(int val) {
 // CHECK:  "kind": "IfStmt",
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 270,
 // CHECK-NEXT:    "line": 25,
 // CHECK-NEXT:    "col": 3,
 // CHECK-NEXT:    "tokLen": 2
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 293,
 // CHECK-NEXT:    "line": 26,
 // CHECK-NEXT:    "col": 5,
 // CHECK-NEXT:    "tokLen": 1
@@ -770,11 +845,13 @@ void func(int val) {
 // CHECK-NEXT:    "kind": "DeclStmt",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 274,
 // CHECK-NEXT:      "line": 25,
 // CHECK-NEXT:      "col": 7,
 // CHECK-NEXT:      "tokLen": 3
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 284,
 // CHECK-NEXT:      "col": 17,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -784,15 +861,18 @@ void func(int val) {
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "VarDecl",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 278,
 // CHECK-NEXT:       "col": 11,
 // CHECK-NEXT:       "tokLen": 1
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 274,
 // CHECK-NEXT:        "col": 7,
 // CHECK-NEXT:        "tokLen": 3
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 282,
 // CHECK-NEXT:        "col": 15,
 // CHECK-NEXT:        "tokLen": 2
 // CHECK-NEXT:       }
@@ -809,10 +889,12 @@ void func(int val) {
 // CHECK-NEXT:        "kind": "IntegerLiteral",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 282,
 // CHECK-NEXT:          "col": 15,
 // CHECK-NEXT:          "tokLen": 2
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 282,
 // CHECK-NEXT:          "col": 15,
 // CHECK-NEXT:          "tokLen": 2
 // CHECK-NEXT:         }
@@ -832,10 +914,12 @@ void func(int val) {
 // CHECK-NEXT:    "kind": "ImplicitCastExpr",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 286,
 // CHECK-NEXT:      "col": 19,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 286,
 // CHECK-NEXT:      "col": 19,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -851,10 +935,12 @@ void func(int val) {
 // CHECK-NEXT:      "kind": "ImplicitCastExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 286,
 // CHECK-NEXT:        "col": 19,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 286,
 // CHECK-NEXT:        "col": 19,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -870,10 +956,12 @@ void func(int val) {
 // CHECK-NEXT:        "kind": "DeclRefExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 286,
 // CHECK-NEXT:          "col": 19,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 286,
 // CHECK-NEXT:          "col": 19,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -900,11 +988,13 @@ void func(int val) {
 // CHECK-NEXT:    "kind": "NullStmt",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 293,
 // CHECK-NEXT:      "line": 26,
 // CHECK-NEXT:      "col": 5,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 293,
 // CHECK-NEXT:      "col": 5,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }

Modified: cfe/trunk/test/AST/ast-dump-macro-json.c
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/AST/ast-dump-macro-json.c?rev=374921&r1=374920&r2=374921&view=diff
==============================================================================
--- cfe/trunk/test/AST/ast-dump-macro-json.c (original)
+++ cfe/trunk/test/AST/ast-dump-macro-json.c Tue Oct 15 10:30:19 2019
@@ -23,12 +23,14 @@ void BLAP(foo, __COUNTER__)(void);
 // CHECK:  "kind": "FunctionDecl",
 // CHECK-NEXT:  "loc": {
 // CHECK-NEXT:   "spellingLoc": {
+// CHECK-NEXT:    "offset": 96,
 // CHECK-NEXT:    "file": "{{.*}}",
 // CHECK-NEXT:    "line": 3,
 // CHECK-NEXT:    "col": 13,
 // CHECK-NEXT:    "tokLen": 7
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "expansionLoc": {
+// CHECK-NEXT:    "offset": 126,
 // CHECK-NEXT:    "line": 6,
 // CHECK-NEXT:    "col": 6,
 // CHECK-NEXT:    "tokLen": 3
@@ -36,10 +38,12 @@ void BLAP(foo, __COUNTER__)(void);
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 121,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 4
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 134,
 // CHECK-NEXT:    "col": 14,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   }
@@ -54,11 +58,13 @@ void BLAP(foo, __COUNTER__)(void);
 // CHECK:  "kind": "FunctionDecl",
 // CHECK-NEXT:  "loc": {
 // CHECK-NEXT:   "spellingLoc": {
+// CHECK-NEXT:    "offset": 96,
 // CHECK-NEXT:    "line": 3,
 // CHECK-NEXT:    "col": 13,
 // CHECK-NEXT:    "tokLen": 7
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "expansionLoc": {
+// CHECK-NEXT:    "offset": 142,
 // CHECK-NEXT:    "line": 7,
 // CHECK-NEXT:    "col": 6,
 // CHECK-NEXT:    "tokLen": 3
@@ -66,10 +72,12 @@ void BLAP(foo, __COUNTER__)(void);
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 137,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 4
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 150,
 // CHECK-NEXT:    "col": 14,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   }
@@ -85,11 +93,13 @@ void BLAP(foo, __COUNTER__)(void);
 // CHECK:  "kind": "FunctionDecl",
 // CHECK-NEXT:  "loc": {
 // CHECK-NEXT:   "spellingLoc": {
+// CHECK-NEXT:    "offset": 183,
 // CHECK-NEXT:    "line": 11,
 // CHECK-NEXT:    "col": 11,
 // CHECK-NEXT:    "tokLen": 4
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "expansionLoc": {
+// CHECK-NEXT:    "offset": 178,
 // CHECK-NEXT:    "col": 6,
 // CHECK-NEXT:    "tokLen": 4,
 // CHECK-NEXT:    "isMacroArgExpansion": true
@@ -97,10 +107,12 @@ void BLAP(foo, __COUNTER__)(void);
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 173,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 4
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 193,
 // CHECK-NEXT:    "col": 21,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   }
@@ -115,12 +127,14 @@ void BLAP(foo, __COUNTER__)(void);
 // CHECK:  "kind": "FunctionDecl",
 // CHECK-NEXT:  "loc": {
 // CHECK-NEXT:   "spellingLoc": {
+// CHECK-NEXT:    "offset": 4,
 // CHECK-NEXT:    "file": "<scratch space>",
 // CHECK-NEXT:    "line": 3,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 4
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "expansionLoc": {
+// CHECK-NEXT:    "offset": 259,
 // CHECK-NEXT:    "file": "{{.*}}",
 // CHECK-NEXT:    "line": 16,
 // CHECK-NEXT:    "col": 6,
@@ -129,10 +143,12 @@ void BLAP(foo, __COUNTER__)(void);
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 254,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 4
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 286,
 // CHECK-NEXT:    "col": 33,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   }
@@ -147,12 +163,14 @@ void BLAP(foo, __COUNTER__)(void);
 // CHECK:  "kind": "FunctionDecl",
 // CHECK-NEXT:  "loc": {
 // CHECK-NEXT:   "spellingLoc": {
+// CHECK-NEXT:    "offset": 13,
 // CHECK-NEXT:    "file": "<scratch space>",
 // CHECK-NEXT:    "line": 5,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 4
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "expansionLoc": {
+// CHECK-NEXT:    "offset": 294,
 // CHECK-NEXT:    "file": "{{.*}}",
 // CHECK-NEXT:    "line": 17,
 // CHECK-NEXT:    "col": 6,
@@ -161,10 +179,12 @@ void BLAP(foo, __COUNTER__)(void);
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 289,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 4
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 321,
 // CHECK-NEXT:    "col": 33,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   }

Modified: cfe/trunk/test/AST/ast-dump-namespace-json.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/AST/ast-dump-namespace-json.cpp?rev=374921&r1=374920&r2=374921&view=diff
==============================================================================
--- cfe/trunk/test/AST/ast-dump-namespace-json.cpp (original)
+++ cfe/trunk/test/AST/ast-dump-namespace-json.cpp Tue Oct 15 10:30:19 2019
@@ -23,6 +23,7 @@ namespace quux::inline frobble {
 
 // CHECK:  "kind": "NamespaceDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 98,
 // CHECK-NEXT:   "file": "{{.*}}",
 // CHECK-NEXT:   "line": 3,
 // CHECK-NEXT:   "col": 11,
@@ -30,10 +31,12 @@ namespace quux::inline frobble {
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 88,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 9
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 104,
 // CHECK-NEXT:    "line": 4,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
@@ -45,16 +48,19 @@ namespace quux::inline frobble {
 
 // CHECK:  "kind": "NamespaceDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 117,
 // CHECK-NEXT:   "line": 6,
 // CHECK-NEXT:   "col": 11,
 // CHECK-NEXT:   "tokLen": 1
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 107,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 9
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 119,
 // CHECK-NEXT:    "line": 7,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
@@ -70,16 +76,19 @@ namespace quux::inline frobble {
 
 // CHECK:  "kind": "NamespaceDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 132,
 // CHECK-NEXT:   "line": 9,
 // CHECK-NEXT:   "col": 11,
 // CHECK-NEXT:   "tokLen": 3
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 122,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 9
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 163,
 // CHECK-NEXT:    "line": 12,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
@@ -91,16 +100,19 @@ namespace quux::inline frobble {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "NamespaceDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 155,
 // CHECK-NEXT:     "line": 10,
 // CHECK-NEXT:     "col": 18,
 // CHECK-NEXT:     "tokLen": 3
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 138,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 6
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 161,
 // CHECK-NEXT:      "line": 11,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 1
@@ -115,16 +127,19 @@ namespace quux::inline frobble {
 
 // CHECK:  "kind": "NamespaceDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 176,
 // CHECK-NEXT:   "line": 14,
 // CHECK-NEXT:   "col": 11,
 // CHECK-NEXT:   "tokLen": 3
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 166,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 9
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 188,
 // CHECK-NEXT:    "line": 15,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
@@ -136,16 +151,19 @@ namespace quux::inline frobble {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "NamespaceDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 181,
 // CHECK-NEXT:     "line": 14,
 // CHECK-NEXT:     "col": 16,
 // CHECK-NEXT:     "tokLen": 4
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 179,
 // CHECK-NEXT:      "col": 14,
 // CHECK-NEXT:      "tokLen": 2
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 188,
 // CHECK-NEXT:      "line": 15,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 1
@@ -159,16 +177,19 @@ namespace quux::inline frobble {
 
 // CHECK:  "kind": "NamespaceDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 201,
 // CHECK-NEXT:   "line": 17,
 // CHECK-NEXT:   "col": 11,
 // CHECK-NEXT:   "tokLen": 4
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 191,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 9
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 224,
 // CHECK-NEXT:    "line": 18,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
@@ -180,16 +201,19 @@ namespace quux::inline frobble {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "NamespaceDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 214,
 // CHECK-NEXT:     "line": 17,
 // CHECK-NEXT:     "col": 24,
 // CHECK-NEXT:     "tokLen": 7
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 207,
 // CHECK-NEXT:      "col": 17,
 // CHECK-NEXT:      "tokLen": 6
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 224,
 // CHECK-NEXT:      "line": 18,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 1

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=374921&r1=374920&r2=374921&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 Tue Oct 15 10:30:19 2019
@@ -140,15 +140,18 @@ struct DoesNotAllowConstDefaultInit {
 
 // CHECK:  "kind": "CXXRecordDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 157,
 // CHECK-NEXT:   "col": 29,
 // CHECK-NEXT:   "tokLen": 1
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 157,
 // CHECK-NEXT:    "col": 29,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 157,
 // CHECK-NEXT:    "col": 29,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   }
@@ -198,15 +201,18 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "CXXMethodDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 157,
 // CHECK-NEXT:     "col": 29,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 160,
 // CHECK-NEXT:      "col": 32,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 162,
 // CHECK-NEXT:      "col": 34,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -223,10 +229,12 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:      "kind": "CompoundStmt",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 161,
 // CHECK-NEXT:        "col": 33,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 162,
 // CHECK-NEXT:        "col": 34,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -238,15 +246,18 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "CXXConversionDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 157,
 // CHECK-NEXT:     "col": 29,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 157,
 // CHECK-NEXT:      "col": 29,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 162,
 // CHECK-NEXT:      "col": 34,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -263,15 +274,18 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "CXXMethodDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 157,
 // CHECK-NEXT:     "col": 29,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 157,
 // CHECK-NEXT:      "col": 29,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 162,
 // CHECK-NEXT:      "col": 34,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -288,15 +302,18 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "CXXDestructorDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 157,
 // CHECK-NEXT:     "col": 29,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 157,
 // CHECK-NEXT:      "col": 29,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 157,
 // CHECK-NEXT:      "col": 29,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -316,15 +333,18 @@ struct DoesNotAllowConstDefaultInit {
 
 // CHECK:  "kind": "CXXRecordDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 190,
 // CHECK-NEXT:   "col": 26,
 // CHECK-NEXT:   "tokLen": 1
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 190,
 // CHECK-NEXT:    "col": 26,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 190,
 // CHECK-NEXT:    "col": 26,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   }
@@ -375,12 +395,14 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "FunctionTemplateDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 190,
 // CHECK-NEXT:     "col": 26,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {},
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 199,
 // CHECK-NEXT:      "col": 35,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -391,6 +413,7 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "TemplateTypeParmDecl",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 193,
 // CHECK-NEXT:       "col": 29,
 // CHECK-NEXT:       "tokLen": 4
 // CHECK-NEXT:      },
@@ -407,15 +430,18 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "CXXMethodDecl",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 190,
 // CHECK-NEXT:       "col": 26,
 // CHECK-NEXT:       "tokLen": 1
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 197,
 // CHECK-NEXT:        "col": 33,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 199,
 // CHECK-NEXT:        "col": 35,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -431,15 +457,18 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:        "id": "0x{{.*}}",
 // CHECK-NEXT:        "kind": "ParmVarDecl",
 // CHECK-NEXT:        "loc": {
+// CHECK-NEXT:         "offset": 197,
 // CHECK-NEXT:         "col": 33,
 // CHECK-NEXT:         "tokLen": 1
 // CHECK-NEXT:        },
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 193,
 // CHECK-NEXT:          "col": 29,
 // CHECK-NEXT:          "tokLen": 4
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 193,
 // CHECK-NEXT:          "col": 29,
 // CHECK-NEXT:          "tokLen": 4
 // CHECK-NEXT:         }
@@ -453,10 +482,12 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:        "kind": "CompoundStmt",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 198,
 // CHECK-NEXT:          "col": 34,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 199,
 // CHECK-NEXT:          "col": 35,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -470,12 +501,14 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "FunctionTemplateDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 190,
 // CHECK-NEXT:     "col": 26,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {},
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 199,
 // CHECK-NEXT:      "col": 35,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -487,6 +520,7 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "TemplateTypeParmDecl",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 193,
 // CHECK-NEXT:       "col": 29,
 // CHECK-NEXT:       "tokLen": 4
 // CHECK-NEXT:      },
@@ -503,15 +537,18 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "CXXConversionDecl",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 190,
 // CHECK-NEXT:       "col": 26,
 // CHECK-NEXT:       "tokLen": 1
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 190,
 // CHECK-NEXT:        "col": 26,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 199,
 // CHECK-NEXT:        "col": 35,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -530,12 +567,14 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "FunctionTemplateDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 190,
 // CHECK-NEXT:     "col": 26,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {},
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 199,
 // CHECK-NEXT:      "col": 35,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -547,6 +586,7 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "TemplateTypeParmDecl",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 193,
 // CHECK-NEXT:       "col": 29,
 // CHECK-NEXT:       "tokLen": 4
 // CHECK-NEXT:      },
@@ -563,15 +603,18 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "CXXMethodDecl",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 190,
 // CHECK-NEXT:       "col": 26,
 // CHECK-NEXT:       "tokLen": 1
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 190,
 // CHECK-NEXT:        "col": 26,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 199,
 // CHECK-NEXT:        "col": 35,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -588,15 +631,18 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:        "id": "0x{{.*}}",
 // CHECK-NEXT:        "kind": "ParmVarDecl",
 // CHECK-NEXT:        "loc": {
+// CHECK-NEXT:         "offset": 197,
 // CHECK-NEXT:         "col": 33,
 // CHECK-NEXT:         "tokLen": 1
 // CHECK-NEXT:        },
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 193,
 // CHECK-NEXT:          "col": 29,
 // CHECK-NEXT:          "tokLen": 4
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 193,
 // CHECK-NEXT:          "col": 29,
 // CHECK-NEXT:          "tokLen": 4
 // CHECK-NEXT:         }
@@ -613,15 +659,18 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "CXXDestructorDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 190,
 // CHECK-NEXT:     "col": 26,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 190,
 // CHECK-NEXT:      "col": 26,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 190,
 // CHECK-NEXT:      "col": 26,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -641,16 +690,19 @@ struct DoesNotAllowConstDefaultInit {
 
 // CHECK:  "kind": "CXXRecordDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 212,
 // CHECK-NEXT:   "line": 8,
 // CHECK-NEXT:   "col": 8,
 // CHECK-NEXT:   "tokLen": 18
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 205,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 6
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 292,
 // CHECK-NEXT:    "line": 10,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
@@ -697,16 +749,19 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "CXXRecordDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 212,
 // CHECK-NEXT:     "line": 8,
 // CHECK-NEXT:     "col": 8,
 // CHECK-NEXT:     "tokLen": 18
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 205,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 6
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 212,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 18
 // CHECK-NEXT:     }
@@ -720,16 +775,19 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "CXXConstructorDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 235,
 // CHECK-NEXT:     "line": 9,
 // CHECK-NEXT:     "col": 3,
 // CHECK-NEXT:     "tokLen": 18
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 235,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 18
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 289,
 // CHECK-NEXT:      "col": 57,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -745,15 +803,18 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "ParmVarDecl",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 279,
 // CHECK-NEXT:       "col": 47,
 // CHECK-NEXT:       "tokLen": 1
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 254,
 // CHECK-NEXT:        "col": 22,
 // CHECK-NEXT:        "tokLen": 5
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 278,
 // CHECK-NEXT:        "col": 46,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -770,16 +831,19 @@ struct DoesNotAllowConstDefaultInit {
 
 // CHECK:  "kind": "CXXRecordDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 303,
 // CHECK-NEXT:   "line": 12,
 // CHECK-NEXT:   "col": 8,
 // CHECK-NEXT:   "tokLen": 19
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 296,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 6
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 385,
 // CHECK-NEXT:    "line": 14,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
@@ -825,16 +889,19 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "CXXRecordDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 303,
 // CHECK-NEXT:     "line": 12,
 // CHECK-NEXT:     "col": 8,
 // CHECK-NEXT:     "tokLen": 19
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 296,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 6
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 303,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 19
 // CHECK-NEXT:     }
@@ -848,16 +915,19 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "CXXConstructorDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 327,
 // CHECK-NEXT:     "line": 13,
 // CHECK-NEXT:     "col": 3,
 // CHECK-NEXT:     "tokLen": 19
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 327,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 19
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 382,
 // CHECK-NEXT:      "col": 58,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -872,15 +942,18 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "ParmVarDecl",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 373,
 // CHECK-NEXT:       "col": 49,
 // CHECK-NEXT:       "tokLen": 1
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 347,
 // CHECK-NEXT:        "col": 23,
 // CHECK-NEXT:        "tokLen": 5
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 372,
 // CHECK-NEXT:        "col": 48,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -897,16 +970,19 @@ struct DoesNotAllowConstDefaultInit {
 
 // CHECK:  "kind": "CXXRecordDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 396,
 // CHECK-NEXT:   "line": 16,
 // CHECK-NEXT:   "col": 8,
 // CHECK-NEXT:   "tokLen": 7
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 389,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 6
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 406,
 // CHECK-NEXT:    "line": 17,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
@@ -970,16 +1046,19 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "CXXRecordDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 396,
 // CHECK-NEXT:     "line": 16,
 // CHECK-NEXT:     "col": 8,
 // CHECK-NEXT:     "tokLen": 7
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 389,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 6
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 396,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 7
 // CHECK-NEXT:     }
@@ -994,16 +1073,19 @@ struct DoesNotAllowConstDefaultInit {
 
 // CHECK:  "kind": "CXXRecordDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 417,
 // CHECK-NEXT:   "line": 19,
 // CHECK-NEXT:   "col": 8,
 // CHECK-NEXT:   "tokLen": 10
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 410,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 6
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 439,
 // CHECK-NEXT:    "line": 21,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
@@ -1062,16 +1144,19 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "CXXRecordDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 417,
 // CHECK-NEXT:     "line": 19,
 // CHECK-NEXT:     "col": 8,
 // CHECK-NEXT:     "tokLen": 10
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 410,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 6
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 417,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 10
 // CHECK-NEXT:     }
@@ -1084,16 +1169,19 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "FieldDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 436,
 // CHECK-NEXT:     "line": 20,
 // CHECK-NEXT:     "col": 7,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 432,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 3
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 436,
 // CHECK-NEXT:      "col": 7,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -1109,16 +1197,19 @@ struct DoesNotAllowConstDefaultInit {
 
 // CHECK:  "kind": "CXXRecordDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 450,
 // CHECK-NEXT:   "line": 23,
 // CHECK-NEXT:   "col": 8,
 // CHECK-NEXT:   "tokLen": 11
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 443,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 6
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 473,
 // CHECK-NEXT:    "line": 25,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
@@ -1177,16 +1268,19 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "CXXRecordDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 450,
 // CHECK-NEXT:     "line": 23,
 // CHECK-NEXT:     "col": 8,
 // CHECK-NEXT:     "tokLen": 11
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 443,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 6
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 450,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 11
 // CHECK-NEXT:     }
@@ -1199,16 +1293,19 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "FieldDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 470,
 // CHECK-NEXT:     "line": 24,
 // CHECK-NEXT:     "col": 7,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 466,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 3
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 470,
 // CHECK-NEXT:      "col": 7,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -1224,16 +1321,19 @@ struct DoesNotAllowConstDefaultInit {
 
 // CHECK:  "kind": "CXXRecordDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 484,
 // CHECK-NEXT:   "line": 27,
 // CHECK-NEXT:   "col": 8,
 // CHECK-NEXT:   "tokLen": 14
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 477,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 6
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 519,
 // CHECK-NEXT:    "line": 30,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
@@ -1290,16 +1390,19 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "CXXRecordDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 484,
 // CHECK-NEXT:     "line": 27,
 // CHECK-NEXT:     "col": 8,
 // CHECK-NEXT:     "tokLen": 14
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 477,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 6
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 484,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 14
 // CHECK-NEXT:     }
@@ -1312,16 +1415,19 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "AccessSpecDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 501,
 // CHECK-NEXT:     "line": 28,
 // CHECK-NEXT:     "col": 1,
 // CHECK-NEXT:     "tokLen": 7
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 501,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 7
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 508,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -1332,16 +1438,19 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "FieldDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 516,
 // CHECK-NEXT:     "line": 29,
 // CHECK-NEXT:     "col": 7,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 512,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 3
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 516,
 // CHECK-NEXT:      "col": 7,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -1357,16 +1466,19 @@ struct DoesNotAllowConstDefaultInit {
 
 // CHECK:  "kind": "CXXRecordDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 530,
 // CHECK-NEXT:   "line": 32,
 // CHECK-NEXT:   "col": 8,
 // CHECK-NEXT:   "tokLen": 16
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 523,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 6
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 561,
 // CHECK-NEXT:    "line": 34,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
@@ -1430,16 +1542,19 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "CXXRecordDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 530,
 // CHECK-NEXT:     "line": 32,
 // CHECK-NEXT:     "col": 8,
 // CHECK-NEXT:     "tokLen": 16
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 523,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 6
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 530,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 16
 // CHECK-NEXT:     }
@@ -1452,16 +1567,19 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "CXXMethodDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 556,
 // CHECK-NEXT:     "line": 33,
 // CHECK-NEXT:     "col": 8,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 551,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 4
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 558,
 // CHECK-NEXT:      "col": 10,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -1477,16 +1595,19 @@ struct DoesNotAllowConstDefaultInit {
 
 // CHECK:  "kind": "CXXRecordDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 572,
 // CHECK-NEXT:   "line": 36,
 // CHECK-NEXT:   "col": 8,
 // CHECK-NEXT:   "tokLen": 19
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 565,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 6
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 614,
 // CHECK-NEXT:    "line": 38,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
@@ -1541,16 +1662,19 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "CXXRecordDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 572,
 // CHECK-NEXT:     "line": 36,
 // CHECK-NEXT:     "col": 8,
 // CHECK-NEXT:     "tokLen": 19
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 565,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 6
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 572,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 19
 // CHECK-NEXT:     }
@@ -1563,16 +1687,19 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "CXXMethodDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 609,
 // CHECK-NEXT:     "line": 37,
 // CHECK-NEXT:     "col": 16,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 596,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 7
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 611,
 // CHECK-NEXT:      "col": 18,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -1587,16 +1714,19 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "CXXMethodDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 572,
 // CHECK-NEXT:     "line": 36,
 // CHECK-NEXT:     "col": 8,
 // CHECK-NEXT:     "tokLen": 19
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 572,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 19
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 572,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 19
 // CHECK-NEXT:     }
@@ -1614,15 +1744,18 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "ParmVarDecl",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 572,
 // CHECK-NEXT:       "col": 8,
 // CHECK-NEXT:       "tokLen": 19
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 572,
 // CHECK-NEXT:        "col": 8,
 // CHECK-NEXT:        "tokLen": 19
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 572,
 // CHECK-NEXT:        "col": 8,
 // CHECK-NEXT:        "tokLen": 19
 // CHECK-NEXT:       }
@@ -1637,15 +1770,18 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "CXXMethodDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 572,
 // CHECK-NEXT:     "col": 8,
 // CHECK-NEXT:     "tokLen": 19
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 572,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 19
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 572,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 19
 // CHECK-NEXT:     }
@@ -1663,15 +1799,18 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "ParmVarDecl",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 572,
 // CHECK-NEXT:       "col": 8,
 // CHECK-NEXT:       "tokLen": 19
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 572,
 // CHECK-NEXT:        "col": 8,
 // CHECK-NEXT:        "tokLen": 19
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 572,
 // CHECK-NEXT:        "col": 8,
 // CHECK-NEXT:        "tokLen": 19
 // CHECK-NEXT:       }
@@ -1686,15 +1825,18 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "CXXDestructorDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 572,
 // CHECK-NEXT:     "col": 8,
 // CHECK-NEXT:     "tokLen": 19
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 572,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 19
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 572,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 19
 // CHECK-NEXT:     }
@@ -1713,16 +1855,19 @@ struct DoesNotAllowConstDefaultInit {
 
 // CHECK:  "kind": "CXXRecordDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 625,
 // CHECK-NEXT:   "line": 40,
 // CHECK-NEXT:   "col": 8,
 // CHECK-NEXT:   "tokLen": 19
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 618,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 6
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 647,
 // CHECK-NEXT:    "line": 41,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
@@ -1786,16 +1931,19 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "CXXRecordDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 625,
 // CHECK-NEXT:     "line": 40,
 // CHECK-NEXT:     "col": 8,
 // CHECK-NEXT:     "tokLen": 19
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 618,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 6
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 625,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 19
 // CHECK-NEXT:     }
@@ -1810,16 +1958,19 @@ struct DoesNotAllowConstDefaultInit {
 
 // CHECK:  "kind": "CXXRecordDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 658,
 // CHECK-NEXT:   "line": 43,
 // CHECK-NEXT:   "col": 8,
 // CHECK-NEXT:   "tokLen": 22
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 651,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 6
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 742,
 // CHECK-NEXT:    "line": 45,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
@@ -1862,16 +2013,19 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "CXXRecordDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 658,
 // CHECK-NEXT:     "line": 43,
 // CHECK-NEXT:     "col": 8,
 // CHECK-NEXT:     "tokLen": 22
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 651,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 6
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 658,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 22
 // CHECK-NEXT:     }
@@ -1885,16 +2039,19 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "CXXConstructorDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 685,
 // CHECK-NEXT:     "line": 44,
 // CHECK-NEXT:     "col": 3,
 // CHECK-NEXT:     "tokLen": 22
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 685,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 22
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 740,
 // CHECK-NEXT:      "col": 58,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -1908,15 +2065,18 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "ParmVarDecl",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 737,
 // CHECK-NEXT:       "col": 55,
 // CHECK-NEXT:       "tokLen": 1
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 708,
 // CHECK-NEXT:        "col": 26,
 // CHECK-NEXT:        "tokLen": 5
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 736,
 // CHECK-NEXT:        "col": 54,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -1930,10 +2090,12 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:      "kind": "CompoundStmt",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 739,
 // CHECK-NEXT:        "col": 57,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 740,
 // CHECK-NEXT:        "col": 58,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -1947,16 +2109,19 @@ struct DoesNotAllowConstDefaultInit {
 
 // CHECK:  "kind": "CXXRecordDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 753,
 // CHECK-NEXT:   "line": 47,
 // CHECK-NEXT:   "col": 8,
 // CHECK-NEXT:   "tokLen": 5
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 746,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 6
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 770,
 // CHECK-NEXT:    "line": 49,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
@@ -2015,16 +2180,19 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "CXXRecordDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 753,
 // CHECK-NEXT:     "line": 47,
 // CHECK-NEXT:     "col": 8,
 // CHECK-NEXT:     "tokLen": 5
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 746,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 6
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 753,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 5
 // CHECK-NEXT:     }
@@ -2037,16 +2205,19 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "FieldDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 767,
 // CHECK-NEXT:     "line": 48,
 // CHECK-NEXT:     "col": 7,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 763,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 3
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 767,
 // CHECK-NEXT:      "col": 7,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -2062,16 +2233,19 @@ struct DoesNotAllowConstDefaultInit {
 
 // CHECK:  "kind": "CXXRecordDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 781,
 // CHECK-NEXT:   "line": 51,
 // CHECK-NEXT:   "col": 8,
 // CHECK-NEXT:   "tokLen": 8
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 774,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 6
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 802,
 // CHECK-NEXT:    "line": 53,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
@@ -2127,16 +2301,19 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "CXXRecordDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 781,
 // CHECK-NEXT:     "line": 51,
 // CHECK-NEXT:     "col": 8,
 // CHECK-NEXT:     "tokLen": 8
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 774,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 6
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 781,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 8
 // CHECK-NEXT:     }
@@ -2149,16 +2326,19 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "FieldDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 799,
 // CHECK-NEXT:     "line": 52,
 // CHECK-NEXT:     "col": 8,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 794,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 3
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 799,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -2174,16 +2354,19 @@ struct DoesNotAllowConstDefaultInit {
 
 // CHECK:  "kind": "CXXRecordDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 813,
 // CHECK-NEXT:   "line": 55,
 // CHECK-NEXT:   "col": 8,
 // CHECK-NEXT:   "tokLen": 9
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 806,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 6
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 850,
 // CHECK-NEXT:    "line": 57,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
@@ -2246,16 +2429,19 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "CXXRecordDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 813,
 // CHECK-NEXT:     "line": 55,
 // CHECK-NEXT:     "col": 8,
 // CHECK-NEXT:     "tokLen": 9
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 806,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 6
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 813,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 9
 // CHECK-NEXT:     }
@@ -2269,16 +2455,19 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "CXXConstructorDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 827,
 // CHECK-NEXT:     "line": 56,
 // CHECK-NEXT:     "col": 3,
 // CHECK-NEXT:     "tokLen": 9
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 827,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 9
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 847,
 // CHECK-NEXT:      "col": 23,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -2296,16 +2485,19 @@ struct DoesNotAllowConstDefaultInit {
 
 // CHECK:  "kind": "CXXRecordDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 861,
 // CHECK-NEXT:   "line": 59,
 // CHECK-NEXT:   "col": 8,
 // CHECK-NEXT:   "tokLen": 12
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 854,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 6
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 896,
 // CHECK-NEXT:    "line": 61,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
@@ -2364,16 +2556,19 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "CXXRecordDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 861,
 // CHECK-NEXT:     "line": 59,
 // CHECK-NEXT:     "col": 8,
 // CHECK-NEXT:     "tokLen": 12
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 854,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 6
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 861,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 12
 // CHECK-NEXT:     }
@@ -2387,16 +2582,19 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "CXXConstructorDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 878,
 // CHECK-NEXT:     "line": 60,
 // CHECK-NEXT:     "col": 3,
 // CHECK-NEXT:     "tokLen": 12
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 878,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 12
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 894,
 // CHECK-NEXT:      "col": 19,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -2411,10 +2609,12 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:      "kind": "CompoundStmt",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 893,
 // CHECK-NEXT:        "col": 18,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 894,
 // CHECK-NEXT:        "col": 19,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -2428,16 +2628,19 @@ struct DoesNotAllowConstDefaultInit {
 
 // CHECK:  "kind": "CXXRecordDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 907,
 // CHECK-NEXT:   "line": 63,
 // CHECK-NEXT:   "col": 8,
 // CHECK-NEXT:   "tokLen": 13
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 900,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 6
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 943,
 // CHECK-NEXT:    "line": 65,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
@@ -2492,16 +2695,19 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "CXXRecordDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 907,
 // CHECK-NEXT:     "line": 63,
 // CHECK-NEXT:     "col": 8,
 // CHECK-NEXT:     "tokLen": 13
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 900,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 6
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 907,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 13
 // CHECK-NEXT:     }
@@ -2514,16 +2720,19 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "CXXMethodDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 938,
 // CHECK-NEXT:     "line": 64,
 // CHECK-NEXT:     "col": 16,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 925,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 7
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 940,
 // CHECK-NEXT:      "col": 18,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -2538,16 +2747,19 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "CXXMethodDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 907,
 // CHECK-NEXT:     "line": 63,
 // CHECK-NEXT:     "col": 8,
 // CHECK-NEXT:     "tokLen": 13
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 907,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 13
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 907,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 13
 // CHECK-NEXT:     }
@@ -2565,15 +2777,18 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "ParmVarDecl",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 907,
 // CHECK-NEXT:       "col": 8,
 // CHECK-NEXT:       "tokLen": 13
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 907,
 // CHECK-NEXT:        "col": 8,
 // CHECK-NEXT:        "tokLen": 13
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 907,
 // CHECK-NEXT:        "col": 8,
 // CHECK-NEXT:        "tokLen": 13
 // CHECK-NEXT:       }
@@ -2588,15 +2803,18 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "CXXMethodDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 907,
 // CHECK-NEXT:     "col": 8,
 // CHECK-NEXT:     "tokLen": 13
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 907,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 13
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 907,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 13
 // CHECK-NEXT:     }
@@ -2614,15 +2832,18 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "ParmVarDecl",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 907,
 // CHECK-NEXT:       "col": 8,
 // CHECK-NEXT:       "tokLen": 13
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 907,
 // CHECK-NEXT:        "col": 8,
 // CHECK-NEXT:        "tokLen": 13
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 907,
 // CHECK-NEXT:        "col": 8,
 // CHECK-NEXT:        "tokLen": 13
 // CHECK-NEXT:       }
@@ -2637,15 +2858,18 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "CXXDestructorDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 907,
 // CHECK-NEXT:     "col": 8,
 // CHECK-NEXT:     "tokLen": 13
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 907,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 13
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 907,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 13
 // CHECK-NEXT:     }
@@ -2664,16 +2888,19 @@ struct DoesNotAllowConstDefaultInit {
 
 // CHECK:  "kind": "CXXRecordDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 954,
 // CHECK-NEXT:   "line": 67,
 // CHECK-NEXT:   "col": 8,
 // CHECK-NEXT:   "tokLen": 16
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 947,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 6
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 985,
 // CHECK-NEXT:    "line": 69,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
@@ -2737,16 +2964,19 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "CXXRecordDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 954,
 // CHECK-NEXT:     "line": 67,
 // CHECK-NEXT:     "col": 8,
 // CHECK-NEXT:     "tokLen": 16
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 947,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 6
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 954,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 16
 // CHECK-NEXT:     }
@@ -2759,16 +2989,19 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "CXXMethodDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 980,
 // CHECK-NEXT:     "line": 68,
 // CHECK-NEXT:     "col": 8,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 975,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 4
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 982,
 // CHECK-NEXT:      "col": 10,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -2784,16 +3017,19 @@ struct DoesNotAllowConstDefaultInit {
 
 // CHECK:  "kind": "CXXRecordDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 996,
 // CHECK-NEXT:   "line": 71,
 // CHECK-NEXT:   "col": 8,
 // CHECK-NEXT:   "tokLen": 10
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 989,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 6
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 1033,
 // CHECK-NEXT:    "line": 73,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
@@ -2849,16 +3085,19 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "CXXRecordDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 996,
 // CHECK-NEXT:     "line": 71,
 // CHECK-NEXT:     "col": 8,
 // CHECK-NEXT:     "tokLen": 10
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 989,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 6
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 996,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 10
 // CHECK-NEXT:     }
@@ -2871,16 +3110,19 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "CXXMethodDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 1024,
 // CHECK-NEXT:     "line": 72,
 // CHECK-NEXT:     "col": 16,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 1011,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 7
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 1030,
 // CHECK-NEXT:      "col": 22,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -2896,16 +3138,19 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "CXXMethodDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 996,
 // CHECK-NEXT:     "line": 71,
 // CHECK-NEXT:     "col": 8,
 // CHECK-NEXT:     "tokLen": 10
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 996,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 10
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 996,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 10
 // CHECK-NEXT:     }
@@ -2923,15 +3168,18 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "ParmVarDecl",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 996,
 // CHECK-NEXT:       "col": 8,
 // CHECK-NEXT:       "tokLen": 10
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 996,
 // CHECK-NEXT:        "col": 8,
 // CHECK-NEXT:        "tokLen": 10
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 996,
 // CHECK-NEXT:        "col": 8,
 // CHECK-NEXT:        "tokLen": 10
 // CHECK-NEXT:       }
@@ -2946,15 +3194,18 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "CXXMethodDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 996,
 // CHECK-NEXT:     "col": 8,
 // CHECK-NEXT:     "tokLen": 10
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 996,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 10
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 996,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 10
 // CHECK-NEXT:     }
@@ -2972,15 +3223,18 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "ParmVarDecl",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 996,
 // CHECK-NEXT:       "col": 8,
 // CHECK-NEXT:       "tokLen": 10
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 996,
 // CHECK-NEXT:        "col": 8,
 // CHECK-NEXT:        "tokLen": 10
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 996,
 // CHECK-NEXT:        "col": 8,
 // CHECK-NEXT:        "tokLen": 10
 // CHECK-NEXT:       }
@@ -2995,15 +3249,18 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "CXXDestructorDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 996,
 // CHECK-NEXT:     "col": 8,
 // CHECK-NEXT:     "tokLen": 10
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 996,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 10
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 996,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 10
 // CHECK-NEXT:     }
@@ -3022,16 +3279,19 @@ struct DoesNotAllowConstDefaultInit {
 
 // CHECK:  "kind": "CXXRecordDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 1044,
 // CHECK-NEXT:   "line": 75,
 // CHECK-NEXT:   "col": 8,
 // CHECK-NEXT:   "tokLen": 13
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 1037,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 6
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 1080,
 // CHECK-NEXT:    "line": 77,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
@@ -3086,16 +3346,19 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "CXXRecordDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 1044,
 // CHECK-NEXT:     "line": 75,
 // CHECK-NEXT:     "col": 8,
 // CHECK-NEXT:     "tokLen": 13
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 1037,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 6
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 1044,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 13
 // CHECK-NEXT:     }
@@ -3108,16 +3371,19 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "CXXMethodDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 1075,
 // CHECK-NEXT:     "line": 76,
 // CHECK-NEXT:     "col": 16,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 1062,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 7
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 1077,
 // CHECK-NEXT:      "col": 18,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -3132,16 +3398,19 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "CXXMethodDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 1044,
 // CHECK-NEXT:     "line": 75,
 // CHECK-NEXT:     "col": 8,
 // CHECK-NEXT:     "tokLen": 13
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 1044,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 13
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 1044,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 13
 // CHECK-NEXT:     }
@@ -3159,15 +3428,18 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "ParmVarDecl",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 1044,
 // CHECK-NEXT:       "col": 8,
 // CHECK-NEXT:       "tokLen": 13
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1044,
 // CHECK-NEXT:        "col": 8,
 // CHECK-NEXT:        "tokLen": 13
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1044,
 // CHECK-NEXT:        "col": 8,
 // CHECK-NEXT:        "tokLen": 13
 // CHECK-NEXT:       }
@@ -3182,15 +3454,18 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "CXXMethodDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 1044,
 // CHECK-NEXT:     "col": 8,
 // CHECK-NEXT:     "tokLen": 13
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 1044,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 13
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 1044,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 13
 // CHECK-NEXT:     }
@@ -3208,15 +3483,18 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "ParmVarDecl",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 1044,
 // CHECK-NEXT:       "col": 8,
 // CHECK-NEXT:       "tokLen": 13
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1044,
 // CHECK-NEXT:        "col": 8,
 // CHECK-NEXT:        "tokLen": 13
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1044,
 // CHECK-NEXT:        "col": 8,
 // CHECK-NEXT:        "tokLen": 13
 // CHECK-NEXT:       }
@@ -3231,15 +3509,18 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "CXXDestructorDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 1044,
 // CHECK-NEXT:     "col": 8,
 // CHECK-NEXT:     "tokLen": 13
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 1044,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 13
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 1044,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 13
 // CHECK-NEXT:     }
@@ -3258,16 +3539,19 @@ struct DoesNotAllowConstDefaultInit {
 
 // CHECK:  "kind": "CXXRecordDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 1091,
 // CHECK-NEXT:   "line": 79,
 // CHECK-NEXT:   "col": 8,
 // CHECK-NEXT:   "tokLen": 9
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 1084,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 6
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 1129,
 // CHECK-NEXT:    "line": 81,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
@@ -3319,16 +3603,19 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "CXXRecordDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 1091,
 // CHECK-NEXT:     "line": 79,
 // CHECK-NEXT:     "col": 8,
 // CHECK-NEXT:     "tokLen": 9
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 1084,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 6
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 1091,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 9
 // CHECK-NEXT:     }
@@ -3342,16 +3629,19 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "CXXDestructorDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 1105,
 // CHECK-NEXT:     "line": 80,
 // CHECK-NEXT:     "col": 3,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 1105,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 1126,
 // CHECK-NEXT:      "col": 24,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -3368,16 +3658,19 @@ struct DoesNotAllowConstDefaultInit {
 
 // CHECK:  "kind": "CXXRecordDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 1140,
 // CHECK-NEXT:   "line": 83,
 // CHECK-NEXT:   "col": 8,
 // CHECK-NEXT:   "tokLen": 12
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 1133,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 6
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 1176,
 // CHECK-NEXT:    "line": 85,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
@@ -3424,16 +3717,19 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "CXXRecordDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 1140,
 // CHECK-NEXT:     "line": 83,
 // CHECK-NEXT:     "col": 8,
 // CHECK-NEXT:     "tokLen": 12
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 1133,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 6
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 1140,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 12
 // CHECK-NEXT:     }
@@ -3447,16 +3743,19 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "CXXDestructorDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 1157,
 // CHECK-NEXT:     "line": 84,
 // CHECK-NEXT:     "col": 3,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 1157,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 1174,
 // CHECK-NEXT:      "col": 20,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -3471,10 +3770,12 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:      "kind": "CompoundStmt",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1173,
 // CHECK-NEXT:        "col": 19,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1174,
 // CHECK-NEXT:        "col": 20,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -3488,16 +3789,19 @@ struct DoesNotAllowConstDefaultInit {
 
 // CHECK:  "kind": "CXXRecordDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 1187,
 // CHECK-NEXT:   "line": 87,
 // CHECK-NEXT:   "col": 8,
 // CHECK-NEXT:   "tokLen": 26
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 1180,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 6
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 1250,
 // CHECK-NEXT:    "line": 89,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
@@ -3556,16 +3860,19 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "CXXRecordDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 1187,
 // CHECK-NEXT:     "line": 87,
 // CHECK-NEXT:     "col": 8,
 // CHECK-NEXT:     "tokLen": 26
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 1180,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 6
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 1187,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 26
 // CHECK-NEXT:     }
@@ -3579,16 +3886,19 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "CXXConstructorDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 1218,
 // CHECK-NEXT:     "line": 88,
 // CHECK-NEXT:     "col": 3,
 // CHECK-NEXT:     "tokLen": 26
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 1218,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 26
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 1248,
 // CHECK-NEXT:      "col": 33,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -3603,10 +3913,12 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:      "kind": "CompoundStmt",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1247,
 // CHECK-NEXT:        "col": 32,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1248,
 // CHECK-NEXT:        "col": 33,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -3620,16 +3932,19 @@ struct DoesNotAllowConstDefaultInit {
 
 // CHECK:  "kind": "CXXRecordDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 1261,
 // CHECK-NEXT:   "line": 91,
 // CHECK-NEXT:   "col": 8,
 // CHECK-NEXT:   "tokLen": 28
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 1254,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 6
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 1292,
 // CHECK-NEXT:    "line": 92,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
@@ -3693,16 +4008,19 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "CXXRecordDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 1261,
 // CHECK-NEXT:     "line": 91,
 // CHECK-NEXT:     "col": 8,
 // CHECK-NEXT:     "tokLen": 28
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 1254,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 6
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 1261,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 28
 // CHECK-NEXT:     }
@@ -3717,16 +4035,19 @@ struct DoesNotAllowConstDefaultInit {
 
 // CHECK:  "kind": "CXXRecordDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 1303,
 // CHECK-NEXT:   "line": 94,
 // CHECK-NEXT:   "col": 8,
 // CHECK-NEXT:   "tokLen": 34
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 1296,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 6
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 1392,
 // CHECK-NEXT:    "line": 96,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
@@ -3788,16 +4109,19 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "CXXRecordDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 1303,
 // CHECK-NEXT:     "line": 94,
 // CHECK-NEXT:     "col": 8,
 // CHECK-NEXT:     "tokLen": 34
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 1296,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 6
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 1303,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 34
 // CHECK-NEXT:     }
@@ -3811,16 +4135,19 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "CXXConstructorDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 1352,
 // CHECK-NEXT:     "line": 95,
 // CHECK-NEXT:     "col": 13,
 // CHECK-NEXT:     "tokLen": 34
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 1342,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 9
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 1390,
 // CHECK-NEXT:      "col": 51,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -3836,10 +4163,12 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:      "kind": "CompoundStmt",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1389,
 // CHECK-NEXT:        "col": 50,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1390,
 // CHECK-NEXT:        "col": 51,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -3853,16 +4182,19 @@ struct DoesNotAllowConstDefaultInit {
 
 // CHECK:  "kind": "CXXRecordDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 1403,
 // CHECK-NEXT:   "line": 98,
 // CHECK-NEXT:   "col": 8,
 // CHECK-NEXT:   "tokLen": 36
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 1396,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 6
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 1486,
 // CHECK-NEXT:    "line": 100,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
@@ -3921,16 +4253,19 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "CXXRecordDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 1403,
 // CHECK-NEXT:     "line": 98,
 // CHECK-NEXT:     "col": 8,
 // CHECK-NEXT:     "tokLen": 36
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 1396,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 6
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 1403,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 36
 // CHECK-NEXT:     }
@@ -3944,16 +4279,19 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "CXXConstructorDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 1444,
 // CHECK-NEXT:     "line": 99,
 // CHECK-NEXT:     "col": 3,
 // CHECK-NEXT:     "tokLen": 36
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 1444,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 36
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 1484,
 // CHECK-NEXT:      "col": 43,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -3968,10 +4306,12 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:      "kind": "CompoundStmt",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1483,
 // CHECK-NEXT:        "col": 42,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1484,
 // CHECK-NEXT:        "col": 43,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -3985,16 +4325,19 @@ struct DoesNotAllowConstDefaultInit {
 
 // CHECK:  "kind": "CXXRecordDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 1497,
 // CHECK-NEXT:   "line": 102,
 // CHECK-NEXT:   "col": 8,
 // CHECK-NEXT:   "tokLen": 16
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 1490,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 6
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 1533,
 // CHECK-NEXT:    "line": 104,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
@@ -4055,16 +4398,19 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "CXXRecordDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 1497,
 // CHECK-NEXT:     "line": 102,
 // CHECK-NEXT:     "col": 8,
 // CHECK-NEXT:     "tokLen": 16
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 1490,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 6
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 1497,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 16
 // CHECK-NEXT:     }
@@ -4077,16 +4423,19 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "FieldDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 1530,
 // CHECK-NEXT:     "line": 103,
 // CHECK-NEXT:     "col": 15,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 1518,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 7
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 1530,
 // CHECK-NEXT:      "col": 15,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -4101,16 +4450,19 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "CXXConstructorDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 1497,
 // CHECK-NEXT:     "line": 102,
 // CHECK-NEXT:     "col": 8,
 // CHECK-NEXT:     "tokLen": 16
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 1497,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 16
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 1497,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 16
 // CHECK-NEXT:     }
@@ -4128,15 +4480,18 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "ParmVarDecl",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 1497,
 // CHECK-NEXT:       "col": 8,
 // CHECK-NEXT:       "tokLen": 16
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1497,
 // CHECK-NEXT:        "col": 8,
 // CHECK-NEXT:        "tokLen": 16
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1497,
 // CHECK-NEXT:        "col": 8,
 // CHECK-NEXT:        "tokLen": 16
 // CHECK-NEXT:       }
@@ -4151,15 +4506,18 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "CXXMethodDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 1497,
 // CHECK-NEXT:     "col": 8,
 // CHECK-NEXT:     "tokLen": 16
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 1497,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 16
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 1497,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 16
 // CHECK-NEXT:     }
@@ -4177,15 +4535,18 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "ParmVarDecl",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 1497,
 // CHECK-NEXT:       "col": 8,
 // CHECK-NEXT:       "tokLen": 16
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1497,
 // CHECK-NEXT:        "col": 8,
 // CHECK-NEXT:        "tokLen": 16
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1497,
 // CHECK-NEXT:        "col": 8,
 // CHECK-NEXT:        "tokLen": 16
 // CHECK-NEXT:       }
@@ -4202,16 +4563,19 @@ struct DoesNotAllowConstDefaultInit {
 
 // CHECK:  "kind": "CXXRecordDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 1544,
 // CHECK-NEXT:   "line": 106,
 // CHECK-NEXT:   "col": 8,
 // CHECK-NEXT:   "tokLen": 18
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 1537,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 6
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 1574,
 // CHECK-NEXT:    "line": 108,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
@@ -4270,16 +4634,19 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "CXXRecordDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 1544,
 // CHECK-NEXT:     "line": 106,
 // CHECK-NEXT:     "col": 8,
 // CHECK-NEXT:     "tokLen": 18
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 1537,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 6
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 1544,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 18
 // CHECK-NEXT:     }
@@ -4292,16 +4659,19 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "FieldDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 1571,
 // CHECK-NEXT:     "line": 107,
 // CHECK-NEXT:     "col": 7,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 1567,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 3
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 1571,
 // CHECK-NEXT:      "col": 7,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -4317,16 +4687,19 @@ struct DoesNotAllowConstDefaultInit {
 
 // CHECK:  "kind": "CXXRecordDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 1585,
 // CHECK-NEXT:   "line": 110,
 // CHECK-NEXT:   "col": 8,
 // CHECK-NEXT:   "tokLen": 17
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 1578,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 6
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 1631,
 // CHECK-NEXT:    "line": 114,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
@@ -4386,16 +4759,19 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "CXXRecordDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 1585,
 // CHECK-NEXT:     "line": 110,
 // CHECK-NEXT:     "col": 8,
 // CHECK-NEXT:     "tokLen": 17
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 1578,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 6
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 1585,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 17
 // CHECK-NEXT:     }
@@ -4408,16 +4784,19 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "CXXRecordDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 1607,
 // CHECK-NEXT:     "line": 111,
 // CHECK-NEXT:     "col": 3,
 // CHECK-NEXT:     "tokLen": 5
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 1607,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 5
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 1628,
 // CHECK-NEXT:      "line": 113,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 1
@@ -4476,16 +4855,19 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "FieldDecl",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 1623,
 // CHECK-NEXT:       "line": 112,
 // CHECK-NEXT:       "col": 9,
 // CHECK-NEXT:       "tokLen": 1
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1619,
 // CHECK-NEXT:        "col": 5,
 // CHECK-NEXT:        "tokLen": 3
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1623,
 // CHECK-NEXT:        "col": 9,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -4501,16 +4883,19 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "FieldDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 1607,
 // CHECK-NEXT:     "line": 111,
 // CHECK-NEXT:     "col": 3,
 // CHECK-NEXT:     "tokLen": 5
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 1607,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 5
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 1607,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 5
 // CHECK-NEXT:     }
@@ -4524,16 +4909,19 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "IndirectFieldDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 1623,
 // CHECK-NEXT:     "line": 112,
 // CHECK-NEXT:     "col": 9,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 1623,
 // CHECK-NEXT:      "col": 9,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 1623,
 // CHECK-NEXT:      "col": 9,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -4547,16 +4935,19 @@ struct DoesNotAllowConstDefaultInit {
 
 // CHECK:  "kind": "CXXRecordDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 1642,
 // CHECK-NEXT:   "line": 116,
 // CHECK-NEXT:   "col": 8,
 // CHECK-NEXT:   "tokLen": 19
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 1635,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 6
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 1664,
 // CHECK-NEXT:    "line": 117,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
@@ -4620,16 +5011,19 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "CXXRecordDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 1642,
 // CHECK-NEXT:     "line": 116,
 // CHECK-NEXT:     "col": 8,
 // CHECK-NEXT:     "tokLen": 19
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 1635,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 6
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 1642,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 19
 // CHECK-NEXT:     }
@@ -4644,16 +5038,19 @@ struct DoesNotAllowConstDefaultInit {
 
 // CHECK:  "kind": "CXXRecordDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 1675,
 // CHECK-NEXT:   "line": 119,
 // CHECK-NEXT:   "col": 8,
 // CHECK-NEXT:   "tokLen": 22
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 1668,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 6
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 1714,
 // CHECK-NEXT:    "line": 121,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
@@ -4714,16 +5111,19 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "CXXRecordDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 1675,
 // CHECK-NEXT:     "line": 119,
 // CHECK-NEXT:     "col": 8,
 // CHECK-NEXT:     "tokLen": 22
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 1668,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 6
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 1675,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 22
 // CHECK-NEXT:     }
@@ -4736,16 +5136,19 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "FieldDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 1706,
 // CHECK-NEXT:     "line": 120,
 // CHECK-NEXT:     "col": 7,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 1702,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 3
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 1710,
 // CHECK-NEXT:      "col": 11,
 // CHECK-NEXT:      "tokLen": 2
 // CHECK-NEXT:     }
@@ -4761,10 +5164,12 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:      "kind": "IntegerLiteral",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1710,
 // CHECK-NEXT:        "col": 11,
 // CHECK-NEXT:        "tokLen": 2
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1710,
 // CHECK-NEXT:        "col": 11,
 // CHECK-NEXT:        "tokLen": 2
 // CHECK-NEXT:       }
@@ -4783,16 +5188,19 @@ struct DoesNotAllowConstDefaultInit {
 
 // CHECK:  "kind": "CXXRecordDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 1725,
 // CHECK-NEXT:   "line": 123,
 // CHECK-NEXT:   "col": 8,
 // CHECK-NEXT:   "tokLen": 28
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 1718,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 6
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 1765,
 // CHECK-NEXT:    "line": 125,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
@@ -4851,16 +5259,19 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "CXXRecordDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 1725,
 // CHECK-NEXT:     "line": 123,
 // CHECK-NEXT:     "col": 8,
 // CHECK-NEXT:     "tokLen": 28
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 1718,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 6
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 1725,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 28
 // CHECK-NEXT:     }
@@ -4873,16 +5284,19 @@ struct DoesNotAllowConstDefaultInit {
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "FieldDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 1762,
 // CHECK-NEXT:     "line": 124,
 // CHECK-NEXT:     "col": 7,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 1758,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 3
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 1762,
 // CHECK-NEXT:      "col": 7,
 // CHECK-NEXT:      "tokLen": 1
 // 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=374921&r1=374920&r2=374921&view=diff
==============================================================================
--- cfe/trunk/test/AST/ast-dump-records-json.cpp (original)
+++ cfe/trunk/test/AST/ast-dump-records-json.cpp Tue Oct 15 10:30:19 2019
@@ -100,6 +100,7 @@ struct Derived6 : virtual public Bases..
 
 // CHECK:  "kind": "CXXRecordDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 102,
 // CHECK-NEXT:   "file": "{{.*}}",
 // CHECK-NEXT:   "line": 3,
 // CHECK-NEXT:   "col": 8,
@@ -107,10 +108,12 @@ struct Derived6 : virtual public Bases..
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 95,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 6
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 102,
 // CHECK-NEXT:    "col": 8,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   }
@@ -122,16 +125,19 @@ struct Derived6 : virtual public Bases..
 
 // CHECK:  "kind": "CXXRecordDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 112,
 // CHECK-NEXT:   "line": 4,
 // CHECK-NEXT:   "col": 8,
 // CHECK-NEXT:   "tokLen": 1
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 105,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 6
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 112,
 // CHECK-NEXT:    "col": 8,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   }
@@ -144,16 +150,19 @@ struct Derived6 : virtual public Bases..
 
 // CHECK:  "kind": "CXXRecordDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 123,
 // CHECK-NEXT:   "line": 6,
 // CHECK-NEXT:   "col": 8,
 // CHECK-NEXT:   "tokLen": 1
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 116,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 6
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 195,
 // CHECK-NEXT:    "line": 13,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
@@ -213,16 +222,19 @@ struct Derived6 : virtual public Bases..
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "CXXRecordDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 123,
 // CHECK-NEXT:     "line": 6,
 // CHECK-NEXT:     "col": 8,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 116,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 6
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 123,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -235,16 +247,19 @@ struct Derived6 : virtual public Bases..
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "FieldDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 133,
 // CHECK-NEXT:     "line": 7,
 // CHECK-NEXT:     "col": 7,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 129,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 3
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 133,
 // CHECK-NEXT:      "col": 7,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -258,16 +273,19 @@ struct Derived6 : virtual public Bases..
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "FieldDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 142,
 // CHECK-NEXT:     "line": 8,
 // CHECK-NEXT:     "col": 7,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 138,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 3
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 142,
 // CHECK-NEXT:      "col": 7,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -281,15 +299,18 @@ struct Derived6 : virtual public Bases..
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "FieldDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 145,
 // CHECK-NEXT:     "col": 10,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 138,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 3
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 145,
 // CHECK-NEXT:      "col": 10,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -303,16 +324,19 @@ struct Derived6 : virtual public Bases..
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "FieldDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 154,
 // CHECK-NEXT:     "line": 9,
 // CHECK-NEXT:     "col": 7,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 150,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 3
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 158,
 // CHECK-NEXT:      "col": 11,
 // CHECK-NEXT:      "tokLen": 2
 // CHECK-NEXT:     }
@@ -328,10 +352,12 @@ struct Derived6 : virtual public Bases..
 // CHECK-NEXT:      "kind": "ConstantExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 158,
 // CHECK-NEXT:        "col": 11,
 // CHECK-NEXT:        "tokLen": 2
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 158,
 // CHECK-NEXT:        "col": 11,
 // CHECK-NEXT:        "tokLen": 2
 // CHECK-NEXT:       }
@@ -347,10 +373,12 @@ struct Derived6 : virtual public Bases..
 // CHECK-NEXT:        "kind": "IntegerLiteral",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 158,
 // CHECK-NEXT:          "col": 11,
 // CHECK-NEXT:          "tokLen": 2
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 158,
 // CHECK-NEXT:          "col": 11,
 // CHECK-NEXT:          "tokLen": 2
 // CHECK-NEXT:         }
@@ -369,16 +397,19 @@ struct Derived6 : virtual public Bases..
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "FieldDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 168,
 // CHECK-NEXT:     "line": 10,
 // CHECK-NEXT:     "col": 7,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 164,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 3
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 170,
 // CHECK-NEXT:      "col": 9,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -393,10 +424,12 @@ struct Derived6 : virtual public Bases..
 // CHECK-NEXT:      "kind": "ConstantExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 170,
 // CHECK-NEXT:        "col": 9,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 170,
 // CHECK-NEXT:        "col": 9,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -412,10 +445,12 @@ struct Derived6 : virtual public Bases..
 // CHECK-NEXT:        "kind": "IntegerLiteral",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 170,
 // CHECK-NEXT:          "col": 9,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 170,
 // CHECK-NEXT:          "col": 9,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -434,16 +469,19 @@ struct Derived6 : virtual public Bases..
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "FieldDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 179,
 // CHECK-NEXT:     "line": 11,
 // CHECK-NEXT:     "col": 7,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 175,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 3
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 183,
 // CHECK-NEXT:      "col": 11,
 // CHECK-NEXT:      "tokLen": 2
 // CHECK-NEXT:     }
@@ -459,10 +497,12 @@ struct Derived6 : virtual public Bases..
 // CHECK-NEXT:      "kind": "ConstantExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 183,
 // CHECK-NEXT:        "col": 11,
 // CHECK-NEXT:        "tokLen": 2
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 183,
 // CHECK-NEXT:        "col": 11,
 // CHECK-NEXT:        "tokLen": 2
 // CHECK-NEXT:       }
@@ -478,10 +518,12 @@ struct Derived6 : virtual public Bases..
 // CHECK-NEXT:        "kind": "IntegerLiteral",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 183,
 // CHECK-NEXT:          "col": 11,
 // CHECK-NEXT:          "tokLen": 2
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 183,
 // CHECK-NEXT:          "col": 11,
 // CHECK-NEXT:          "tokLen": 2
 // CHECK-NEXT:         }
@@ -500,16 +542,19 @@ struct Derived6 : virtual public Bases..
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "FieldDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 192,
 // CHECK-NEXT:     "line": 12,
 // CHECK-NEXT:     "col": 6,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 189,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 192,
 // CHECK-NEXT:      "col": 6,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -525,16 +570,19 @@ struct Derived6 : virtual public Bases..
 
 // CHECK:  "kind": "CXXRecordDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 206,
 // CHECK-NEXT:   "line": 15,
 // CHECK-NEXT:   "col": 8,
 // CHECK-NEXT:   "tokLen": 1
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 199,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 6
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 310,
 // CHECK-NEXT:    "line": 28,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
@@ -594,16 +642,19 @@ struct Derived6 : virtual public Bases..
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "CXXRecordDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 206,
 // CHECK-NEXT:     "line": 15,
 // CHECK-NEXT:     "col": 8,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 199,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 6
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 206,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -616,16 +667,19 @@ struct Derived6 : virtual public Bases..
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "CXXRecordDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 212,
 // CHECK-NEXT:     "line": 16,
 // CHECK-NEXT:     "col": 3,
 // CHECK-NEXT:     "tokLen": 6
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 212,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 6
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 234,
 // CHECK-NEXT:      "line": 18,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 1
@@ -683,16 +737,19 @@ struct Derived6 : virtual public Bases..
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "FieldDecl",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 229,
 // CHECK-NEXT:       "line": 17,
 // CHECK-NEXT:       "col": 9,
 // CHECK-NEXT:       "tokLen": 1
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 225,
 // CHECK-NEXT:        "col": 5,
 // CHECK-NEXT:        "tokLen": 3
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 229,
 // CHECK-NEXT:        "col": 9,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -708,17 +765,20 @@ struct Derived6 : virtual public Bases..
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "FieldDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 236,
 // CHECK-NEXT:     "line": 18,
 // CHECK-NEXT:     "col": 5,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 212,
 // CHECK-NEXT:      "line": 16,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 6
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 236,
 // CHECK-NEXT:      "line": 18,
 // CHECK-NEXT:      "col": 5,
 // CHECK-NEXT:      "tokLen": 1
@@ -734,16 +794,19 @@ struct Derived6 : virtual public Bases..
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "CXXRecordDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 242,
 // CHECK-NEXT:     "line": 20,
 // CHECK-NEXT:     "col": 3,
 // CHECK-NEXT:     "tokLen": 5
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 242,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 5
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 276,
 // CHECK-NEXT:      "line": 23,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 1
@@ -802,16 +865,19 @@ struct Derived6 : virtual public Bases..
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "FieldDecl",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 258,
 // CHECK-NEXT:       "line": 21,
 // CHECK-NEXT:       "col": 9,
 // CHECK-NEXT:       "tokLen": 1
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 254,
 // CHECK-NEXT:        "col": 5,
 // CHECK-NEXT:        "tokLen": 3
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 258,
 // CHECK-NEXT:        "col": 9,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -825,16 +891,19 @@ struct Derived6 : virtual public Bases..
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "FieldDecl",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 271,
 // CHECK-NEXT:       "line": 22,
 // CHECK-NEXT:       "col": 11,
 // CHECK-NEXT:       "tokLen": 1
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 265,
 // CHECK-NEXT:        "col": 5,
 // CHECK-NEXT:        "tokLen": 5
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 271,
 // CHECK-NEXT:        "col": 11,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -850,16 +919,19 @@ struct Derived6 : virtual public Bases..
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "FieldDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 242,
 // CHECK-NEXT:     "line": 20,
 // CHECK-NEXT:     "col": 3,
 // CHECK-NEXT:     "tokLen": 5
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 242,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 5
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 242,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 5
 // CHECK-NEXT:     }
@@ -873,16 +945,19 @@ struct Derived6 : virtual public Bases..
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "IndirectFieldDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 258,
 // CHECK-NEXT:     "line": 21,
 // CHECK-NEXT:     "col": 9,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 258,
 // CHECK-NEXT:      "col": 9,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 258,
 // CHECK-NEXT:      "col": 9,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -894,16 +969,19 @@ struct Derived6 : virtual public Bases..
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "IndirectFieldDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 271,
 // CHECK-NEXT:     "line": 22,
 // CHECK-NEXT:     "col": 11,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 271,
 // CHECK-NEXT:      "col": 11,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 271,
 // CHECK-NEXT:      "col": 11,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -915,16 +993,19 @@ struct Derived6 : virtual public Bases..
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "CXXRecordDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 282,
 // CHECK-NEXT:     "line": 25,
 // CHECK-NEXT:     "col": 3,
 // CHECK-NEXT:     "tokLen": 6
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 282,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 6
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 307,
 // CHECK-NEXT:      "line": 27,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 1
@@ -982,16 +1063,19 @@ struct Derived6 : virtual public Bases..
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "FieldDecl",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 299,
 // CHECK-NEXT:       "line": 26,
 // CHECK-NEXT:       "col": 9,
 // CHECK-NEXT:       "tokLen": 1
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 295,
 // CHECK-NEXT:        "col": 5,
 // CHECK-NEXT:        "tokLen": 3
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 299,
 // CHECK-NEXT:        "col": 9,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -1005,15 +1089,18 @@ struct Derived6 : virtual public Bases..
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "FieldDecl",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 302,
 // CHECK-NEXT:       "col": 12,
 // CHECK-NEXT:       "tokLen": 1
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 295,
 // CHECK-NEXT:        "col": 5,
 // CHECK-NEXT:        "tokLen": 3
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 302,
 // CHECK-NEXT:        "col": 12,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -1029,16 +1116,19 @@ struct Derived6 : virtual public Bases..
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "FieldDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 282,
 // CHECK-NEXT:     "line": 25,
 // CHECK-NEXT:     "col": 3,
 // CHECK-NEXT:     "tokLen": 6
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 282,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 6
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 282,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 6
 // CHECK-NEXT:     }
@@ -1052,16 +1142,19 @@ struct Derived6 : virtual public Bases..
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "IndirectFieldDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 299,
 // CHECK-NEXT:     "line": 26,
 // CHECK-NEXT:     "col": 9,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 299,
 // CHECK-NEXT:      "col": 9,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 299,
 // CHECK-NEXT:      "col": 9,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -1073,15 +1166,18 @@ struct Derived6 : virtual public Bases..
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "IndirectFieldDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 302,
 // CHECK-NEXT:     "col": 12,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 302,
 // CHECK-NEXT:      "col": 12,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 302,
 // CHECK-NEXT:      "col": 12,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -1095,16 +1191,19 @@ struct Derived6 : virtual public Bases..
 
 // CHECK:  "kind": "CXXRecordDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 321,
 // CHECK-NEXT:   "line": 30,
 // CHECK-NEXT:   "col": 8,
 // CHECK-NEXT:   "tokLen": 1
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 314,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 6
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 358,
 // CHECK-NEXT:    "line": 34,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
@@ -1163,16 +1262,19 @@ struct Derived6 : virtual public Bases..
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "CXXRecordDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 321,
 // CHECK-NEXT:     "line": 30,
 // CHECK-NEXT:     "col": 8,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 314,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 6
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 321,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -1185,16 +1287,19 @@ struct Derived6 : virtual public Bases..
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "FieldDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 331,
 // CHECK-NEXT:     "line": 31,
 // CHECK-NEXT:     "col": 7,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 327,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 3
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 331,
 // CHECK-NEXT:      "col": 7,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -1208,16 +1313,19 @@ struct Derived6 : virtual public Bases..
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "FieldDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 340,
 // CHECK-NEXT:     "line": 32,
 // CHECK-NEXT:     "col": 7,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 336,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 3
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 344,
 // CHECK-NEXT:      "col": 11,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -1231,16 +1339,19 @@ struct Derived6 : virtual public Bases..
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "FieldDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 353,
 // CHECK-NEXT:     "line": 33,
 // CHECK-NEXT:     "col": 7,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 349,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 3
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 355,
 // CHECK-NEXT:      "col": 9,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -1256,16 +1367,19 @@ struct Derived6 : virtual public Bases..
 
 // CHECK:  "kind": "CXXRecordDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 368,
 // CHECK-NEXT:   "line": 36,
 // CHECK-NEXT:   "col": 7,
 // CHECK-NEXT:   "tokLen": 1
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 362,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 5
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 368,
 // CHECK-NEXT:    "col": 7,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   }
@@ -1277,16 +1391,19 @@ struct Derived6 : virtual public Bases..
 
 // CHECK:  "kind": "CXXRecordDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 378,
 // CHECK-NEXT:   "line": 38,
 // CHECK-NEXT:   "col": 7,
 // CHECK-NEXT:   "tokLen": 1
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 372,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 5
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 378,
 // CHECK-NEXT:    "col": 7,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   }
@@ -1298,16 +1415,19 @@ struct Derived6 : virtual public Bases..
 
 // CHECK:  "kind": "CXXRecordDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 388,
 // CHECK-NEXT:   "line": 40,
 // CHECK-NEXT:   "col": 7,
 // CHECK-NEXT:   "tokLen": 1
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 382,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 5
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 460,
 // CHECK-NEXT:    "line": 47,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
@@ -1368,16 +1488,19 @@ struct Derived6 : virtual public Bases..
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "CXXRecordDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 388,
 // CHECK-NEXT:     "line": 40,
 // CHECK-NEXT:     "col": 7,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 382,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 5
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 388,
 // CHECK-NEXT:      "col": 7,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -1390,16 +1513,19 @@ struct Derived6 : virtual public Bases..
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "FieldDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 398,
 // CHECK-NEXT:     "line": 41,
 // CHECK-NEXT:     "col": 7,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 394,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 3
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 398,
 // CHECK-NEXT:      "col": 7,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -1413,16 +1539,19 @@ struct Derived6 : virtual public Bases..
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "FieldDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 407,
 // CHECK-NEXT:     "line": 42,
 // CHECK-NEXT:     "col": 7,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 403,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 3
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 407,
 // CHECK-NEXT:      "col": 7,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -1436,15 +1565,18 @@ struct Derived6 : virtual public Bases..
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "FieldDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 410,
 // CHECK-NEXT:     "col": 10,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 403,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 3
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 410,
 // CHECK-NEXT:      "col": 10,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -1458,16 +1590,19 @@ struct Derived6 : virtual public Bases..
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "FieldDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 419,
 // CHECK-NEXT:     "line": 43,
 // CHECK-NEXT:     "col": 7,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 415,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 3
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 423,
 // CHECK-NEXT:      "col": 11,
 // CHECK-NEXT:      "tokLen": 2
 // CHECK-NEXT:     }
@@ -1483,10 +1618,12 @@ struct Derived6 : virtual public Bases..
 // CHECK-NEXT:      "kind": "ConstantExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 423,
 // CHECK-NEXT:        "col": 11,
 // CHECK-NEXT:        "tokLen": 2
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 423,
 // CHECK-NEXT:        "col": 11,
 // CHECK-NEXT:        "tokLen": 2
 // CHECK-NEXT:       }
@@ -1502,10 +1639,12 @@ struct Derived6 : virtual public Bases..
 // CHECK-NEXT:        "kind": "IntegerLiteral",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 423,
 // CHECK-NEXT:          "col": 11,
 // CHECK-NEXT:          "tokLen": 2
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 423,
 // CHECK-NEXT:          "col": 11,
 // CHECK-NEXT:          "tokLen": 2
 // CHECK-NEXT:         }
@@ -1524,16 +1663,19 @@ struct Derived6 : virtual public Bases..
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "FieldDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 433,
 // CHECK-NEXT:     "line": 44,
 // CHECK-NEXT:     "col": 7,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 429,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 3
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 435,
 // CHECK-NEXT:      "col": 9,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -1548,10 +1690,12 @@ struct Derived6 : virtual public Bases..
 // CHECK-NEXT:      "kind": "ConstantExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 435,
 // CHECK-NEXT:        "col": 9,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 435,
 // CHECK-NEXT:        "col": 9,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -1567,10 +1711,12 @@ struct Derived6 : virtual public Bases..
 // CHECK-NEXT:        "kind": "IntegerLiteral",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 435,
 // CHECK-NEXT:          "col": 9,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 435,
 // CHECK-NEXT:          "col": 9,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -1589,16 +1735,19 @@ struct Derived6 : virtual public Bases..
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "FieldDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 444,
 // CHECK-NEXT:     "line": 45,
 // CHECK-NEXT:     "col": 7,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 440,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 3
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 448,
 // CHECK-NEXT:      "col": 11,
 // CHECK-NEXT:      "tokLen": 2
 // CHECK-NEXT:     }
@@ -1614,10 +1763,12 @@ struct Derived6 : virtual public Bases..
 // CHECK-NEXT:      "kind": "ConstantExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 448,
 // CHECK-NEXT:        "col": 11,
 // CHECK-NEXT:        "tokLen": 2
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 448,
 // CHECK-NEXT:        "col": 11,
 // CHECK-NEXT:        "tokLen": 2
 // CHECK-NEXT:       }
@@ -1633,10 +1784,12 @@ struct Derived6 : virtual public Bases..
 // CHECK-NEXT:        "kind": "IntegerLiteral",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 448,
 // CHECK-NEXT:          "col": 11,
 // CHECK-NEXT:          "tokLen": 2
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 448,
 // CHECK-NEXT:          "col": 11,
 // CHECK-NEXT:          "tokLen": 2
 // CHECK-NEXT:         }
@@ -1655,16 +1808,19 @@ struct Derived6 : virtual public Bases..
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "FieldDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 457,
 // CHECK-NEXT:     "line": 46,
 // CHECK-NEXT:     "col": 6,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 454,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 457,
 // CHECK-NEXT:      "col": 6,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -1680,16 +1836,19 @@ struct Derived6 : virtual public Bases..
 
 // CHECK:  "kind": "CXXRecordDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 470,
 // CHECK-NEXT:   "line": 49,
 // CHECK-NEXT:   "col": 7,
 // CHECK-NEXT:   "tokLen": 1
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 464,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 5
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 574,
 // CHECK-NEXT:    "line": 62,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
@@ -1749,16 +1908,19 @@ struct Derived6 : virtual public Bases..
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "CXXRecordDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 470,
 // CHECK-NEXT:     "line": 49,
 // CHECK-NEXT:     "col": 7,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 464,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 5
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 470,
 // CHECK-NEXT:      "col": 7,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -1771,16 +1933,19 @@ struct Derived6 : virtual public Bases..
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "CXXRecordDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 476,
 // CHECK-NEXT:     "line": 50,
 // CHECK-NEXT:     "col": 3,
 // CHECK-NEXT:     "tokLen": 6
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 476,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 6
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 498,
 // CHECK-NEXT:      "line": 52,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 1
@@ -1838,16 +2003,19 @@ struct Derived6 : virtual public Bases..
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "FieldDecl",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 493,
 // CHECK-NEXT:       "line": 51,
 // CHECK-NEXT:       "col": 9,
 // CHECK-NEXT:       "tokLen": 1
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 489,
 // CHECK-NEXT:        "col": 5,
 // CHECK-NEXT:        "tokLen": 3
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 493,
 // CHECK-NEXT:        "col": 9,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -1863,17 +2031,20 @@ struct Derived6 : virtual public Bases..
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "FieldDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 500,
 // CHECK-NEXT:     "line": 52,
 // CHECK-NEXT:     "col": 5,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 476,
 // CHECK-NEXT:      "line": 50,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 6
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 500,
 // CHECK-NEXT:      "line": 52,
 // CHECK-NEXT:      "col": 5,
 // CHECK-NEXT:      "tokLen": 1
@@ -1889,16 +2060,19 @@ struct Derived6 : virtual public Bases..
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "CXXRecordDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 506,
 // CHECK-NEXT:     "line": 54,
 // CHECK-NEXT:     "col": 3,
 // CHECK-NEXT:     "tokLen": 5
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 506,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 5
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 540,
 // CHECK-NEXT:      "line": 57,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 1
@@ -1957,16 +2131,19 @@ struct Derived6 : virtual public Bases..
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "FieldDecl",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 522,
 // CHECK-NEXT:       "line": 55,
 // CHECK-NEXT:       "col": 9,
 // CHECK-NEXT:       "tokLen": 1
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 518,
 // CHECK-NEXT:        "col": 5,
 // CHECK-NEXT:        "tokLen": 3
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 522,
 // CHECK-NEXT:        "col": 9,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -1980,16 +2157,19 @@ struct Derived6 : virtual public Bases..
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "FieldDecl",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 535,
 // CHECK-NEXT:       "line": 56,
 // CHECK-NEXT:       "col": 11,
 // CHECK-NEXT:       "tokLen": 1
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 529,
 // CHECK-NEXT:        "col": 5,
 // CHECK-NEXT:        "tokLen": 5
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 535,
 // CHECK-NEXT:        "col": 11,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -2005,16 +2185,19 @@ struct Derived6 : virtual public Bases..
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "FieldDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 506,
 // CHECK-NEXT:     "line": 54,
 // CHECK-NEXT:     "col": 3,
 // CHECK-NEXT:     "tokLen": 5
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 506,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 5
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 506,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 5
 // CHECK-NEXT:     }
@@ -2028,16 +2211,19 @@ struct Derived6 : virtual public Bases..
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "IndirectFieldDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 522,
 // CHECK-NEXT:     "line": 55,
 // CHECK-NEXT:     "col": 9,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 522,
 // CHECK-NEXT:      "col": 9,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 522,
 // CHECK-NEXT:      "col": 9,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -2049,16 +2235,19 @@ struct Derived6 : virtual public Bases..
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "IndirectFieldDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 535,
 // CHECK-NEXT:     "line": 56,
 // CHECK-NEXT:     "col": 11,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 535,
 // CHECK-NEXT:      "col": 11,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 535,
 // CHECK-NEXT:      "col": 11,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -2070,16 +2259,19 @@ struct Derived6 : virtual public Bases..
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "CXXRecordDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 546,
 // CHECK-NEXT:     "line": 59,
 // CHECK-NEXT:     "col": 3,
 // CHECK-NEXT:     "tokLen": 6
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 546,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 6
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 571,
 // CHECK-NEXT:      "line": 61,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 1
@@ -2137,16 +2329,19 @@ struct Derived6 : virtual public Bases..
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "FieldDecl",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 563,
 // CHECK-NEXT:       "line": 60,
 // CHECK-NEXT:       "col": 9,
 // CHECK-NEXT:       "tokLen": 1
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 559,
 // CHECK-NEXT:        "col": 5,
 // CHECK-NEXT:        "tokLen": 3
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 563,
 // CHECK-NEXT:        "col": 9,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -2160,15 +2355,18 @@ struct Derived6 : virtual public Bases..
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "FieldDecl",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 566,
 // CHECK-NEXT:       "col": 12,
 // CHECK-NEXT:       "tokLen": 1
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 559,
 // CHECK-NEXT:        "col": 5,
 // CHECK-NEXT:        "tokLen": 3
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 566,
 // CHECK-NEXT:        "col": 12,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -2184,16 +2382,19 @@ struct Derived6 : virtual public Bases..
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "FieldDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 546,
 // CHECK-NEXT:     "line": 59,
 // CHECK-NEXT:     "col": 3,
 // CHECK-NEXT:     "tokLen": 6
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 546,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 6
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 546,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 6
 // CHECK-NEXT:     }
@@ -2207,16 +2408,19 @@ struct Derived6 : virtual public Bases..
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "IndirectFieldDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 563,
 // CHECK-NEXT:     "line": 60,
 // CHECK-NEXT:     "col": 9,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 563,
 // CHECK-NEXT:      "col": 9,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 563,
 // CHECK-NEXT:      "col": 9,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -2228,15 +2432,18 @@ struct Derived6 : virtual public Bases..
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "IndirectFieldDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 566,
 // CHECK-NEXT:     "col": 12,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 566,
 // CHECK-NEXT:      "col": 12,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 566,
 // CHECK-NEXT:      "col": 12,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -2250,16 +2457,19 @@ struct Derived6 : virtual public Bases..
 
 // CHECK:  "kind": "CXXRecordDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 585,
 // CHECK-NEXT:   "line": 64,
 // CHECK-NEXT:   "col": 8,
 // CHECK-NEXT:   "tokLen": 5
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 578,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 6
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 592,
 // CHECK-NEXT:    "col": 15,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   }
@@ -2320,15 +2530,18 @@ struct Derived6 : virtual public Bases..
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "CXXRecordDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 585,
 // CHECK-NEXT:     "col": 8,
 // CHECK-NEXT:     "tokLen": 5
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 578,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 6
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 585,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 5
 // CHECK-NEXT:     }
@@ -2341,15 +2554,18 @@ struct Derived6 : virtual public Bases..
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "CXXMethodDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 585,
 // CHECK-NEXT:     "col": 8,
 // CHECK-NEXT:     "tokLen": 5
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 585,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 5
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 585,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 5
 // CHECK-NEXT:     }
@@ -2367,15 +2583,18 @@ struct Derived6 : virtual public Bases..
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "ParmVarDecl",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 585,
 // CHECK-NEXT:       "col": 8,
 // CHECK-NEXT:       "tokLen": 5
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 585,
 // CHECK-NEXT:        "col": 8,
 // CHECK-NEXT:        "tokLen": 5
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 585,
 // CHECK-NEXT:        "col": 8,
 // CHECK-NEXT:        "tokLen": 5
 // CHECK-NEXT:       }
@@ -2390,15 +2609,18 @@ struct Derived6 : virtual public Bases..
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "CXXMethodDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 585,
 // CHECK-NEXT:     "col": 8,
 // CHECK-NEXT:     "tokLen": 5
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 585,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 5
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 585,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 5
 // CHECK-NEXT:     }
@@ -2416,15 +2638,18 @@ struct Derived6 : virtual public Bases..
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "ParmVarDecl",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 585,
 // CHECK-NEXT:       "col": 8,
 // CHECK-NEXT:       "tokLen": 5
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 585,
 // CHECK-NEXT:        "col": 8,
 // CHECK-NEXT:        "tokLen": 5
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 585,
 // CHECK-NEXT:        "col": 8,
 // CHECK-NEXT:        "tokLen": 5
 // CHECK-NEXT:       }
@@ -2439,15 +2664,18 @@ struct Derived6 : virtual public Bases..
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "CXXDestructorDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 585,
 // CHECK-NEXT:     "col": 8,
 // CHECK-NEXT:     "tokLen": 5
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 585,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 5
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 585,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 5
 // CHECK-NEXT:     }
@@ -2466,16 +2694,19 @@ struct Derived6 : virtual public Bases..
 
 // CHECK:  "kind": "CXXRecordDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 602,
 // CHECK-NEXT:   "line": 65,
 // CHECK-NEXT:   "col": 8,
 // CHECK-NEXT:   "tokLen": 5
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 595,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 6
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 609,
 // CHECK-NEXT:    "col": 15,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   }
@@ -2536,15 +2767,18 @@ struct Derived6 : virtual public Bases..
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "CXXRecordDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 602,
 // CHECK-NEXT:     "col": 8,
 // CHECK-NEXT:     "tokLen": 5
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 595,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 6
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 602,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 5
 // CHECK-NEXT:     }
@@ -2557,15 +2791,18 @@ struct Derived6 : virtual public Bases..
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "CXXMethodDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 602,
 // CHECK-NEXT:     "col": 8,
 // CHECK-NEXT:     "tokLen": 5
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 602,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 5
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 602,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 5
 // CHECK-NEXT:     }
@@ -2583,15 +2820,18 @@ struct Derived6 : virtual public Bases..
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "ParmVarDecl",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 602,
 // CHECK-NEXT:       "col": 8,
 // CHECK-NEXT:       "tokLen": 5
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 602,
 // CHECK-NEXT:        "col": 8,
 // CHECK-NEXT:        "tokLen": 5
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 602,
 // CHECK-NEXT:        "col": 8,
 // CHECK-NEXT:        "tokLen": 5
 // CHECK-NEXT:       }
@@ -2606,15 +2846,18 @@ struct Derived6 : virtual public Bases..
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "CXXMethodDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 602,
 // CHECK-NEXT:     "col": 8,
 // CHECK-NEXT:     "tokLen": 5
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 602,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 5
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 602,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 5
 // CHECK-NEXT:     }
@@ -2632,15 +2875,18 @@ struct Derived6 : virtual public Bases..
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "ParmVarDecl",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 602,
 // CHECK-NEXT:       "col": 8,
 // CHECK-NEXT:       "tokLen": 5
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 602,
 // CHECK-NEXT:        "col": 8,
 // CHECK-NEXT:        "tokLen": 5
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 602,
 // CHECK-NEXT:        "col": 8,
 // CHECK-NEXT:        "tokLen": 5
 // CHECK-NEXT:       }
@@ -2655,15 +2901,18 @@ struct Derived6 : virtual public Bases..
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "CXXDestructorDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 602,
 // CHECK-NEXT:     "col": 8,
 // CHECK-NEXT:     "tokLen": 5
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 602,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 5
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 602,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 5
 // CHECK-NEXT:     }
@@ -2682,16 +2931,19 @@ struct Derived6 : virtual public Bases..
 
 // CHECK:  "kind": "CXXRecordDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 619,
 // CHECK-NEXT:   "line": 66,
 // CHECK-NEXT:   "col": 8,
 // CHECK-NEXT:   "tokLen": 5
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 612,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 6
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 626,
 // CHECK-NEXT:    "col": 15,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   }
@@ -2752,15 +3004,18 @@ struct Derived6 : virtual public Bases..
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "CXXRecordDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 619,
 // CHECK-NEXT:     "col": 8,
 // CHECK-NEXT:     "tokLen": 5
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 612,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 6
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 619,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 5
 // CHECK-NEXT:     }
@@ -2773,15 +3028,18 @@ struct Derived6 : virtual public Bases..
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "CXXMethodDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 619,
 // CHECK-NEXT:     "col": 8,
 // CHECK-NEXT:     "tokLen": 5
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 619,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 5
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 619,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 5
 // CHECK-NEXT:     }
@@ -2799,15 +3057,18 @@ struct Derived6 : virtual public Bases..
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "ParmVarDecl",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 619,
 // CHECK-NEXT:       "col": 8,
 // CHECK-NEXT:       "tokLen": 5
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 619,
 // CHECK-NEXT:        "col": 8,
 // CHECK-NEXT:        "tokLen": 5
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 619,
 // CHECK-NEXT:        "col": 8,
 // CHECK-NEXT:        "tokLen": 5
 // CHECK-NEXT:       }
@@ -2822,15 +3083,18 @@ struct Derived6 : virtual public Bases..
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "CXXMethodDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 619,
 // CHECK-NEXT:     "col": 8,
 // CHECK-NEXT:     "tokLen": 5
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 619,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 5
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 619,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 5
 // CHECK-NEXT:     }
@@ -2848,15 +3112,18 @@ struct Derived6 : virtual public Bases..
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "ParmVarDecl",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 619,
 // CHECK-NEXT:       "col": 8,
 // CHECK-NEXT:       "tokLen": 5
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 619,
 // CHECK-NEXT:        "col": 8,
 // CHECK-NEXT:        "tokLen": 5
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 619,
 // CHECK-NEXT:        "col": 8,
 // CHECK-NEXT:        "tokLen": 5
 // CHECK-NEXT:       }
@@ -2871,15 +3138,18 @@ struct Derived6 : virtual public Bases..
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "CXXDestructorDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 619,
 // CHECK-NEXT:     "col": 8,
 // CHECK-NEXT:     "tokLen": 5
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 619,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 5
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 619,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 5
 // CHECK-NEXT:     }
@@ -2898,16 +3168,19 @@ struct Derived6 : virtual public Bases..
 
 // CHECK:  "kind": "CXXRecordDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 637,
 // CHECK-NEXT:   "line": 68,
 // CHECK-NEXT:   "col": 8,
 // CHECK-NEXT:   "tokLen": 8
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 630,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 6
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 656,
 // CHECK-NEXT:    "line": 69,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
@@ -2979,16 +3252,19 @@ struct Derived6 : virtual public Bases..
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "CXXRecordDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 637,
 // CHECK-NEXT:     "line": 68,
 // CHECK-NEXT:     "col": 8,
 // CHECK-NEXT:     "tokLen": 8
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 630,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 6
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 637,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 8
 // CHECK-NEXT:     }
@@ -3003,16 +3279,19 @@ struct Derived6 : virtual public Bases..
 
 // CHECK:  "kind": "CXXRecordDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 667,
 // CHECK-NEXT:   "line": 71,
 // CHECK-NEXT:   "col": 8,
 // CHECK-NEXT:   "tokLen": 8
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 660,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 6
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 694,
 // CHECK-NEXT:    "line": 72,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
@@ -3083,16 +3362,19 @@ struct Derived6 : virtual public Bases..
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "CXXRecordDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 667,
 // CHECK-NEXT:     "line": 71,
 // CHECK-NEXT:     "col": 8,
 // CHECK-NEXT:     "tokLen": 8
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 660,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 6
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 667,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 8
 // CHECK-NEXT:     }
@@ -3107,16 +3389,19 @@ struct Derived6 : virtual public Bases..
 
 // CHECK:  "kind": "CXXRecordDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 705,
 // CHECK-NEXT:   "line": 74,
 // CHECK-NEXT:   "col": 8,
 // CHECK-NEXT:   "tokLen": 8
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 698,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 6
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 732,
 // CHECK-NEXT:    "line": 75,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
@@ -3176,16 +3461,19 @@ struct Derived6 : virtual public Bases..
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "CXXRecordDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 705,
 // CHECK-NEXT:     "line": 74,
 // CHECK-NEXT:     "col": 8,
 // CHECK-NEXT:     "tokLen": 8
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 698,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 6
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 705,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 8
 // CHECK-NEXT:     }
@@ -3198,15 +3486,18 @@ struct Derived6 : virtual public Bases..
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "CXXMethodDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 705,
 // CHECK-NEXT:     "col": 8,
 // CHECK-NEXT:     "tokLen": 8
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 705,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 8
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 705,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 8
 // CHECK-NEXT:     }
@@ -3223,15 +3514,18 @@ struct Derived6 : virtual public Bases..
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "ParmVarDecl",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 705,
 // CHECK-NEXT:       "col": 8,
 // CHECK-NEXT:       "tokLen": 8
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 705,
 // CHECK-NEXT:        "col": 8,
 // CHECK-NEXT:        "tokLen": 8
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 705,
 // CHECK-NEXT:        "col": 8,
 // CHECK-NEXT:        "tokLen": 8
 // CHECK-NEXT:       }
@@ -3246,15 +3540,18 @@ struct Derived6 : virtual public Bases..
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "CXXMethodDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 705,
 // CHECK-NEXT:     "col": 8,
 // CHECK-NEXT:     "tokLen": 8
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 705,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 8
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 705,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 8
 // CHECK-NEXT:     }
@@ -3271,15 +3568,18 @@ struct Derived6 : virtual public Bases..
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "ParmVarDecl",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 705,
 // CHECK-NEXT:       "col": 8,
 // CHECK-NEXT:       "tokLen": 8
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 705,
 // CHECK-NEXT:        "col": 8,
 // CHECK-NEXT:        "tokLen": 8
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 705,
 // CHECK-NEXT:        "col": 8,
 // CHECK-NEXT:        "tokLen": 8
 // CHECK-NEXT:       }
@@ -3294,15 +3594,18 @@ struct Derived6 : virtual public Bases..
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "CXXDestructorDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 705,
 // CHECK-NEXT:     "col": 8,
 // CHECK-NEXT:     "tokLen": 8
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 705,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 8
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 705,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 8
 // CHECK-NEXT:     }
@@ -3321,16 +3624,19 @@ struct Derived6 : virtual public Bases..
 
 // CHECK:  "kind": "CXXRecordDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 743,
 // CHECK-NEXT:   "line": 77,
 // CHECK-NEXT:   "col": 8,
 // CHECK-NEXT:   "tokLen": 8
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 736,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 6
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 794,
 // CHECK-NEXT:    "line": 78,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
@@ -3404,16 +3710,19 @@ struct Derived6 : virtual public Bases..
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "CXXRecordDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 743,
 // CHECK-NEXT:     "line": 77,
 // CHECK-NEXT:     "col": 8,
 // CHECK-NEXT:     "tokLen": 8
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 736,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 6
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 743,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 8
 // CHECK-NEXT:     }
@@ -3426,15 +3735,18 @@ struct Derived6 : virtual public Bases..
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "CXXMethodDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 743,
 // CHECK-NEXT:     "col": 8,
 // CHECK-NEXT:     "tokLen": 8
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 743,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 8
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 743,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 8
 // CHECK-NEXT:     }
@@ -3451,15 +3763,18 @@ struct Derived6 : virtual public Bases..
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "ParmVarDecl",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 743,
 // CHECK-NEXT:       "col": 8,
 // CHECK-NEXT:       "tokLen": 8
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 743,
 // CHECK-NEXT:        "col": 8,
 // CHECK-NEXT:        "tokLen": 8
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 743,
 // CHECK-NEXT:        "col": 8,
 // CHECK-NEXT:        "tokLen": 8
 // CHECK-NEXT:       }
@@ -3474,15 +3789,18 @@ struct Derived6 : virtual public Bases..
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "CXXMethodDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 743,
 // CHECK-NEXT:     "col": 8,
 // CHECK-NEXT:     "tokLen": 8
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 743,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 8
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 743,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 8
 // CHECK-NEXT:     }
@@ -3499,15 +3817,18 @@ struct Derived6 : virtual public Bases..
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "ParmVarDecl",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 743,
 // CHECK-NEXT:       "col": 8,
 // CHECK-NEXT:       "tokLen": 8
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 743,
 // CHECK-NEXT:        "col": 8,
 // CHECK-NEXT:        "tokLen": 8
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 743,
 // CHECK-NEXT:        "col": 8,
 // CHECK-NEXT:        "tokLen": 8
 // CHECK-NEXT:       }
@@ -3522,15 +3843,18 @@ struct Derived6 : virtual public Bases..
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "CXXDestructorDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 743,
 // CHECK-NEXT:     "col": 8,
 // CHECK-NEXT:     "tokLen": 8
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 743,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 8
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 743,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 8
 // CHECK-NEXT:     }
@@ -3549,16 +3873,19 @@ struct Derived6 : virtual public Bases..
 
 // CHECK:  "kind": "CXXRecordDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 805,
 // CHECK-NEXT:   "line": 80,
 // CHECK-NEXT:   "col": 8,
 // CHECK-NEXT:   "tokLen": 8
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 798,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 6
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 842,
 // CHECK-NEXT:    "line": 81,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
@@ -3618,16 +3945,19 @@ struct Derived6 : virtual public Bases..
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "CXXRecordDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 805,
 // CHECK-NEXT:     "line": 80,
 // CHECK-NEXT:     "col": 8,
 // CHECK-NEXT:     "tokLen": 8
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 798,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 6
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 805,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 8
 // CHECK-NEXT:     }
@@ -3640,15 +3970,18 @@ struct Derived6 : virtual public Bases..
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "CXXMethodDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 805,
 // CHECK-NEXT:     "col": 8,
 // CHECK-NEXT:     "tokLen": 8
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 805,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 8
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 805,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 8
 // CHECK-NEXT:     }
@@ -3665,15 +3998,18 @@ struct Derived6 : virtual public Bases..
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "ParmVarDecl",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 805,
 // CHECK-NEXT:       "col": 8,
 // CHECK-NEXT:       "tokLen": 8
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 805,
 // CHECK-NEXT:        "col": 8,
 // CHECK-NEXT:        "tokLen": 8
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 805,
 // CHECK-NEXT:        "col": 8,
 // CHECK-NEXT:        "tokLen": 8
 // CHECK-NEXT:       }
@@ -3688,15 +4024,18 @@ struct Derived6 : virtual public Bases..
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "CXXMethodDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 805,
 // CHECK-NEXT:     "col": 8,
 // CHECK-NEXT:     "tokLen": 8
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 805,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 8
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 805,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 8
 // CHECK-NEXT:     }
@@ -3713,15 +4052,18 @@ struct Derived6 : virtual public Bases..
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "ParmVarDecl",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 805,
 // CHECK-NEXT:       "col": 8,
 // CHECK-NEXT:       "tokLen": 8
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 805,
 // CHECK-NEXT:        "col": 8,
 // CHECK-NEXT:        "tokLen": 8
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 805,
 // CHECK-NEXT:        "col": 8,
 // CHECK-NEXT:        "tokLen": 8
 // CHECK-NEXT:       }
@@ -3736,15 +4078,18 @@ struct Derived6 : virtual public Bases..
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "CXXDestructorDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 805,
 // CHECK-NEXT:     "col": 8,
 // CHECK-NEXT:     "tokLen": 8
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 805,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 8
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 805,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 8
 // CHECK-NEXT:     }
@@ -3763,16 +4108,19 @@ struct Derived6 : virtual public Bases..
 
 // CHECK:  "kind": "CXXRecordDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 882,
 // CHECK-NEXT:   "line": 84,
 // CHECK-NEXT:   "col": 8,
 // CHECK-NEXT:   "tokLen": 8
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 875,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 6
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 919,
 // CHECK-NEXT:    "line": 85,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
@@ -3845,16 +4193,19 @@ struct Derived6 : virtual public Bases..
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "CXXRecordDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 882,
 // CHECK-NEXT:     "line": 84,
 // CHECK-NEXT:     "col": 8,
 // CHECK-NEXT:     "tokLen": 8
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 875,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 6
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 882,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 8
 // CHECK-NEXT:     }




More information about the cfe-commits mailing list