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.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@374921 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/include/clang/AST/JSONNodeDumper.h b/include/clang/AST/JSONNodeDumper.h
index 238e43a..5f34440 100644
--- a/include/clang/AST/JSONNodeDumper.h
+++ b/include/clang/AST/JSONNodeDumper.h
@@ -141,6 +141,8 @@
       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);
 
diff --git a/lib/AST/JSONNodeDumper.cpp b/lib/AST/JSONNodeDumper.cpp
index 2f76a17..f60d761 100644
--- a/lib/AST/JSONNodeDumper.cpp
+++ b/lib/AST/JSONNodeDumper.cpp
@@ -180,12 +180,30 @@
   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 @@
     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);
   }
 }
 
diff --git a/test/AST/Inputs/json-dump-include.h b/test/AST/Inputs/json-dump-include.h
new file mode 100644
index 0000000..9a51275
--- /dev/null
+++ b/test/AST/Inputs/json-dump-include.h
@@ -0,0 +1 @@
+typedef int TestTypedefFromInclude;
diff --git a/test/AST/ast-dump-comment-json.cpp b/test/AST/ast-dump-comment-json.cpp
index ee4eec8..2263ed8 100644
--- a/test/AST/ast-dump-comment-json.cpp
+++ b/test/AST/ast-dump-comment-json.cpp
@@ -41,16 +41,19 @@
 
 // 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 @@
 // 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 @@
 // 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 @@
 
 // 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 @@
 // 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 @@
 // 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 @@
 
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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:         }
diff --git a/test/AST/ast-dump-decl-context-json.cpp b/test/AST/ast-dump-decl-context-json.cpp
index beb72ef..02b6eec 100644
--- a/test/AST/ast-dump-decl-context-json.cpp
+++ b/test/AST/ast-dump-decl-context-json.cpp
@@ -14,8 +14,12 @@
 
 } // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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:       }
diff --git a/test/AST/ast-dump-decl-json.c b/test/AST/ast-dump-decl-json.c
index cfa17a0..1ef2d7f 100644
--- a/test/AST/ast-dump-decl-json.c
+++ b/test/AST/ast-dump-decl-json.c
@@ -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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 
 // 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 @@
 
 // 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 @@
 
 // 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 @@
 // 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 @@
 
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 
 // 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 @@
 
 // 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 @@
 // 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 @@
 
 // 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 @@
 
 // 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 @@
 // 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 @@
 // 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 @@
 
 // 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 @@
 // 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 @@
 // 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 @@
 
 // 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 @@
 
 // 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 @@
 
 // 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 @@
 // 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 @@
 // 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 @@
 
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 
 // 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 @@
 // 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 @@
 
 // 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 @@
 
 // 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 @@
 
 // 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 @@
 
 // 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 @@
 
 // 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 @@
 // 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 @@
 // 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 @@
 
 // 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 @@
 
 // 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 @@
 
 // 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 @@
 
 // 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 @@
 // 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 @@
 
 // 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:   }
diff --git a/test/AST/ast-dump-decl-json.m b/test/AST/ast-dump-decl-json.m
index 095bb8c..235533d 100644
--- a/test/AST/ast-dump-decl-json.m
+++ b/test/AST/ast-dump-decl-json.m
@@ -86,232 +86,259 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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: }
diff --git a/test/AST/ast-dump-enum-json.cpp b/test/AST/ast-dump-enum-json.cpp
index 7173daa..4ee7a41 100644
--- a/test/AST/ast-dump-enum-json.cpp
+++ b/test/AST/ast-dump-enum-json.cpp
@@ -36,6 +36,7 @@
 
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 
 // 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 @@
 // 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 @@
 // 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 @@
 
 // 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 @@
 // 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 @@
 // 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 @@
 
 // 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 @@
 // 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 @@
 // 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 @@
 
 // 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 @@
 // 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 @@
 // 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 @@
 
 // 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 @@
 // 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 @@
 // 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:     }
diff --git a/test/AST/ast-dump-expr-json.c b/test/AST/ast-dump-expr-json.c
index b988c52..807f84a 100644
--- a/test/AST/ast-dump-expr-json.c
+++ b/test/AST/ast-dump-expr-json.c
@@ -112,6 +112,7 @@
 

 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 

 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 

 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 

 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 

 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 

 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 

 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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:           }

diff --git a/test/AST/ast-dump-expr-json.cpp b/test/AST/ast-dump-expr-json.cpp
index e629120..4c86edf 100644
--- a/test/AST/ast-dump-expr-json.cpp
+++ b/test/AST/ast-dump-expr-json.cpp
@@ -158,6 +158,7 @@
 
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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:             }
diff --git a/test/AST/ast-dump-expr-json.m b/test/AST/ast-dump-expr-json.m
index 9fc412a..24dc6e6 100644
--- a/test/AST/ast-dump-expr-json.m
+++ b/test/AST/ast-dump-expr-json.m
@@ -98,127 +98,140 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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:    ]
diff --git a/test/AST/ast-dump-funcs-json.cpp b/test/AST/ast-dump-funcs-json.cpp
index ab5623e..3e5e1be 100644
--- a/test/AST/ast-dump-funcs-json.cpp
+++ b/test/AST/ast-dump-funcs-json.cpp
@@ -46,6 +46,7 @@
 
 // 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 @@
 // 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 @@
 
 // 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 @@
 // 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 @@
 
 // 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 @@
 // 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 @@
 
 // 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 @@
 // 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 @@
 
 // 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 @@
 // 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 @@
 
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 
 // 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 @@
 // 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 @@
 
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 
 // 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 @@
 // 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 @@
 
 // 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 @@
 // 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 @@
 // 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 @@
 
 // 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 @@
 // 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 @@
 
 // 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 @@
 // 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 @@
 
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 
 // 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 @@
 // 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 @@
 
 // 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 @@
 // 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 @@
 
 // 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 @@
 // 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 @@
 
 // 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 @@
 // 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 @@
 
 // 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 @@
 // 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 @@
 
 // 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 @@
 // 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 @@
 
 // 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 @@
 // 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 @@
 
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 
 // 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 @@
 // 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 @@
 // 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 @@
 // 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:     }
diff --git a/test/AST/ast-dump-if-json.cpp b/test/AST/ast-dump-if-json.cpp
index 5cd0d60..0efc26a 100644
--- a/test/AST/ast-dump-if-json.cpp
+++ b/test/AST/ast-dump-if-json.cpp
@@ -33,11 +33,13 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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:     }
diff --git a/test/AST/ast-dump-macro-json.c b/test/AST/ast-dump-macro-json.c
index e1746ab..0334a4b 100644
--- a/test/AST/ast-dump-macro-json.c
+++ b/test/AST/ast-dump-macro-json.c
@@ -23,12 +23,14 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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:   }
diff --git a/test/AST/ast-dump-namespace-json.cpp b/test/AST/ast-dump-namespace-json.cpp
index c97beeb..9680195 100644
--- a/test/AST/ast-dump-namespace-json.cpp
+++ b/test/AST/ast-dump-namespace-json.cpp
@@ -23,6 +23,7 @@
 
 // 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 @@
 // 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 @@
 
 // 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 @@
 
 // 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 @@
 // 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 @@
 
 // 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 @@
 // 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 @@
 
 // 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 @@
 // 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
diff --git a/test/AST/ast-dump-record-definition-data-json.cpp b/test/AST/ast-dump-record-definition-data-json.cpp
index 9de5286..8c65bff 100644
--- a/test/AST/ast-dump-record-definition-data-json.cpp
+++ b/test/AST/ast-dump-record-definition-data-json.cpp
@@ -140,15 +140,18 @@
 
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 
 // 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 @@
 // 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 @@
 
 // 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 @@
 // 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 @@
 // 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 @@
 
 // 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 @@
 // 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 @@
 // 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 @@
 
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 
 // 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 @@
 // 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 @@
 // 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 @@
 
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 
 // 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 @@
 // 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 @@
 
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 
 // 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 @@
 // 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 @@
 // 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 @@
 
 // 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 @@
 // 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 @@
 // 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 @@
 
 // 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 @@
 // 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 @@
 // 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 @@
 
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 
 // 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 @@
 // 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 @@
 // 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 @@
 
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 
 // 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 @@
 // 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 @@
 // 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 @@
 
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 
 // 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 @@
 // 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 @@
 
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 
 // 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 @@
 // 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 @@
 // 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 @@
 
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 
 // 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 @@
 // 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 @@
 
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 
 // 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 @@
 // 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 @@
 // 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:     }
diff --git a/test/AST/ast-dump-records-json.cpp b/test/AST/ast-dump-records-json.cpp
index 7a4912b..c79c022 100644
--- a/test/AST/ast-dump-records-json.cpp
+++ b/test/AST/ast-dump-records-json.cpp
@@ -100,6 +100,7 @@
 
 // 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 @@
 // 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 @@
 
 // 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 @@
 
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 
 // 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 @@
 
 // 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 @@
 
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 
 // 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 @@
 // 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 @@
 
 // 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 @@
 // 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 @@
 
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 // 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 @@
 
 // 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 @@
 // 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:     }
diff --git a/test/AST/ast-dump-stmt-json.c b/test/AST/ast-dump-stmt-json.c
index 03552a3..be54a31 100644
--- a/test/AST/ast-dump-stmt-json.c
+++ b/test/AST/ast-dump-stmt-json.c
@@ -153,6 +153,7 @@
 
 // CHECK:  "kind": "VarDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 99,
 // CHECK-NEXT:   "file": "{{.*}}",
 // CHECK-NEXT:   "line": 3,
 // CHECK-NEXT:   "col": 5,
@@ -160,10 +161,12 @@
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 95,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 3
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 114,
 // CHECK-NEXT:    "col": 20,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   }
@@ -179,10 +182,12 @@
 // CHECK-NEXT:    "kind": "IntegerLiteral",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 114,
 // CHECK-NEXT:      "col": 20,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 114,
 // CHECK-NEXT:      "col": 20,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -199,16 +204,19 @@
 
 // CHECK:  "kind": "VarDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 121,
 // CHECK-NEXT:   "line": 4,
 // CHECK-NEXT:   "col": 5,
 // CHECK-NEXT:   "tokLen": 10
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 117,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 3
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 140,
 // CHECK-NEXT:    "col": 24,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   }
@@ -224,10 +232,12 @@
 // CHECK-NEXT:    "kind": "BinaryOperator",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 134,
 // CHECK-NEXT:      "col": 18,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 140,
 // CHECK-NEXT:      "col": 24,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -243,10 +253,12 @@
 // CHECK-NEXT:      "kind": "IntegerLiteral",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 134,
 // CHECK-NEXT:        "col": 18,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 134,
 // CHECK-NEXT:        "col": 18,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -262,10 +274,12 @@
 // CHECK-NEXT:      "kind": "ParenExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 138,
 // CHECK-NEXT:        "col": 22,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 140,
 // CHECK-NEXT:        "col": 24,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -280,10 +294,12 @@
 // CHECK-NEXT:        "kind": "IntegerLiteral",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 139,
 // CHECK-NEXT:          "col": 23,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 139,
 // CHECK-NEXT:          "col": 23,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -305,11 +321,13 @@
 // CHECK:  "kind": "CompoundStmt",
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 164,
 // CHECK-NEXT:    "line": 6,
 // CHECK-NEXT:    "col": 21,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 191,
 // CHECK-NEXT:    "line": 9,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
@@ -321,11 +339,13 @@
 // CHECK-NEXT:    "kind": "DeclStmt",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 168,
 // CHECK-NEXT:      "line": 7,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 3
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 177,
 // CHECK-NEXT:      "col": 12,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -335,15 +355,18 @@
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "VarDecl",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 172,
 // CHECK-NEXT:       "col": 7,
 // CHECK-NEXT:       "tokLen": 1
 // 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": 176,
 // CHECK-NEXT:        "col": 11,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -359,10 +382,12 @@
 // CHECK-NEXT:        "kind": "IntegerLiteral",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 176,
 // CHECK-NEXT:          "col": 11,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 176,
 // CHECK-NEXT:          "col": 11,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -382,11 +407,13 @@
 // CHECK-NEXT:    "kind": "DeclStmt",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 181,
 // CHECK-NEXT:      "line": 8,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 3
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 189,
 // CHECK-NEXT:      "col": 11,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -396,15 +423,18 @@
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "VarDecl",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 185,
 // CHECK-NEXT:       "col": 7,
 // CHECK-NEXT:       "tokLen": 1
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 181,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 3
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 185,
 // CHECK-NEXT:        "col": 7,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -418,15 +448,18 @@
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "VarDecl",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 188,
 // CHECK-NEXT:       "col": 10,
 // CHECK-NEXT:       "tokLen": 1
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 181,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 3
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 188,
 // CHECK-NEXT:        "col": 10,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -444,16 +477,19 @@
 
 // CHECK:  "kind": "VarDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 198,
 // CHECK-NEXT:   "line": 11,
 // CHECK-NEXT:   "col": 5,
 // CHECK-NEXT:   "tokLen": 19
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 194,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 3
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 225,
 // CHECK-NEXT:    "col": 32,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   }
@@ -469,10 +505,12 @@
 // CHECK-NEXT:    "kind": "BinaryConditionalOperator",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 220,
 // CHECK-NEXT:      "col": 27,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 225,
 // CHECK-NEXT:      "col": 32,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -487,10 +525,12 @@
 // CHECK-NEXT:      "kind": "IntegerLiteral",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 220,
 // CHECK-NEXT:        "col": 27,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 220,
 // CHECK-NEXT:        "col": 27,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -506,10 +546,12 @@
 // CHECK-NEXT:      "kind": "OpaqueValueExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 220,
 // CHECK-NEXT:        "col": 27,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 220,
 // CHECK-NEXT:        "col": 27,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -524,10 +566,12 @@
 // CHECK-NEXT:        "kind": "IntegerLiteral",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 220,
 // CHECK-NEXT:          "col": 27,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 220,
 // CHECK-NEXT:          "col": 27,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -545,10 +589,12 @@
 // CHECK-NEXT:      "kind": "OpaqueValueExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 220,
 // CHECK-NEXT:        "col": 27,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 220,
 // CHECK-NEXT:        "col": 27,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -563,10 +609,12 @@
 // CHECK-NEXT:        "kind": "IntegerLiteral",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 220,
 // CHECK-NEXT:          "col": 27,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 220,
 // CHECK-NEXT:          "col": 27,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -584,10 +632,12 @@
 // CHECK-NEXT:      "kind": "IntegerLiteral",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 225,
 // CHECK-NEXT:        "col": 32,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 225,
 // CHECK-NEXT:        "col": 32,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -607,11 +657,13 @@
 // CHECK:  "kind": "CompoundStmt",
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 262,
 // CHECK-NEXT:    "line": 13,
 // CHECK-NEXT:    "col": 34,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 340,
 // CHECK-NEXT:    "line": 25,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
@@ -623,11 +675,13 @@
 // CHECK-NEXT:    "kind": "DeclStmt",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 266,
 // CHECK-NEXT:      "line": 14,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 4
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 277,
 // CHECK-NEXT:      "col": 14,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -637,15 +691,18 @@
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "VarDecl",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 271,
 // CHECK-NEXT:       "col": 8,
 // CHECK-NEXT:       "tokLen": 2
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 266,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 4
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 276,
 // CHECK-NEXT:        "col": 13,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -662,10 +719,12 @@
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 276,
 // CHECK-NEXT:          "col": 13,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 276,
 // CHECK-NEXT:          "col": 13,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -681,10 +740,12 @@
 // CHECK-NEXT:          "kind": "IntegerLiteral",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 276,
 // CHECK-NEXT:            "col": 13,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 276,
 // CHECK-NEXT:            "col": 13,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -706,11 +767,13 @@
 // CHECK-NEXT:    "kind": "DeclStmt",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 281,
 // CHECK-NEXT:      "line": 15,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 3
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 291,
 // CHECK-NEXT:      "col": 13,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -720,15 +783,18 @@
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "VarDecl",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 285,
 // CHECK-NEXT:       "col": 7,
 // CHECK-NEXT:       "tokLen": 2
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 281,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 3
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 290,
 // CHECK-NEXT:        "col": 12,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -745,10 +811,12 @@
 // CHECK-NEXT:        "kind": "IntegerLiteral",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 290,
 // CHECK-NEXT:          "col": 12,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 290,
 // CHECK-NEXT:          "col": 12,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -768,11 +836,13 @@
 // CHECK-NEXT:    "kind": "UnaryOperator",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 296,
 // CHECK-NEXT:      "line": 17,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 2
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 298,
 // CHECK-NEXT:      "col": 5,
 // CHECK-NEXT:      "tokLen": 2
 // CHECK-NEXT:     }
@@ -790,10 +860,12 @@
 // CHECK-NEXT:      "kind": "DeclRefExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 296,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 2
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 296,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 2
 // CHECK-NEXT:       }
@@ -818,11 +890,13 @@
 // CHECK-NEXT:    "kind": "UnaryOperator",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 304,
 // CHECK-NEXT:      "line": 18,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 2
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 306,
 // CHECK-NEXT:      "col": 5,
 // CHECK-NEXT:      "tokLen": 2
 // CHECK-NEXT:     }
@@ -839,10 +913,12 @@
 // CHECK-NEXT:      "kind": "DeclRefExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 304,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 2
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 304,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 2
 // CHECK-NEXT:       }
@@ -867,11 +943,13 @@
 // CHECK-NEXT:    "kind": "UnaryOperator",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 313,
 // CHECK-NEXT:      "line": 20,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 314,
 // CHECK-NEXT:      "col": 4,
 // CHECK-NEXT:      "tokLen": 2
 // CHECK-NEXT:     }
@@ -889,10 +967,12 @@
 // CHECK-NEXT:      "kind": "ImplicitCastExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 314,
 // CHECK-NEXT:        "col": 4,
 // CHECK-NEXT:        "tokLen": 2
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 314,
 // CHECK-NEXT:        "col": 4,
 // CHECK-NEXT:        "tokLen": 2
 // CHECK-NEXT:       }
@@ -908,10 +988,12 @@
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 314,
 // CHECK-NEXT:          "col": 4,
 // CHECK-NEXT:          "tokLen": 2
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 314,
 // CHECK-NEXT:          "col": 4,
 // CHECK-NEXT:          "tokLen": 2
 // CHECK-NEXT:         }
@@ -927,10 +1009,12 @@
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 314,
 // CHECK-NEXT:            "col": 4,
 // CHECK-NEXT:            "tokLen": 2
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 314,
 // CHECK-NEXT:            "col": 4,
 // CHECK-NEXT:            "tokLen": 2
 // CHECK-NEXT:           }
@@ -959,11 +1043,13 @@
 // CHECK-NEXT:    "kind": "UnaryOperator",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 320,
 // CHECK-NEXT:      "line": 21,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 321,
 // CHECK-NEXT:      "col": 4,
 // CHECK-NEXT:      "tokLen": 2
 // CHECK-NEXT:     }
@@ -980,10 +1066,12 @@
 // CHECK-NEXT:      "kind": "ImplicitCastExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 321,
 // CHECK-NEXT:        "col": 4,
 // CHECK-NEXT:        "tokLen": 2
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 321,
 // CHECK-NEXT:        "col": 4,
 // CHECK-NEXT:        "tokLen": 2
 // CHECK-NEXT:       }
@@ -999,10 +1087,12 @@
 // CHECK-NEXT:        "kind": "DeclRefExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 321,
 // CHECK-NEXT:          "col": 4,
 // CHECK-NEXT:          "tokLen": 2
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 321,
 // CHECK-NEXT:          "col": 4,
 // CHECK-NEXT:          "tokLen": 2
 // CHECK-NEXT:         }
@@ -1029,11 +1119,13 @@
 // CHECK-NEXT:    "kind": "UnaryOperator",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 328,
 // CHECK-NEXT:      "line": 23,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 329,
 // CHECK-NEXT:      "col": 4,
 // CHECK-NEXT:      "tokLen": 2
 // CHECK-NEXT:     }
@@ -1051,10 +1143,12 @@
 // CHECK-NEXT:      "kind": "ImplicitCastExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 329,
 // CHECK-NEXT:        "col": 4,
 // CHECK-NEXT:        "tokLen": 2
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 329,
 // CHECK-NEXT:        "col": 4,
 // CHECK-NEXT:        "tokLen": 2
 // CHECK-NEXT:       }
@@ -1070,10 +1164,12 @@
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 329,
 // CHECK-NEXT:          "col": 4,
 // CHECK-NEXT:          "tokLen": 2
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 329,
 // CHECK-NEXT:          "col": 4,
 // CHECK-NEXT:          "tokLen": 2
 // CHECK-NEXT:         }
@@ -1089,10 +1185,12 @@
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 329,
 // CHECK-NEXT:            "col": 4,
 // CHECK-NEXT:            "tokLen": 2
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 329,
 // CHECK-NEXT:            "col": 4,
 // CHECK-NEXT:            "tokLen": 2
 // CHECK-NEXT:           }
@@ -1121,11 +1219,13 @@
 // CHECK-NEXT:    "kind": "UnaryOperator",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 335,
 // CHECK-NEXT:      "line": 24,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 336,
 // CHECK-NEXT:      "col": 4,
 // CHECK-NEXT:      "tokLen": 2
 // CHECK-NEXT:     }
@@ -1143,10 +1243,12 @@
 // CHECK-NEXT:      "kind": "ImplicitCastExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 336,
 // CHECK-NEXT:        "col": 4,
 // CHECK-NEXT:        "tokLen": 2
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 336,
 // CHECK-NEXT:        "col": 4,
 // CHECK-NEXT:        "tokLen": 2
 // CHECK-NEXT:       }
@@ -1162,10 +1264,12 @@
 // CHECK-NEXT:        "kind": "DeclRefExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 336,
 // CHECK-NEXT:          "col": 4,
 // CHECK-NEXT:          "tokLen": 2
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 336,
 // CHECK-NEXT:          "col": 4,
 // CHECK-NEXT:          "tokLen": 2
 // CHECK-NEXT:         }
@@ -1194,10 +1298,12 @@
 // CHECK:  "kind": "CompoundStmt",
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 387,
 // CHECK-NEXT:    "col": 45,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 576,
 // CHECK-NEXT:    "line": 34,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
@@ -1209,11 +1315,13 @@
 // CHECK-NEXT:    "kind": "GenericSelectionExpr",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 391,
 // CHECK-NEXT:      "line": 28,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 8
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 411,
 // CHECK-NEXT:      "col": 23,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -1228,10 +1336,12 @@
 // CHECK-NEXT:      "kind": "ImplicitCastExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 400,
 // CHECK-NEXT:        "col": 12,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 400,
 // CHECK-NEXT:        "col": 12,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -1247,10 +1357,12 @@
 // CHECK-NEXT:        "kind": "DeclRefExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 400,
 // CHECK-NEXT:          "col": 12,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 400,
 // CHECK-NEXT:          "col": 12,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -1294,10 +1406,12 @@
 // CHECK-NEXT:        "kind": "IntegerLiteral",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 409,
 // CHECK-NEXT:          "col": 21,
 // CHECK-NEXT:          "tokLen": 2
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 409,
 // CHECK-NEXT:          "col": 21,
 // CHECK-NEXT:          "tokLen": 2
 // CHECK-NEXT:         }
@@ -1317,11 +1431,13 @@
 // CHECK-NEXT:    "kind": "GenericSelectionExpr",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 416,
 // CHECK-NEXT:      "line": 29,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 8
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 449,
 // CHECK-NEXT:      "col": 36,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -1336,10 +1452,12 @@
 // CHECK-NEXT:      "kind": "ImplicitCastExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 425,
 // CHECK-NEXT:        "col": 12,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 425,
 // CHECK-NEXT:        "col": 12,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -1355,10 +1473,12 @@
 // CHECK-NEXT:        "kind": "DeclRefExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 425,
 // CHECK-NEXT:          "col": 12,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 425,
 // CHECK-NEXT:          "col": 12,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -1402,10 +1522,12 @@
 // CHECK-NEXT:        "kind": "IntegerLiteral",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 434,
 // CHECK-NEXT:          "col": 21,
 // CHECK-NEXT:          "tokLen": 2
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 434,
 // CHECK-NEXT:          "col": 21,
 // CHECK-NEXT:          "tokLen": 2
 // CHECK-NEXT:         }
@@ -1426,10 +1548,12 @@
 // CHECK-NEXT:        "kind": "IntegerLiteral",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 448,
 // CHECK-NEXT:          "col": 35,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 448,
 // CHECK-NEXT:          "col": 35,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -1449,11 +1573,13 @@
 // CHECK-NEXT:    "kind": "GenericSelectionExpr",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 454,
 // CHECK-NEXT:      "line": 30,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 8
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 487,
 // CHECK-NEXT:      "col": 36,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -1468,10 +1594,12 @@
 // CHECK-NEXT:      "kind": "ImplicitCastExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 463,
 // CHECK-NEXT:        "col": 12,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 463,
 // CHECK-NEXT:        "col": 12,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -1487,10 +1615,12 @@
 // CHECK-NEXT:        "kind": "DeclRefExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 463,
 // CHECK-NEXT:          "col": 12,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 463,
 // CHECK-NEXT:          "col": 12,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -1526,10 +1656,12 @@
 // CHECK-NEXT:        "kind": "IntegerLiteral",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 476,
 // CHECK-NEXT:          "col": 25,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 476,
 // CHECK-NEXT:          "col": 25,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -1558,10 +1690,12 @@
 // CHECK-NEXT:        "kind": "IntegerLiteral",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 485,
 // CHECK-NEXT:          "col": 34,
 // CHECK-NEXT:          "tokLen": 2
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 485,
 // CHECK-NEXT:          "col": 34,
 // CHECK-NEXT:          "tokLen": 2
 // CHECK-NEXT:         }
@@ -1581,11 +1715,13 @@
 // CHECK-NEXT:    "kind": "GenericSelectionExpr",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 492,
 // CHECK-NEXT:      "line": 31,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 8
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 539,
 // CHECK-NEXT:      "col": 50,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -1600,10 +1736,12 @@
 // CHECK-NEXT:      "kind": "ImplicitCastExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 501,
 // CHECK-NEXT:        "col": 12,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 501,
 // CHECK-NEXT:        "col": 12,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -1619,10 +1757,12 @@
 // CHECK-NEXT:        "kind": "DeclRefExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 501,
 // CHECK-NEXT:          "col": 12,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 501,
 // CHECK-NEXT:          "col": 12,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -1666,10 +1806,12 @@
 // CHECK-NEXT:        "kind": "IntegerLiteral",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 510,
 // CHECK-NEXT:          "col": 21,
 // CHECK-NEXT:          "tokLen": 2
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 510,
 // CHECK-NEXT:          "col": 21,
 // CHECK-NEXT:          "tokLen": 2
 // CHECK-NEXT:         }
@@ -1697,10 +1839,12 @@
 // CHECK-NEXT:        "kind": "IntegerLiteral",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 522,
 // CHECK-NEXT:          "col": 33,
 // CHECK-NEXT:          "tokLen": 2
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 522,
 // CHECK-NEXT:          "col": 33,
 // CHECK-NEXT:          "tokLen": 2
 // CHECK-NEXT:         }
@@ -1721,10 +1865,12 @@
 // CHECK-NEXT:        "kind": "IntegerLiteral",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 536,
 // CHECK-NEXT:          "col": 47,
 // CHECK-NEXT:          "tokLen": 3
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 536,
 // CHECK-NEXT:          "col": 47,
 // CHECK-NEXT:          "tokLen": 3
 // CHECK-NEXT:         }
@@ -1744,11 +1890,13 @@
 // CHECK-NEXT:    "kind": "DeclStmt",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 545,
 // CHECK-NEXT:      "line": 33,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 3
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 574,
 // CHECK-NEXT:      "col": 32,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -1758,15 +1906,18 @@
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "VarDecl",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 549,
 // CHECK-NEXT:       "col": 7,
 // CHECK-NEXT:       "tokLen": 1
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 545,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 3
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 573,
 // CHECK-NEXT:        "col": 31,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -1782,10 +1933,12 @@
 // CHECK-NEXT:        "kind": "GenericSelectionExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 553,
 // CHECK-NEXT:          "col": 11,
 // CHECK-NEXT:          "tokLen": 8
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 573,
 // CHECK-NEXT:          "col": 31,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -1800,10 +1953,12 @@
 // CHECK-NEXT:          "kind": "ImplicitCastExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 562,
 // CHECK-NEXT:            "col": 20,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 562,
 // CHECK-NEXT:            "col": 20,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -1819,10 +1974,12 @@
 // CHECK-NEXT:            "kind": "DeclRefExpr",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 562,
 // CHECK-NEXT:              "col": 20,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 562,
 // CHECK-NEXT:              "col": 20,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -1866,10 +2023,12 @@
 // CHECK-NEXT:            "kind": "IntegerLiteral",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 571,
 // CHECK-NEXT:              "col": 29,
 // CHECK-NEXT:              "tokLen": 2
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 571,
 // CHECK-NEXT:              "col": 29,
 // CHECK-NEXT:              "tokLen": 2
 // CHECK-NEXT:             }
@@ -1895,11 +2054,13 @@
 // CHECK:  "kind": "CompoundStmt",
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 608,
 // CHECK-NEXT:    "line": 36,
 // CHECK-NEXT:    "col": 30,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 756,
 // CHECK-NEXT:    "line": 50,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
@@ -1911,11 +2072,13 @@
 // CHECK-NEXT:    "kind": "LabelStmt",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 675,
 // CHECK-NEXT:      "line": 39,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 6
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 685,
 // CHECK-NEXT:      "line": 40,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 1
@@ -1929,10 +2092,12 @@
 // CHECK-NEXT:      "kind": "NullStmt",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 685,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 685,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -1945,11 +2110,13 @@
 // CHECK-NEXT:    "kind": "GotoStmt",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 690,
 // CHECK-NEXT:      "line": 42,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 4
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 695,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 6
 // CHECK-NEXT:     }
@@ -1961,11 +2128,13 @@
 // CHECK-NEXT:    "kind": "LabelStmt",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 704,
 // CHECK-NEXT:      "line": 44,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 6
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 714,
 // CHECK-NEXT:      "line": 45,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 1
@@ -1979,10 +2148,12 @@
 // CHECK-NEXT:      "kind": "IntegerLiteral",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 714,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 714,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -2000,11 +2171,13 @@
 // CHECK-NEXT:    "kind": "DeclStmt",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 720,
 // CHECK-NEXT:      "line": 47,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 4
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 740,
 // CHECK-NEXT:      "col": 23,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -2014,15 +2187,18 @@
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "VarDecl",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 726,
 // CHECK-NEXT:       "col": 9,
 // CHECK-NEXT:       "tokLen": 3
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 720,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 4
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 734,
 // CHECK-NEXT:        "col": 17,
 // CHECK-NEXT:        "tokLen": 6
 // CHECK-NEXT:       }
@@ -2039,10 +2215,12 @@
 // CHECK-NEXT:        "kind": "AddrLabelExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 732,
 // CHECK-NEXT:          "col": 15,
 // CHECK-NEXT:          "tokLen": 2
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 734,
 // CHECK-NEXT:          "col": 17,
 // CHECK-NEXT:          "tokLen": 6
 // CHECK-NEXT:         }
@@ -2063,11 +2241,13 @@
 // CHECK-NEXT:    "kind": "IndirectGotoStmt",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 745,
 // CHECK-NEXT:      "line": 49,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 4
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 751,
 // CHECK-NEXT:      "col": 9,
 // CHECK-NEXT:      "tokLen": 3
 // CHECK-NEXT:     }
@@ -2078,10 +2258,12 @@
 // CHECK-NEXT:      "kind": "ImplicitCastExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 751,
 // CHECK-NEXT:        "col": 9,
 // CHECK-NEXT:        "tokLen": 3
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 751,
 // CHECK-NEXT:        "col": 9,
 // CHECK-NEXT:        "tokLen": 3
 // CHECK-NEXT:       }
@@ -2097,10 +2279,12 @@
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 751,
 // CHECK-NEXT:          "col": 9,
 // CHECK-NEXT:          "tokLen": 3
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 751,
 // CHECK-NEXT:          "col": 9,
 // CHECK-NEXT:          "tokLen": 3
 // CHECK-NEXT:         }
@@ -2116,10 +2300,12 @@
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 751,
 // CHECK-NEXT:            "col": 9,
 // CHECK-NEXT:            "tokLen": 3
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 751,
 // CHECK-NEXT:            "col": 9,
 // CHECK-NEXT:            "tokLen": 3
 // CHECK-NEXT:           }
@@ -2150,10 +2336,12 @@
 // CHECK:  "kind": "CompoundStmt",
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 782,
 // CHECK-NEXT:    "col": 24,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 904,
 // CHECK-NEXT:    "line": 64,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
@@ -2165,11 +2353,13 @@
 // CHECK-NEXT:    "kind": "SwitchStmt",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 786,
 // CHECK-NEXT:      "line": 53,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 6
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 902,
 // CHECK-NEXT:      "line": 63,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 1
@@ -2181,11 +2371,13 @@
 // CHECK-NEXT:      "kind": "ImplicitCastExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 794,
 // CHECK-NEXT:        "line": 53,
 // CHECK-NEXT:        "col": 11,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 794,
 // CHECK-NEXT:        "col": 11,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -2201,10 +2393,12 @@
 // CHECK-NEXT:        "kind": "DeclRefExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 794,
 // CHECK-NEXT:          "col": 11,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 794,
 // CHECK-NEXT:          "col": 11,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -2229,10 +2423,12 @@
 // CHECK-NEXT:      "kind": "CompoundStmt",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 797,
 // CHECK-NEXT:        "col": 14,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 902,
 // CHECK-NEXT:        "line": 63,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
@@ -2244,11 +2440,13 @@
 // CHECK-NEXT:        "kind": "CaseStmt",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 801,
 // CHECK-NEXT:          "line": 54,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 4
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 813,
 // CHECK-NEXT:          "line": 55,
 // CHECK-NEXT:          "col": 5,
 // CHECK-NEXT:          "tokLen": 5
@@ -2260,11 +2458,13 @@
 // CHECK-NEXT:          "kind": "ConstantExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 806,
 // CHECK-NEXT:            "line": 54,
 // CHECK-NEXT:            "col": 8,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 806,
 // CHECK-NEXT:            "col": 8,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -2279,10 +2479,12 @@
 // CHECK-NEXT:            "kind": "IntegerLiteral",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 806,
 // CHECK-NEXT:              "col": 8,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 806,
 // CHECK-NEXT:              "col": 8,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -2300,11 +2502,13 @@
 // CHECK-NEXT:          "kind": "BreakStmt",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 813,
 // CHECK-NEXT:            "line": 55,
 // CHECK-NEXT:            "col": 5,
 // CHECK-NEXT:            "tokLen": 5
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 813,
 // CHECK-NEXT:            "col": 5,
 // CHECK-NEXT:            "tokLen": 5
 // CHECK-NEXT:           }
@@ -2317,11 +2521,13 @@
 // CHECK-NEXT:        "kind": "CaseStmt",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 822,
 // CHECK-NEXT:          "line": 56,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 4
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 844,
 // CHECK-NEXT:          "line": 58,
 // CHECK-NEXT:          "col": 5,
 // CHECK-NEXT:          "tokLen": 5
@@ -2333,11 +2539,13 @@
 // CHECK-NEXT:          "kind": "ConstantExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 827,
 // CHECK-NEXT:            "line": 56,
 // CHECK-NEXT:            "col": 8,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 827,
 // CHECK-NEXT:            "col": 8,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -2352,10 +2560,12 @@
 // CHECK-NEXT:            "kind": "IntegerLiteral",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 827,
 // CHECK-NEXT:              "col": 8,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 827,
 // CHECK-NEXT:              "col": 8,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -2373,11 +2583,13 @@
 // CHECK-NEXT:          "kind": "CaseStmt",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 832,
 // CHECK-NEXT:            "line": 57,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 4
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 844,
 // CHECK-NEXT:            "line": 58,
 // CHECK-NEXT:            "col": 5,
 // CHECK-NEXT:            "tokLen": 5
@@ -2389,11 +2601,13 @@
 // CHECK-NEXT:            "kind": "ConstantExpr",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 837,
 // CHECK-NEXT:              "line": 57,
 // CHECK-NEXT:              "col": 8,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 837,
 // CHECK-NEXT:              "col": 8,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -2408,10 +2622,12 @@
 // CHECK-NEXT:              "kind": "IntegerLiteral",
 // CHECK-NEXT:              "range": {
 // CHECK-NEXT:               "begin": {
+// CHECK-NEXT:                "offset": 837,
 // CHECK-NEXT:                "col": 8,
 // CHECK-NEXT:                "tokLen": 1
 // CHECK-NEXT:               },
 // CHECK-NEXT:               "end": {
+// CHECK-NEXT:                "offset": 837,
 // CHECK-NEXT:                "col": 8,
 // CHECK-NEXT:                "tokLen": 1
 // CHECK-NEXT:               }
@@ -2429,11 +2645,13 @@
 // CHECK-NEXT:            "kind": "BreakStmt",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 844,
 // CHECK-NEXT:              "line": 58,
 // CHECK-NEXT:              "col": 5,
 // CHECK-NEXT:              "tokLen": 5
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 844,
 // CHECK-NEXT:              "col": 5,
 // CHECK-NEXT:              "tokLen": 5
 // CHECK-NEXT:             }
@@ -2448,11 +2666,13 @@
 // CHECK-NEXT:        "kind": "DefaultStmt",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 853,
 // CHECK-NEXT:          "line": 59,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 7
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 866,
 // CHECK-NEXT:          "line": 60,
 // CHECK-NEXT:          "col": 5,
 // CHECK-NEXT:          "tokLen": 5
@@ -2464,10 +2684,12 @@
 // CHECK-NEXT:          "kind": "BreakStmt",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 866,
 // CHECK-NEXT:            "col": 5,
 // CHECK-NEXT:            "tokLen": 5
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 866,
 // CHECK-NEXT:            "col": 5,
 // CHECK-NEXT:            "tokLen": 5
 // CHECK-NEXT:           }
@@ -2480,11 +2702,13 @@
 // CHECK-NEXT:        "kind": "CaseStmt",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 875,
 // CHECK-NEXT:          "line": 61,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 4
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 893,
 // CHECK-NEXT:          "line": 62,
 // CHECK-NEXT:          "col": 5,
 // CHECK-NEXT:          "tokLen": 5
@@ -2497,11 +2721,13 @@
 // CHECK-NEXT:          "kind": "ConstantExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 880,
 // CHECK-NEXT:            "line": 61,
 // CHECK-NEXT:            "col": 8,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 880,
 // CHECK-NEXT:            "col": 8,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -2516,10 +2742,12 @@
 // CHECK-NEXT:            "kind": "IntegerLiteral",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 880,
 // CHECK-NEXT:              "col": 8,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 880,
 // CHECK-NEXT:              "col": 8,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -2537,10 +2765,12 @@
 // CHECK-NEXT:          "kind": "ConstantExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 886,
 // CHECK-NEXT:            "col": 14,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 886,
 // CHECK-NEXT:            "col": 14,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -2555,10 +2785,12 @@
 // CHECK-NEXT:            "kind": "IntegerLiteral",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 886,
 // CHECK-NEXT:              "col": 14,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 886,
 // CHECK-NEXT:              "col": 14,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -2576,11 +2808,13 @@
 // CHECK-NEXT:          "kind": "BreakStmt",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 893,
 // CHECK-NEXT:            "line": 62,
 // CHECK-NEXT:            "col": 5,
 // CHECK-NEXT:            "tokLen": 5
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 893,
 // CHECK-NEXT:            "col": 5,
 // CHECK-NEXT:            "tokLen": 5
 // CHECK-NEXT:           }
@@ -2599,10 +2833,12 @@
 // CHECK:  "kind": "CompoundStmt",
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 928,
 // CHECK-NEXT:    "col": 22,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 1095,
 // CHECK-NEXT:    "line": 91,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
@@ -2614,11 +2850,13 @@
 // CHECK-NEXT:    "kind": "IfStmt",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 932,
 // CHECK-NEXT:      "line": 67,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 2
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 943,
 // CHECK-NEXT:      "line": 68,
 // CHECK-NEXT:      "col": 5,
 // CHECK-NEXT:      "tokLen": 1
@@ -2630,11 +2868,13 @@
 // CHECK-NEXT:      "kind": "ImplicitCastExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 936,
 // CHECK-NEXT:        "line": 67,
 // CHECK-NEXT:        "col": 7,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 936,
 // CHECK-NEXT:        "col": 7,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -2650,10 +2890,12 @@
 // CHECK-NEXT:        "kind": "DeclRefExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 936,
 // CHECK-NEXT:          "col": 7,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 936,
 // CHECK-NEXT:          "col": 7,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -2678,11 +2920,13 @@
 // CHECK-NEXT:      "kind": "NullStmt",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 943,
 // CHECK-NEXT:        "line": 68,
 // CHECK-NEXT:        "col": 5,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 943,
 // CHECK-NEXT:        "col": 5,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -2695,11 +2939,13 @@
 // CHECK-NEXT:    "kind": "IfStmt",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 948,
 // CHECK-NEXT:      "line": 70,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 2
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 956,
 // CHECK-NEXT:      "col": 11,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -2710,10 +2956,12 @@
 // CHECK-NEXT:      "kind": "ImplicitCastExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 952,
 // CHECK-NEXT:        "col": 7,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 952,
 // CHECK-NEXT:        "col": 7,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -2729,10 +2977,12 @@
 // CHECK-NEXT:        "kind": "DeclRefExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 952,
 // CHECK-NEXT:          "col": 7,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 952,
 // CHECK-NEXT:          "col": 7,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -2757,10 +3007,12 @@
 // CHECK-NEXT:      "kind": "CompoundStmt",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 955,
 // CHECK-NEXT:        "col": 10,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 956,
 // CHECK-NEXT:        "col": 11,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -2773,11 +3025,13 @@
 // CHECK-NEXT:    "kind": "IfStmt",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 961,
 // CHECK-NEXT:      "line": 72,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 2
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 985,
 // CHECK-NEXT:      "line": 75,
 // CHECK-NEXT:      "col": 5,
 // CHECK-NEXT:      "tokLen": 1
@@ -2790,11 +3044,13 @@
 // CHECK-NEXT:      "kind": "ImplicitCastExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 965,
 // CHECK-NEXT:        "line": 72,
 // CHECK-NEXT:        "col": 7,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 965,
 // CHECK-NEXT:        "col": 7,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -2810,10 +3066,12 @@
 // CHECK-NEXT:        "kind": "DeclRefExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 965,
 // CHECK-NEXT:          "col": 7,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 965,
 // CHECK-NEXT:          "col": 7,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -2838,11 +3096,13 @@
 // CHECK-NEXT:      "kind": "NullStmt",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 972,
 // CHECK-NEXT:        "line": 73,
 // CHECK-NEXT:        "col": 5,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 972,
 // CHECK-NEXT:        "col": 5,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -2853,11 +3113,13 @@
 // CHECK-NEXT:      "kind": "NullStmt",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 985,
 // CHECK-NEXT:        "line": 75,
 // CHECK-NEXT:        "col": 5,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 985,
 // CHECK-NEXT:        "col": 5,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -2870,11 +3132,13 @@
 // CHECK-NEXT:    "kind": "IfStmt",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 990,
 // CHECK-NEXT:      "line": 77,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 2
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 1008,
 // CHECK-NEXT:      "line": 78,
 // CHECK-NEXT:      "col": 9,
 // CHECK-NEXT:      "tokLen": 1
@@ -2887,11 +3151,13 @@
 // CHECK-NEXT:      "kind": "ImplicitCastExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 994,
 // CHECK-NEXT:        "line": 77,
 // CHECK-NEXT:        "col": 7,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 994,
 // CHECK-NEXT:        "col": 7,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -2907,10 +3173,12 @@
 // CHECK-NEXT:        "kind": "DeclRefExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 994,
 // CHECK-NEXT:          "col": 7,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 994,
 // CHECK-NEXT:          "col": 7,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -2935,10 +3203,12 @@
 // CHECK-NEXT:      "kind": "CompoundStmt",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 997,
 // CHECK-NEXT:        "col": 10,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 998,
 // CHECK-NEXT:        "col": 11,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -2949,11 +3219,13 @@
 // CHECK-NEXT:      "kind": "CompoundStmt",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1007,
 // CHECK-NEXT:        "line": 78,
 // CHECK-NEXT:        "col": 8,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1008,
 // CHECK-NEXT:        "col": 9,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -2966,11 +3238,13 @@
 // CHECK-NEXT:    "kind": "IfStmt",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 1013,
 // CHECK-NEXT:      "line": 80,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 2
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 1044,
 // CHECK-NEXT:      "line": 83,
 // CHECK-NEXT:      "col": 5,
 // CHECK-NEXT:      "tokLen": 1
@@ -2983,11 +3257,13 @@
 // CHECK-NEXT:      "kind": "ImplicitCastExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1017,
 // CHECK-NEXT:        "line": 80,
 // CHECK-NEXT:        "col": 7,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1017,
 // CHECK-NEXT:        "col": 7,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -3003,10 +3279,12 @@
 // CHECK-NEXT:        "kind": "DeclRefExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1017,
 // CHECK-NEXT:          "col": 7,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1017,
 // CHECK-NEXT:          "col": 7,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -3031,11 +3309,13 @@
 // CHECK-NEXT:      "kind": "NullStmt",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1024,
 // CHECK-NEXT:        "line": 81,
 // CHECK-NEXT:        "col": 5,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1024,
 // CHECK-NEXT:        "col": 5,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -3046,11 +3326,13 @@
 // CHECK-NEXT:      "kind": "IfStmt",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1033,
 // CHECK-NEXT:        "line": 82,
 // CHECK-NEXT:        "col": 8,
 // CHECK-NEXT:        "tokLen": 2
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1044,
 // CHECK-NEXT:        "line": 83,
 // CHECK-NEXT:        "col": 5,
 // CHECK-NEXT:        "tokLen": 1
@@ -3062,11 +3344,13 @@
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1037,
 // CHECK-NEXT:          "line": 82,
 // CHECK-NEXT:          "col": 12,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1037,
 // CHECK-NEXT:          "col": 12,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -3082,10 +3366,12 @@
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 1037,
 // CHECK-NEXT:            "col": 12,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 1037,
 // CHECK-NEXT:            "col": 12,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -3110,11 +3396,13 @@
 // CHECK-NEXT:        "kind": "NullStmt",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1044,
 // CHECK-NEXT:          "line": 83,
 // CHECK-NEXT:          "col": 5,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1044,
 // CHECK-NEXT:          "col": 5,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -3129,11 +3417,13 @@
 // CHECK-NEXT:    "kind": "IfStmt",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 1049,
 // CHECK-NEXT:      "line": 85,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 2
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 1093,
 // CHECK-NEXT:      "line": 90,
 // CHECK-NEXT:      "col": 5,
 // CHECK-NEXT:      "tokLen": 1
@@ -3146,11 +3436,13 @@
 // CHECK-NEXT:      "kind": "ImplicitCastExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1053,
 // CHECK-NEXT:        "line": 85,
 // CHECK-NEXT:        "col": 7,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1053,
 // CHECK-NEXT:        "col": 7,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -3166,10 +3458,12 @@
 // CHECK-NEXT:        "kind": "DeclRefExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1053,
 // CHECK-NEXT:          "col": 7,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1053,
 // CHECK-NEXT:          "col": 7,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -3194,11 +3488,13 @@
 // CHECK-NEXT:      "kind": "NullStmt",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1060,
 // CHECK-NEXT:        "line": 86,
 // CHECK-NEXT:        "col": 5,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1060,
 // CHECK-NEXT:        "col": 5,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -3209,11 +3505,13 @@
 // CHECK-NEXT:      "kind": "IfStmt",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1069,
 // CHECK-NEXT:        "line": 87,
 // CHECK-NEXT:        "col": 8,
 // CHECK-NEXT:        "tokLen": 2
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1093,
 // CHECK-NEXT:        "line": 90,
 // CHECK-NEXT:        "col": 5,
 // CHECK-NEXT:        "tokLen": 1
@@ -3226,11 +3524,13 @@
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1073,
 // CHECK-NEXT:          "line": 87,
 // CHECK-NEXT:          "col": 12,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1073,
 // CHECK-NEXT:          "col": 12,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -3246,10 +3546,12 @@
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 1073,
 // CHECK-NEXT:            "col": 12,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 1073,
 // CHECK-NEXT:            "col": 12,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -3274,11 +3576,13 @@
 // CHECK-NEXT:        "kind": "NullStmt",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1080,
 // CHECK-NEXT:          "line": 88,
 // CHECK-NEXT:          "col": 5,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1080,
 // CHECK-NEXT:          "col": 5,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -3289,11 +3593,13 @@
 // CHECK-NEXT:        "kind": "NullStmt",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1093,
 // CHECK-NEXT:          "line": 90,
 // CHECK-NEXT:          "col": 5,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1093,
 // CHECK-NEXT:          "col": 5,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -3310,10 +3616,12 @@
 // CHECK:  "kind": "CompoundStmt",
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 1126,
 // CHECK-NEXT:    "col": 29,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 1322,
 // CHECK-NEXT:    "line": 118,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
@@ -3325,11 +3633,13 @@
 // CHECK-NEXT:    "kind": "WhileStmt",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 1130,
 // CHECK-NEXT:      "line": 94,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 5
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 1144,
 // CHECK-NEXT:      "line": 95,
 // CHECK-NEXT:      "col": 5,
 // CHECK-NEXT:      "tokLen": 1
@@ -3341,11 +3651,13 @@
 // CHECK-NEXT:      "kind": "ImplicitCastExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1137,
 // CHECK-NEXT:        "line": 94,
 // CHECK-NEXT:        "col": 10,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1137,
 // CHECK-NEXT:        "col": 10,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -3361,10 +3673,12 @@
 // CHECK-NEXT:        "kind": "DeclRefExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1137,
 // CHECK-NEXT:          "col": 10,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1137,
 // CHECK-NEXT:          "col": 10,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -3389,11 +3703,13 @@
 // CHECK-NEXT:      "kind": "NullStmt",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1144,
 // CHECK-NEXT:        "line": 95,
 // CHECK-NEXT:        "col": 5,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1144,
 // CHECK-NEXT:        "col": 5,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -3406,11 +3722,13 @@
 // CHECK-NEXT:    "kind": "DoStmt",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 1149,
 // CHECK-NEXT:      "line": 97,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 2
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 1168,
 // CHECK-NEXT:      "line": 99,
 // CHECK-NEXT:      "col": 11,
 // CHECK-NEXT:      "tokLen": 1
@@ -3422,11 +3740,13 @@
 // CHECK-NEXT:      "kind": "NullStmt",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1156,
 // CHECK-NEXT:        "line": 98,
 // CHECK-NEXT:        "col": 5,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1156,
 // CHECK-NEXT:        "col": 5,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -3437,11 +3757,13 @@
 // CHECK-NEXT:      "kind": "ImplicitCastExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1167,
 // CHECK-NEXT:        "line": 99,
 // CHECK-NEXT:        "col": 10,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1167,
 // CHECK-NEXT:        "col": 10,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -3457,10 +3779,12 @@
 // CHECK-NEXT:        "kind": "DeclRefExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1167,
 // CHECK-NEXT:          "col": 10,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1167,
 // CHECK-NEXT:          "col": 10,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -3487,11 +3811,13 @@
 // CHECK-NEXT:    "kind": "ForStmt",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 1174,
 // CHECK-NEXT:      "line": 101,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 3
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 1207,
 // CHECK-NEXT:      "line": 102,
 // CHECK-NEXT:      "col": 5,
 // CHECK-NEXT:      "tokLen": 1
@@ -3503,11 +3829,13 @@
 // CHECK-NEXT:      "kind": "DeclStmt",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1179,
 // CHECK-NEXT:        "line": 101,
 // CHECK-NEXT:        "col": 8,
 // CHECK-NEXT:        "tokLen": 3
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1188,
 // CHECK-NEXT:        "col": 17,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -3517,15 +3845,18 @@
 // CHECK-NEXT:        "id": "0x{{.*}}",
 // CHECK-NEXT:        "kind": "VarDecl",
 // CHECK-NEXT:        "loc": {
+// CHECK-NEXT:         "offset": 1183,
 // CHECK-NEXT:         "col": 12,
 // CHECK-NEXT:         "tokLen": 1
 // CHECK-NEXT:        },
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1179,
 // CHECK-NEXT:          "col": 8,
 // CHECK-NEXT:          "tokLen": 3
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1187,
 // CHECK-NEXT:          "col": 16,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -3542,10 +3873,12 @@
 // CHECK-NEXT:          "kind": "IntegerLiteral",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 1187,
 // CHECK-NEXT:            "col": 16,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 1187,
 // CHECK-NEXT:            "col": 16,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -3566,10 +3899,12 @@
 // CHECK-NEXT:      "kind": "BinaryOperator",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1190,
 // CHECK-NEXT:        "col": 19,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1194,
 // CHECK-NEXT:        "col": 23,
 // CHECK-NEXT:        "tokLen": 2
 // CHECK-NEXT:       }
@@ -3585,10 +3920,12 @@
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1190,
 // CHECK-NEXT:          "col": 19,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1190,
 // CHECK-NEXT:          "col": 19,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -3604,10 +3941,12 @@
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 1190,
 // CHECK-NEXT:            "col": 19,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 1190,
 // CHECK-NEXT:            "col": 19,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -3632,10 +3971,12 @@
 // CHECK-NEXT:        "kind": "IntegerLiteral",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1194,
 // CHECK-NEXT:          "col": 23,
 // CHECK-NEXT:          "tokLen": 2
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1194,
 // CHECK-NEXT:          "col": 23,
 // CHECK-NEXT:          "tokLen": 2
 // CHECK-NEXT:         }
@@ -3653,10 +3994,12 @@
 // CHECK-NEXT:      "kind": "UnaryOperator",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1198,
 // CHECK-NEXT:        "col": 27,
 // CHECK-NEXT:        "tokLen": 2
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1200,
 // CHECK-NEXT:        "col": 29,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -3673,10 +4016,12 @@
 // CHECK-NEXT:        "kind": "DeclRefExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1200,
 // CHECK-NEXT:          "col": 29,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1200,
 // CHECK-NEXT:          "col": 29,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -3701,11 +4046,13 @@
 // CHECK-NEXT:      "kind": "NullStmt",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1207,
 // CHECK-NEXT:        "line": 102,
 // CHECK-NEXT:        "col": 5,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1207,
 // CHECK-NEXT:        "col": 5,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -3718,11 +4065,13 @@
 // CHECK-NEXT:    "kind": "ForStmt",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 1212,
 // CHECK-NEXT:      "line": 104,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 3
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 1230,
 // CHECK-NEXT:      "line": 105,
 // CHECK-NEXT:      "col": 5,
 // CHECK-NEXT:      "tokLen": 1
@@ -3734,11 +4083,13 @@
 // CHECK-NEXT:      "kind": "ImplicitCastExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1217,
 // CHECK-NEXT:        "line": 104,
 // CHECK-NEXT:        "col": 8,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1217,
 // CHECK-NEXT:        "col": 8,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -3754,10 +4105,12 @@
 // CHECK-NEXT:        "kind": "DeclRefExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1217,
 // CHECK-NEXT:          "col": 8,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1217,
 // CHECK-NEXT:          "col": 8,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -3783,10 +4136,12 @@
 // CHECK-NEXT:      "kind": "ImplicitCastExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1220,
 // CHECK-NEXT:        "col": 11,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1220,
 // CHECK-NEXT:        "col": 11,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -3802,10 +4157,12 @@
 // CHECK-NEXT:        "kind": "DeclRefExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1220,
 // CHECK-NEXT:          "col": 11,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1220,
 // CHECK-NEXT:          "col": 11,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -3830,10 +4187,12 @@
 // CHECK-NEXT:      "kind": "ImplicitCastExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1223,
 // CHECK-NEXT:        "col": 14,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1223,
 // CHECK-NEXT:        "col": 14,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -3849,10 +4208,12 @@
 // CHECK-NEXT:        "kind": "DeclRefExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1223,
 // CHECK-NEXT:          "col": 14,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1223,
 // CHECK-NEXT:          "col": 14,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -3877,11 +4238,13 @@
 // CHECK-NEXT:      "kind": "NullStmt",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1230,
 // CHECK-NEXT:        "line": 105,
 // CHECK-NEXT:        "col": 5,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1230,
 // CHECK-NEXT:        "col": 5,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -3894,11 +4257,13 @@
 // CHECK-NEXT:    "kind": "ForStmt",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 1235,
 // CHECK-NEXT:      "line": 107,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 3
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 1257,
 // CHECK-NEXT:      "line": 108,
 // CHECK-NEXT:      "col": 5,
 // CHECK-NEXT:      "tokLen": 1
@@ -3912,11 +4277,13 @@
 // CHECK-NEXT:      "kind": "ImplicitCastExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1242,
 // CHECK-NEXT:        "line": 107,
 // CHECK-NEXT:        "col": 10,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1242,
 // CHECK-NEXT:        "col": 10,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -3932,10 +4299,12 @@
 // CHECK-NEXT:        "kind": "DeclRefExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1242,
 // CHECK-NEXT:          "col": 10,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1242,
 // CHECK-NEXT:          "col": 10,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -3960,10 +4329,12 @@
 // CHECK-NEXT:      "kind": "BinaryOperator",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1245,
 // CHECK-NEXT:        "col": 13,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1250,
 // CHECK-NEXT:        "col": 18,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -3979,10 +4350,12 @@
 // CHECK-NEXT:        "kind": "DeclRefExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1245,
 // CHECK-NEXT:          "col": 13,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1245,
 // CHECK-NEXT:          "col": 13,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -4005,10 +4378,12 @@
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1249,
 // CHECK-NEXT:          "col": 17,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1250,
 // CHECK-NEXT:          "col": 18,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -4024,10 +4399,12 @@
 // CHECK-NEXT:          "kind": "UnaryOperator",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 1249,
 // CHECK-NEXT:            "col": 17,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 1250,
 // CHECK-NEXT:            "col": 18,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -4045,10 +4422,12 @@
 // CHECK-NEXT:            "kind": "ImplicitCastExpr",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 1250,
 // CHECK-NEXT:              "col": 18,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 1250,
 // CHECK-NEXT:              "col": 18,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -4064,10 +4443,12 @@
 // CHECK-NEXT:              "kind": "DeclRefExpr",
 // CHECK-NEXT:              "range": {
 // CHECK-NEXT:               "begin": {
+// CHECK-NEXT:                "offset": 1250,
 // CHECK-NEXT:                "col": 18,
 // CHECK-NEXT:                "tokLen": 1
 // CHECK-NEXT:               },
 // CHECK-NEXT:               "end": {
+// CHECK-NEXT:                "offset": 1250,
 // CHECK-NEXT:                "col": 18,
 // CHECK-NEXT:                "tokLen": 1
 // CHECK-NEXT:               }
@@ -4098,11 +4479,13 @@
 // CHECK-NEXT:      "kind": "NullStmt",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1257,
 // CHECK-NEXT:        "line": 108,
 // CHECK-NEXT:        "col": 5,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1257,
 // CHECK-NEXT:        "col": 5,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -4115,11 +4498,13 @@
 // CHECK-NEXT:    "kind": "ForStmt",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 1262,
 // CHECK-NEXT:      "line": 110,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 3
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 1277,
 // CHECK-NEXT:      "line": 111,
 // CHECK-NEXT:      "col": 5,
 // CHECK-NEXT:      "tokLen": 1
@@ -4133,11 +4518,13 @@
 // CHECK-NEXT:      "kind": "ImplicitCastExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1269,
 // CHECK-NEXT:        "line": 110,
 // CHECK-NEXT:        "col": 10,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1269,
 // CHECK-NEXT:        "col": 10,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -4153,10 +4540,12 @@
 // CHECK-NEXT:        "kind": "DeclRefExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1269,
 // CHECK-NEXT:          "col": 10,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1269,
 // CHECK-NEXT:          "col": 10,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -4182,11 +4571,13 @@
 // CHECK-NEXT:      "kind": "NullStmt",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1277,
 // CHECK-NEXT:        "line": 111,
 // CHECK-NEXT:        "col": 5,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1277,
 // CHECK-NEXT:        "col": 5,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -4199,11 +4590,13 @@
 // CHECK-NEXT:    "kind": "ForStmt",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 1282,
 // CHECK-NEXT:      "line": 113,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 3
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 1302,
 // CHECK-NEXT:      "line": 114,
 // CHECK-NEXT:      "col": 5,
 // CHECK-NEXT:      "tokLen": 1
@@ -4218,11 +4611,13 @@
 // CHECK-NEXT:      "kind": "BinaryOperator",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1290,
 // CHECK-NEXT:        "line": 113,
 // CHECK-NEXT:        "col": 11,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1295,
 // CHECK-NEXT:        "col": 16,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -4238,10 +4633,12 @@
 // CHECK-NEXT:        "kind": "DeclRefExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1290,
 // CHECK-NEXT:          "col": 11,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1290,
 // CHECK-NEXT:          "col": 11,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -4264,10 +4661,12 @@
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1294,
 // CHECK-NEXT:          "col": 15,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1295,
 // CHECK-NEXT:          "col": 16,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -4283,10 +4682,12 @@
 // CHECK-NEXT:          "kind": "UnaryOperator",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 1294,
 // CHECK-NEXT:            "col": 15,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 1295,
 // CHECK-NEXT:            "col": 16,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -4304,10 +4705,12 @@
 // CHECK-NEXT:            "kind": "ImplicitCastExpr",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 1295,
 // CHECK-NEXT:              "col": 16,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 1295,
 // CHECK-NEXT:              "col": 16,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -4323,10 +4726,12 @@
 // CHECK-NEXT:              "kind": "DeclRefExpr",
 // CHECK-NEXT:              "range": {
 // CHECK-NEXT:               "begin": {
+// CHECK-NEXT:                "offset": 1295,
 // CHECK-NEXT:                "col": 16,
 // CHECK-NEXT:                "tokLen": 1
 // CHECK-NEXT:               },
 // CHECK-NEXT:               "end": {
+// CHECK-NEXT:                "offset": 1295,
 // CHECK-NEXT:                "col": 16,
 // CHECK-NEXT:                "tokLen": 1
 // CHECK-NEXT:               }
@@ -4357,11 +4762,13 @@
 // CHECK-NEXT:      "kind": "NullStmt",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1302,
 // CHECK-NEXT:        "line": 114,
 // CHECK-NEXT:        "col": 5,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1302,
 // CHECK-NEXT:        "col": 5,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -4374,11 +4781,13 @@
 // CHECK-NEXT:    "kind": "ForStmt",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 1307,
 // CHECK-NEXT:      "line": 116,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 3
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 1320,
 // CHECK-NEXT:      "line": 117,
 // CHECK-NEXT:      "col": 5,
 // CHECK-NEXT:      "tokLen": 1
@@ -4394,10 +4803,12 @@
 // CHECK-NEXT:      "kind": "NullStmt",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1320,
 // CHECK-NEXT:        "col": 5,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1320,
 // CHECK-NEXT:        "col": 5,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -4412,11 +4823,13 @@
 // CHECK:  "kind": "CompoundStmt",
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 1346,
 // CHECK-NEXT:    "line": 120,
 // CHECK-NEXT:    "col": 22,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 1490,
 // CHECK-NEXT:    "line": 130,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
@@ -4428,11 +4841,13 @@
 // CHECK-NEXT:    "kind": "WhileStmt",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 1414,
 // CHECK-NEXT:      "line": 123,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 5
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 1453,
 // CHECK-NEXT:      "line": 126,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 1
@@ -4444,11 +4859,13 @@
 // CHECK-NEXT:      "kind": "IntegerLiteral",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1421,
 // CHECK-NEXT:        "line": 123,
 // CHECK-NEXT:        "col": 10,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1421,
 // CHECK-NEXT:        "col": 10,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -4464,10 +4881,12 @@
 // CHECK-NEXT:      "kind": "CompoundStmt",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1424,
 // CHECK-NEXT:        "col": 13,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1453,
 // CHECK-NEXT:        "line": 126,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
@@ -4479,11 +4898,13 @@
 // CHECK-NEXT:        "kind": "ContinueStmt",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1430,
 // CHECK-NEXT:          "line": 124,
 // CHECK-NEXT:          "col": 5,
 // CHECK-NEXT:          "tokLen": 8
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1430,
 // CHECK-NEXT:          "col": 5,
 // CHECK-NEXT:          "tokLen": 8
 // CHECK-NEXT:         }
@@ -4494,11 +4915,13 @@
 // CHECK-NEXT:        "kind": "BreakStmt",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1444,
 // CHECK-NEXT:          "line": 125,
 // CHECK-NEXT:          "col": 5,
 // CHECK-NEXT:          "tokLen": 5
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1444,
 // CHECK-NEXT:          "col": 5,
 // CHECK-NEXT:          "tokLen": 5
 // CHECK-NEXT:         }
@@ -4513,11 +4936,13 @@
 // CHECK-NEXT:    "kind": "ReturnStmt",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 1457,
 // CHECK-NEXT:      "line": 127,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 6
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 1457,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 6
 // CHECK-NEXT:     }
@@ -4528,11 +4953,13 @@
 // CHECK-NEXT:    "kind": "ReturnStmt",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 1468,
 // CHECK-NEXT:      "line": 129,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 6
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 1487,
 // CHECK-NEXT:      "col": 22,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -4543,10 +4970,12 @@
 // CHECK-NEXT:      "kind": "CallExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1475,
 // CHECK-NEXT:        "col": 10,
 // CHECK-NEXT:        "tokLen": 10
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1487,
 // CHECK-NEXT:        "col": 22,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -4561,10 +4990,12 @@
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1475,
 // CHECK-NEXT:          "col": 10,
 // CHECK-NEXT:          "tokLen": 10
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1475,
 // CHECK-NEXT:          "col": 10,
 // CHECK-NEXT:          "tokLen": 10
 // CHECK-NEXT:         }
@@ -4580,10 +5011,12 @@
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 1475,
 // CHECK-NEXT:            "col": 10,
 // CHECK-NEXT:            "tokLen": 10
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 1475,
 // CHECK-NEXT:            "col": 10,
 // CHECK-NEXT:            "tokLen": 10
 // CHECK-NEXT:           }
@@ -4608,10 +5041,12 @@
 // CHECK-NEXT:        "kind": "IntegerLiteral",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1486,
 // CHECK-NEXT:          "col": 21,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1486,
 // CHECK-NEXT:          "col": 21,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -4633,11 +5068,13 @@
 // CHECK:  "kind": "CompoundStmt",
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 1518,
 // CHECK-NEXT:    "line": 132,
 // CHECK-NEXT:    "col": 26,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 1542,
 // CHECK-NEXT:    "line": 134,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
@@ -4649,11 +5086,13 @@
 // CHECK-NEXT:    "kind": "StmtExpr",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 1522,
 // CHECK-NEXT:      "line": 133,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 1539,
 // CHECK-NEXT:      "col": 20,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -4668,10 +5107,12 @@
 // CHECK-NEXT:      "kind": "CompoundStmt",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1523,
 // CHECK-NEXT:        "col": 4,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1538,
 // CHECK-NEXT:        "col": 19,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -4682,10 +5123,12 @@
 // CHECK-NEXT:        "kind": "DeclStmt",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1524,
 // CHECK-NEXT:          "col": 5,
 // CHECK-NEXT:          "tokLen": 3
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1534,
 // CHECK-NEXT:          "col": 15,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -4695,15 +5138,18 @@
 // CHECK-NEXT:          "id": "0x{{.*}}",
 // CHECK-NEXT:          "kind": "VarDecl",
 // CHECK-NEXT:          "loc": {
+// CHECK-NEXT:           "offset": 1528,
 // CHECK-NEXT:           "col": 9,
 // CHECK-NEXT:           "tokLen": 1
 // CHECK-NEXT:          },
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 1524,
 // CHECK-NEXT:            "col": 5,
 // CHECK-NEXT:            "tokLen": 3
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 1532,
 // CHECK-NEXT:            "col": 13,
 // CHECK-NEXT:            "tokLen": 2
 // CHECK-NEXT:           }
@@ -4720,10 +5166,12 @@
 // CHECK-NEXT:            "kind": "IntegerLiteral",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 1532,
 // CHECK-NEXT:              "col": 13,
 // CHECK-NEXT:              "tokLen": 2
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 1532,
 // CHECK-NEXT:              "col": 13,
 // CHECK-NEXT:              "tokLen": 2
 // CHECK-NEXT:             }
@@ -4743,10 +5191,12 @@
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1536,
 // CHECK-NEXT:          "col": 17,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1536,
 // CHECK-NEXT:          "col": 17,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -4762,10 +5212,12 @@
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 1536,
 // CHECK-NEXT:            "col": 17,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 1536,
 // CHECK-NEXT:            "col": 17,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -4796,11 +5248,13 @@
 // CHECK:  "kind": "CompoundStmt",
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 1572,
 // CHECK-NEXT:    "line": 136,
 // CHECK-NEXT:    "col": 28,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 1660,
 // CHECK-NEXT:    "line": 148,
 // CHECK-NEXT:    "presumedLine": 200003,
 // CHECK-NEXT:    "col": 1,
@@ -4813,11 +5267,13 @@
 // CHECK-NEXT:    "kind": "DeclStmt",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 1576,
 // CHECK-NEXT:      "line": 137,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 3
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 1581,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -4827,15 +5283,18 @@
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "VarDecl",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 1580,
 // CHECK-NEXT:       "col": 7,
 // CHECK-NEXT:       "tokLen": 1
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1576,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 3
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1580,
 // CHECK-NEXT:        "col": 7,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -4852,12 +5311,14 @@
 // CHECK-NEXT:    "kind": "DeclStmt",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 1617,
 // CHECK-NEXT:      "line": 142,
 // CHECK-NEXT:      "presumedLine": 100000,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 3
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 1622,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -4867,15 +5328,18 @@
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "VarDecl",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 1621,
 // CHECK-NEXT:       "col": 7,
 // CHECK-NEXT:       "tokLen": 1
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1617,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 3
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1621,
 // CHECK-NEXT:        "col": 7,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -4893,12 +5357,14 @@
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
 // CHECK-NEXT:      "spellingLoc": {
+// CHECK-NEXT:       "offset": 1644,
 // CHECK-NEXT:       "line": 145,
 // CHECK-NEXT:       "presumedLine": 200000,
 // CHECK-NEXT:       "col": 7,
 // CHECK-NEXT:       "tokLen": 1
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "expansionLoc": {
+// CHECK-NEXT:       "offset": 1640,
 // CHECK-NEXT:       "col": 3,
 // CHECK-NEXT:       "tokLen": 3,
 // CHECK-NEXT:       "isMacroArgExpansion": true
@@ -4906,10 +5372,12 @@
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
 // CHECK-NEXT:      "spellingLoc": {
+// CHECK-NEXT:       "offset": 1644,
 // CHECK-NEXT:       "col": 7,
 // CHECK-NEXT:       "tokLen": 1
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "expansionLoc": {
+// CHECK-NEXT:       "offset": 1640,
 // CHECK-NEXT:       "col": 3,
 // CHECK-NEXT:       "tokLen": 3,
 // CHECK-NEXT:       "isMacroArgExpansion": true
diff --git a/test/AST/ast-dump-stmt-json.cpp b/test/AST/ast-dump-stmt-json.cpp
index 4b0959a..07ddc62 100644
--- a/test/AST/ast-dump-stmt-json.cpp
+++ b/test/AST/ast-dump-stmt-json.cpp
@@ -128,16 +128,19 @@
 
 // CHECK:  "kind": "FunctionDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 125,
 // CHECK-NEXT:   "line": 4,
 // CHECK-NEXT:   "col": 6,
 // CHECK-NEXT:   "tokLen": 8
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 120,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 4
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 137,
 // CHECK-NEXT:    "col": 18,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   }
@@ -153,10 +156,12 @@
 // CHECK-NEXT:    "kind": "CompoundStmt",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 136,
 // CHECK-NEXT:      "col": 17,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 137,
 // CHECK-NEXT:      "col": 18,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -168,16 +173,19 @@
 
 // CHECK:  "kind": "UsingDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 164,
 // CHECK-NEXT:   "line": 7,
 // CHECK-NEXT:   "col": 10,
 // CHECK-NEXT:   "tokLen": 8
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 155,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 5
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 164,
 // CHECK-NEXT:    "col": 10,
 // CHECK-NEXT:    "tokLen": 8
 // CHECK-NEXT:   }
@@ -188,15 +196,18 @@
 
 // CHECK:  "kind": "UsingShadowDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 164,
 // CHECK-NEXT:   "col": 10,
 // CHECK-NEXT:   "tokLen": 8
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 164,
 // CHECK-NEXT:    "col": 10,
 // CHECK-NEXT:    "tokLen": 8
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 164,
 // CHECK-NEXT:    "col": 10,
 // CHECK-NEXT:    "tokLen": 8
 // CHECK-NEXT:   }
@@ -215,16 +226,19 @@
 
 // CHECK:  "kind": "UsingDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 183,
 // CHECK-NEXT:   "line": 8,
 // CHECK-NEXT:   "col": 10,
 // CHECK-NEXT:   "tokLen": 8
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 174,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 5
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 183,
 // CHECK-NEXT:    "col": 10,
 // CHECK-NEXT:    "tokLen": 8
 // CHECK-NEXT:   }
@@ -235,15 +249,18 @@
 
 // CHECK:  "kind": "UsingShadowDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 183,
 // CHECK-NEXT:   "col": 10,
 // CHECK-NEXT:   "tokLen": 8
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 183,
 // CHECK-NEXT:    "col": 10,
 // CHECK-NEXT:    "tokLen": 8
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 183,
 // CHECK-NEXT:    "col": 10,
 // CHECK-NEXT:    "tokLen": 8
 // CHECK-NEXT:   }
@@ -262,16 +279,19 @@
 
 // CHECK:  "kind": "FunctionDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 198,
 // CHECK-NEXT:   "line": 9,
 // CHECK-NEXT:   "col": 6,
 // CHECK-NEXT:   "tokLen": 12
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 193,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 4
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 258,
 // CHECK-NEXT:    "line": 12,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
@@ -287,11 +307,13 @@
 // CHECK-NEXT:    "kind": "CompoundStmt",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 213,
 // CHECK-NEXT:      "line": 9,
 // CHECK-NEXT:      "col": 21,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 258,
 // CHECK-NEXT:      "line": 12,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 1
@@ -303,11 +325,13 @@
 // CHECK-NEXT:      "kind": "DeclStmt",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 217,
 // CHECK-NEXT:        "line": 10,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 4
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 240,
 // CHECK-NEXT:        "col": 26,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -317,15 +341,18 @@
 // CHECK-NEXT:        "id": "0x{{.*}}",
 // CHECK-NEXT:        "kind": "VarDecl",
 // CHECK-NEXT:        "loc": {
+// CHECK-NEXT:         "offset": 224,
 // CHECK-NEXT:         "col": 10,
 // CHECK-NEXT:         "tokLen": 1
 // CHECK-NEXT:        },
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 217,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 4
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 232,
 // CHECK-NEXT:          "col": 18,
 // CHECK-NEXT:          "tokLen": 8
 // CHECK-NEXT:         }
@@ -341,10 +368,12 @@
 // CHECK-NEXT:          "kind": "UnaryOperator",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 231,
 // CHECK-NEXT:            "col": 17,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 232,
 // CHECK-NEXT:            "col": 18,
 // CHECK-NEXT:            "tokLen": 8
 // CHECK-NEXT:           }
@@ -362,10 +391,12 @@
 // CHECK-NEXT:            "kind": "DeclRefExpr",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 232,
 // CHECK-NEXT:              "col": 18,
 // CHECK-NEXT:              "tokLen": 8
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 232,
 // CHECK-NEXT:              "col": 18,
 // CHECK-NEXT:              "tokLen": 8
 // CHECK-NEXT:             }
@@ -399,11 +430,13 @@
 // CHECK-NEXT:      "kind": "BinaryOperator",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 244,
 // CHECK-NEXT:        "line": 11,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 8
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 255,
 // CHECK-NEXT:        "col": 14,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -419,10 +452,12 @@
 // CHECK-NEXT:        "kind": "DeclRefExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 244,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 8
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 244,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 8
 // CHECK-NEXT:         }
@@ -450,10 +485,12 @@
 // CHECK-NEXT:        "kind": "IntegerLiteral",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 255,
 // CHECK-NEXT:          "col": 14,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 255,
 // CHECK-NEXT:          "col": 14,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -474,16 +511,19 @@
 
 // CHECK:  "kind": "FunctionDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 266,
 // CHECK-NEXT:   "line": 14,
 // CHECK-NEXT:   "col": 6,
 // CHECK-NEXT:   "tokLen": 10
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 261,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 4
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 315,
 // CHECK-NEXT:    "line": 19,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
@@ -499,11 +539,13 @@
 // CHECK-NEXT:    "kind": "CompoundStmt",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 279,
 // CHECK-NEXT:      "line": 14,
 // CHECK-NEXT:      "col": 19,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 315,
 // CHECK-NEXT:      "line": 19,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 1
@@ -515,11 +557,13 @@
 // CHECK-NEXT:      "kind": "CXXTryStmt",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 283,
 // CHECK-NEXT:        "line": 15,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 3
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 313,
 // CHECK-NEXT:        "line": 18,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
@@ -531,11 +575,13 @@
 // CHECK-NEXT:        "kind": "CompoundStmt",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 287,
 // CHECK-NEXT:          "line": 15,
 // CHECK-NEXT:          "col": 7,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 291,
 // CHECK-NEXT:          "line": 16,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
@@ -547,11 +593,13 @@
 // CHECK-NEXT:        "kind": "CXXCatchStmt",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 295,
 // CHECK-NEXT:          "line": 17,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 5
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 313,
 // CHECK-NEXT:          "line": 18,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
@@ -562,16 +610,19 @@
 // CHECK-NEXT:          "id": "0x{{.*}}",
 // CHECK-NEXT:          "kind": "VarDecl",
 // CHECK-NEXT:          "loc": {
+// CHECK-NEXT:           "offset": 306,
 // CHECK-NEXT:           "line": 17,
 // CHECK-NEXT:           "col": 14,
 // CHECK-NEXT:           "tokLen": 1
 // CHECK-NEXT:          },
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 302,
 // CHECK-NEXT:            "col": 10,
 // CHECK-NEXT:            "tokLen": 3
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 306,
 // CHECK-NEXT:            "col": 14,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -586,10 +637,12 @@
 // CHECK-NEXT:          "kind": "CompoundStmt",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 309,
 // CHECK-NEXT:            "col": 17,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 313,
 // CHECK-NEXT:            "line": 18,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
@@ -608,16 +661,19 @@
 
 // CHECK:  "kind": "FunctionDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 323,
 // CHECK-NEXT:   "line": 21,
 // CHECK-NEXT:   "col": 6,
 // CHECK-NEXT:   "tokLen": 10
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 318,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 4
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 370,
 // CHECK-NEXT:    "line": 26,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
@@ -633,11 +689,13 @@
 // CHECK-NEXT:    "kind": "CompoundStmt",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 336,
 // CHECK-NEXT:      "line": 21,
 // CHECK-NEXT:      "col": 19,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 370,
 // CHECK-NEXT:      "line": 26,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 1
@@ -649,11 +707,13 @@
 // CHECK-NEXT:      "kind": "CXXTryStmt",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 340,
 // CHECK-NEXT:        "line": 22,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 3
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 368,
 // CHECK-NEXT:        "line": 25,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
@@ -665,11 +725,13 @@
 // CHECK-NEXT:        "kind": "CompoundStmt",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 344,
 // CHECK-NEXT:          "line": 22,
 // CHECK-NEXT:          "col": 7,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 348,
 // CHECK-NEXT:          "line": 23,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
@@ -681,11 +743,13 @@
 // CHECK-NEXT:        "kind": "CXXCatchStmt",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 352,
 // CHECK-NEXT:          "line": 24,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 5
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 368,
 // CHECK-NEXT:          "line": 25,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
@@ -693,18 +757,20 @@
 // CHECK-NEXT:        },
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
-// CHECK-NEXT:          "id": "0x{{.*}}"
+// CHECK-NEXT:          "id": "0x0"
 // CHECK-NEXT:         },
 // CHECK-NEXT:         {
 // CHECK-NEXT:          "id": "0x{{.*}}",
 // CHECK-NEXT:          "kind": "CompoundStmt",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 364,
 // CHECK-NEXT:            "line": 24,
 // CHECK-NEXT:            "col": 15,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 368,
 // CHECK-NEXT:            "line": 25,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
@@ -723,16 +789,19 @@
 
 // CHECK:  "kind": "FunctionDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 378,
 // CHECK-NEXT:   "line": 28,
 // CHECK-NEXT:   "col": 6,
 // CHECK-NEXT:   "tokLen": 19
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 373,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 4
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 502,
 // CHECK-NEXT:    "line": 36,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
@@ -748,11 +817,13 @@
 // CHECK-NEXT:    "kind": "CompoundStmt",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 400,
 // CHECK-NEXT:      "line": 28,
 // CHECK-NEXT:      "col": 28,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 502,
 // CHECK-NEXT:      "line": 36,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 1
@@ -764,11 +835,13 @@
 // CHECK-NEXT:      "kind": "DeclStmt",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 404,
 // CHECK-NEXT:        "line": 29,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 3
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 410,
 // CHECK-NEXT:        "col": 9,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -778,15 +851,18 @@
 // CHECK-NEXT:        "id": "0x{{.*}}",
 // CHECK-NEXT:        "kind": "VarDecl",
 // CHECK-NEXT:        "loc": {
+// CHECK-NEXT:         "offset": 409,
 // CHECK-NEXT:         "col": 8,
 // CHECK-NEXT:         "tokLen": 1
 // CHECK-NEXT:        },
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 404,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 3
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 409,
 // CHECK-NEXT:          "col": 8,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -804,11 +880,13 @@
 // CHECK-NEXT:      "kind": "BinaryOperator",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 414,
 // CHECK-NEXT:        "line": 30,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 422,
 // CHECK-NEXT:        "col": 11,
 // CHECK-NEXT:        "tokLen": 3
 // CHECK-NEXT:       }
@@ -824,10 +902,12 @@
 // CHECK-NEXT:        "kind": "DeclRefExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 414,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 414,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -850,10 +930,12 @@
 // CHECK-NEXT:        "kind": "CXXNewExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 418,
 // CHECK-NEXT:          "col": 7,
 // CHECK-NEXT:          "tokLen": 3
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 422,
 // CHECK-NEXT:          "col": 11,
 // CHECK-NEXT:          "tokLen": 3
 // CHECK-NEXT:         }
@@ -878,11 +960,13 @@
 // CHECK-NEXT:      "kind": "CXXDeleteExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 429,
 // CHECK-NEXT:        "line": 31,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 6
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 436,
 // CHECK-NEXT:        "col": 10,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -905,10 +989,12 @@
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 436,
 // CHECK-NEXT:          "col": 10,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 436,
 // CHECK-NEXT:          "col": 10,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -924,10 +1010,12 @@
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 436,
 // CHECK-NEXT:            "col": 10,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 436,
 // CHECK-NEXT:            "col": 10,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -954,11 +1042,13 @@
 // CHECK-NEXT:      "kind": "BinaryOperator",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 441,
 // CHECK-NEXT:        "line": 32,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 454,
 // CHECK-NEXT:        "col": 16,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -974,10 +1064,12 @@
 // CHECK-NEXT:        "kind": "DeclRefExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 441,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 441,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -1000,10 +1092,12 @@
 // CHECK-NEXT:        "kind": "CXXNewExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 445,
 // CHECK-NEXT:          "col": 7,
 // CHECK-NEXT:          "tokLen": 3
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 454,
 // CHECK-NEXT:          "col": 16,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -1027,10 +1121,12 @@
 // CHECK-NEXT:          "kind": "ImplicitCastExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 453,
 // CHECK-NEXT:            "col": 15,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 453,
 // CHECK-NEXT:            "col": 15,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -1046,10 +1142,12 @@
 // CHECK-NEXT:            "kind": "IntegerLiteral",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 453,
 // CHECK-NEXT:              "col": 15,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 453,
 // CHECK-NEXT:              "col": 15,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -1071,11 +1169,13 @@
 // CHECK-NEXT:      "kind": "CXXDeleteExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 459,
 // CHECK-NEXT:        "line": 33,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 6
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 468,
 // CHECK-NEXT:        "col": 12,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -1100,10 +1200,12 @@
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 468,
 // CHECK-NEXT:          "col": 12,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 468,
 // CHECK-NEXT:          "col": 12,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -1119,10 +1221,12 @@
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 468,
 // CHECK-NEXT:            "col": 12,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 468,
 // CHECK-NEXT:            "col": 12,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -1149,11 +1253,13 @@
 // CHECK-NEXT:      "kind": "BinaryOperator",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 473,
 // CHECK-NEXT:        "line": 34,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 483,
 // CHECK-NEXT:        "col": 13,
 // CHECK-NEXT:        "tokLen": 3
 // CHECK-NEXT:       }
@@ -1169,10 +1275,12 @@
 // CHECK-NEXT:        "kind": "DeclRefExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 473,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 473,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -1195,10 +1303,12 @@
 // CHECK-NEXT:        "kind": "CXXNewExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 477,
 // CHECK-NEXT:          "col": 7,
 // CHECK-NEXT:          "tokLen": 2
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 483,
 // CHECK-NEXT:          "col": 13,
 // CHECK-NEXT:          "tokLen": 3
 // CHECK-NEXT:         }
@@ -1224,11 +1334,13 @@
 // CHECK-NEXT:      "kind": "CXXDeleteExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 490,
 // CHECK-NEXT:        "line": 35,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 2
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 499,
 // CHECK-NEXT:        "col": 12,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -1252,10 +1364,12 @@
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 499,
 // CHECK-NEXT:          "col": 12,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 499,
 // CHECK-NEXT:          "col": 12,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -1271,10 +1385,12 @@
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 499,
 // CHECK-NEXT:            "col": 12,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 499,
 // CHECK-NEXT:            "col": 12,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -1664,17 +1780,20 @@
 
 // CHECK:  "kind": "FunctionTemplateDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 598,
 // CHECK-NEXT:   "line": 40,
 // CHECK-NEXT:   "col": 6,
 // CHECK-NEXT:   "tokLen": 27
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 571,
 // CHECK-NEXT:    "line": 39,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 8
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 658,
 // CHECK-NEXT:    "line": 43,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
@@ -1686,16 +1805,19 @@
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "TemplateTypeParmDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 590,
 // CHECK-NEXT:     "line": 39,
 // CHECK-NEXT:     "col": 20,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 581,
 // CHECK-NEXT:      "col": 11,
 // CHECK-NEXT:      "tokLen": 8
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 590,
 // CHECK-NEXT:      "col": 20,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -1710,16 +1832,19 @@
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "FunctionDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 598,
 // CHECK-NEXT:     "line": 40,
 // CHECK-NEXT:     "col": 6,
 // CHECK-NEXT:     "tokLen": 27
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 593,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 4
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 658,
 // CHECK-NEXT:      "line": 43,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 1
@@ -1735,11 +1860,13 @@
 // CHECK-NEXT:      "kind": "CompoundStmt",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 628,
 // CHECK-NEXT:        "line": 40,
 // CHECK-NEXT:        "col": 36,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 658,
 // CHECK-NEXT:        "line": 43,
 // CHECK-NEXT:        "col": 1,
 // CHECK-NEXT:        "tokLen": 1
@@ -1751,11 +1878,13 @@
 // CHECK-NEXT:        "kind": "DeclStmt",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 632,
 // CHECK-NEXT:          "line": 41,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 644,
 // CHECK-NEXT:          "col": 15,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -1765,15 +1894,18 @@
 // CHECK-NEXT:          "id": "0x{{.*}}",
 // CHECK-NEXT:          "kind": "VarDecl",
 // CHECK-NEXT:          "loc": {
+// CHECK-NEXT:           "offset": 635,
 // CHECK-NEXT:           "col": 6,
 // CHECK-NEXT:           "tokLen": 1
 // CHECK-NEXT:          },
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 632,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 643,
 // CHECK-NEXT:            "col": 14,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -1790,10 +1922,12 @@
 // CHECK-NEXT:            "kind": "CXXNewExpr",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 639,
 // CHECK-NEXT:              "col": 10,
 // CHECK-NEXT:              "tokLen": 3
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 643,
 // CHECK-NEXT:              "col": 14,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -1812,11 +1946,13 @@
 // CHECK-NEXT:        "kind": "CXXDeleteExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 648,
 // CHECK-NEXT:          "line": 42,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 6
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 655,
 // CHECK-NEXT:          "col": 10,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -1831,10 +1967,12 @@
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 655,
 // CHECK-NEXT:            "col": 10,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 655,
 // CHECK-NEXT:            "col": 10,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -1864,17 +2002,20 @@
 
 // CHECK:  "kind": "FunctionTemplateDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 766,
 // CHECK-NEXT:   "line": 51,
 // CHECK-NEXT:   "col": 6,
 // CHECK-NEXT:   "tokLen": 28
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 739,
 // CHECK-NEXT:    "line": 50,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 8
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 905,
 // CHECK-NEXT:    "line": 56,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
@@ -1886,16 +2027,19 @@
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "TemplateTypeParmDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 758,
 // CHECK-NEXT:     "line": 50,
 // CHECK-NEXT:     "col": 20,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 749,
 // CHECK-NEXT:      "col": 11,
 // CHECK-NEXT:      "tokLen": 8
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 758,
 // CHECK-NEXT:      "col": 20,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -1910,16 +2054,19 @@
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "FunctionDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 766,
 // CHECK-NEXT:     "line": 51,
 // CHECK-NEXT:     "col": 6,
 // CHECK-NEXT:     "tokLen": 28
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 761,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 4
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 905,
 // CHECK-NEXT:      "line": 56,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 1
@@ -1935,11 +2082,13 @@
 // CHECK-NEXT:      "kind": "CompoundStmt",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 797,
 // CHECK-NEXT:        "line": 51,
 // CHECK-NEXT:        "col": 37,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 905,
 // CHECK-NEXT:        "line": 56,
 // CHECK-NEXT:        "col": 1,
 // CHECK-NEXT:        "tokLen": 1
@@ -1951,11 +2100,13 @@
 // CHECK-NEXT:        "kind": "DeclStmt",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 801,
 // CHECK-NEXT:          "line": 52,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 31
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 839,
 // CHECK-NEXT:          "col": 41,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -1965,15 +2116,18 @@
 // CHECK-NEXT:          "id": "0x{{.*}}",
 // CHECK-NEXT:          "kind": "VarDecl",
 // CHECK-NEXT:          "loc": {
+// CHECK-NEXT:           "offset": 836,
 // CHECK-NEXT:           "col": 38,
 // CHECK-NEXT:           "tokLen": 3
 // CHECK-NEXT:          },
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 801,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 31
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 836,
 // CHECK-NEXT:            "col": 38,
 // CHECK-NEXT:            "tokLen": 3
 // CHECK-NEXT:           }
@@ -1991,11 +2145,13 @@
 // CHECK-NEXT:        "kind": "BinaryOperator",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 843,
 // CHECK-NEXT:          "line": 53,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 3
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 858,
 // CHECK-NEXT:          "col": 18,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -2011,10 +2167,12 @@
 // CHECK-NEXT:          "kind": "CXXDependentScopeMemberExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 843,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 3
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 847,
 // CHECK-NEXT:            "col": 7,
 // CHECK-NEXT:            "tokLen": 6
 // CHECK-NEXT:           }
@@ -2031,10 +2189,12 @@
 // CHECK-NEXT:            "kind": "DeclRefExpr",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 843,
 // CHECK-NEXT:              "col": 3,
 // CHECK-NEXT:              "tokLen": 3
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 843,
 // CHECK-NEXT:              "col": 3,
 // CHECK-NEXT:              "tokLen": 3
 // CHECK-NEXT:             }
@@ -2059,10 +2219,12 @@
 // CHECK-NEXT:          "kind": "CXXUnresolvedConstructExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 856,
 // CHECK-NEXT:            "col": 16,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 858,
 // CHECK-NEXT:            "col": 18,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -2079,11 +2241,13 @@
 // CHECK-NEXT:        "kind": "BinaryOperator",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 863,
 // CHECK-NEXT:          "line": 54,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 3
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 878,
 // CHECK-NEXT:          "col": 18,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -2099,10 +2263,12 @@
 // CHECK-NEXT:          "kind": "CXXDependentScopeMemberExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 863,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 3
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 867,
 // CHECK-NEXT:            "col": 7,
 // CHECK-NEXT:            "tokLen": 6
 // CHECK-NEXT:           }
@@ -2119,10 +2285,12 @@
 // CHECK-NEXT:            "kind": "DeclRefExpr",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 863,
 // CHECK-NEXT:              "col": 3,
 // CHECK-NEXT:              "tokLen": 3
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 863,
 // CHECK-NEXT:              "col": 3,
 // CHECK-NEXT:              "tokLen": 3
 // CHECK-NEXT:             }
@@ -2147,10 +2315,12 @@
 // CHECK-NEXT:          "kind": "CXXUnresolvedConstructExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 876,
 // CHECK-NEXT:            "col": 16,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 878,
 // CHECK-NEXT:            "col": 18,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -2166,10 +2336,12 @@
 // CHECK-NEXT:            "kind": "InitListExpr",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 877,
 // CHECK-NEXT:              "col": 17,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 878,
 // CHECK-NEXT:              "col": 18,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -2188,11 +2360,13 @@
 // CHECK-NEXT:        "kind": "BinaryOperator",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 883,
 // CHECK-NEXT:          "line": 55,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 902,
 // CHECK-NEXT:          "col": 22,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -2208,10 +2382,12 @@
 // CHECK-NEXT:          "kind": "CXXDependentScopeMemberExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 883,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 891,
 // CHECK-NEXT:            "col": 11,
 // CHECK-NEXT:            "tokLen": 6
 // CHECK-NEXT:           }
@@ -2228,10 +2404,12 @@
 // CHECK-NEXT:            "kind": "ParenExpr",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 883,
 // CHECK-NEXT:              "col": 3,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 888,
 // CHECK-NEXT:              "col": 8,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -2246,10 +2424,12 @@
 // CHECK-NEXT:              "kind": "UnaryOperator",
 // CHECK-NEXT:              "range": {
 // CHECK-NEXT:               "begin": {
+// CHECK-NEXT:                "offset": 884,
 // CHECK-NEXT:                "col": 4,
 // CHECK-NEXT:                "tokLen": 1
 // CHECK-NEXT:               },
 // CHECK-NEXT:               "end": {
+// CHECK-NEXT:                "offset": 885,
 // CHECK-NEXT:                "col": 5,
 // CHECK-NEXT:                "tokLen": 3
 // CHECK-NEXT:               }
@@ -2267,10 +2447,12 @@
 // CHECK-NEXT:                "kind": "DeclRefExpr",
 // CHECK-NEXT:                "range": {
 // CHECK-NEXT:                 "begin": {
+// CHECK-NEXT:                  "offset": 885,
 // CHECK-NEXT:                  "col": 5,
 // CHECK-NEXT:                  "tokLen": 3
 // CHECK-NEXT:                 },
 // CHECK-NEXT:                 "end": {
+// CHECK-NEXT:                  "offset": 885,
 // CHECK-NEXT:                  "col": 5,
 // CHECK-NEXT:                  "tokLen": 3
 // CHECK-NEXT:                 }
@@ -2299,10 +2481,12 @@
 // CHECK-NEXT:          "kind": "CXXUnresolvedConstructExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 900,
 // CHECK-NEXT:            "col": 20,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 902,
 // CHECK-NEXT:            "col": 22,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -2324,17 +2508,20 @@
 
 // CHECK:  "kind": "FunctionTemplateDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 1049,
 // CHECK-NEXT:   "line": 65,
 // CHECK-NEXT:   "col": 6,
 // CHECK-NEXT:   "tokLen": 36
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 1022,
 // CHECK-NEXT:    "line": 64,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 8
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 1173,
 // CHECK-NEXT:    "line": 68,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
@@ -2346,16 +2533,19 @@
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "TemplateTypeParmDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 1041,
 // CHECK-NEXT:     "line": 64,
 // CHECK-NEXT:     "col": 20,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 1032,
 // CHECK-NEXT:      "col": 11,
 // CHECK-NEXT:      "tokLen": 8
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 1041,
 // CHECK-NEXT:      "col": 20,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -2370,16 +2560,19 @@
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "FunctionDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 1049,
 // CHECK-NEXT:     "line": 65,
 // CHECK-NEXT:     "col": 6,
 // CHECK-NEXT:     "tokLen": 36
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 1044,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 4
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 1173,
 // CHECK-NEXT:      "line": 68,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 1
@@ -2395,11 +2588,13 @@
 // CHECK-NEXT:      "kind": "CompoundStmt",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1088,
 // CHECK-NEXT:        "line": 65,
 // CHECK-NEXT:        "col": 45,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1173,
 // CHECK-NEXT:        "line": 68,
 // CHECK-NEXT:        "col": 1,
 // CHECK-NEXT:        "tokLen": 1
@@ -2411,11 +2606,13 @@
 // CHECK-NEXT:        "kind": "DeclStmt",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1092,
 // CHECK-NEXT:          "line": 66,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 36
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1135,
 // CHECK-NEXT:          "col": 46,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -2425,15 +2622,18 @@
 // CHECK-NEXT:          "id": "0x{{.*}}",
 // CHECK-NEXT:          "kind": "VarDecl",
 // CHECK-NEXT:          "loc": {
+// CHECK-NEXT:           "offset": 1132,
 // CHECK-NEXT:           "col": 43,
 // CHECK-NEXT:           "tokLen": 3
 // CHECK-NEXT:          },
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 1092,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 36
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 1132,
 // CHECK-NEXT:            "col": 43,
 // CHECK-NEXT:            "tokLen": 3
 // CHECK-NEXT:           }
@@ -2451,11 +2651,13 @@
 // CHECK-NEXT:        "kind": "BinaryOperator",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1139,
 // CHECK-NEXT:          "line": 67,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 3
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1170,
 // CHECK-NEXT:          "col": 34,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -2471,10 +2673,12 @@
 // CHECK-NEXT:          "kind": "CXXDependentScopeMemberExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 1139,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 3
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 1162,
 // CHECK-NEXT:            "col": 26,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -2492,10 +2696,12 @@
 // CHECK-NEXT:            "kind": "TemplateArgument",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 1159,
 // CHECK-NEXT:              "col": 23,
 // CHECK-NEXT:              "tokLen": 3
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 1159,
 // CHECK-NEXT:              "col": 23,
 // CHECK-NEXT:              "tokLen": 3
 // CHECK-NEXT:             }
@@ -2511,10 +2717,12 @@
 // CHECK-NEXT:            "kind": "DeclRefExpr",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 1139,
 // CHECK-NEXT:              "col": 3,
 // CHECK-NEXT:              "tokLen": 3
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 1139,
 // CHECK-NEXT:              "col": 3,
 // CHECK-NEXT:              "tokLen": 3
 // CHECK-NEXT:             }
@@ -2539,10 +2747,12 @@
 // CHECK-NEXT:          "kind": "CXXScalarValueInitExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 1166,
 // CHECK-NEXT:            "col": 30,
 // CHECK-NEXT:            "tokLen": 3
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 1170,
 // CHECK-NEXT:            "col": 34,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -2564,16 +2774,19 @@
 
 // CHECK:  "kind": "FunctionDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 1214,
 // CHECK-NEXT:   "line": 75,
 // CHECK-NEXT:   "col": 6,
 // CHECK-NEXT:   "tokLen": 17
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 1209,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 4
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 1253,
 // CHECK-NEXT:    "line": 78,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
@@ -2589,11 +2802,13 @@
 // CHECK-NEXT:    "kind": "CompoundStmt",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 1234,
 // CHECK-NEXT:      "line": 76,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 1253,
 // CHECK-NEXT:      "line": 78,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 1
@@ -2605,11 +2820,13 @@
 // CHECK-NEXT:      "kind": "DeclStmt",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1238,
 // CHECK-NEXT:        "line": 77,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1251,
 // CHECK-NEXT:        "col": 16,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -2619,15 +2836,18 @@
 // CHECK-NEXT:        "id": "0x{{.*}}",
 // CHECK-NEXT:        "kind": "VarDecl",
 // CHECK-NEXT:        "loc": {
+// CHECK-NEXT:         "offset": 1240,
 // CHECK-NEXT:         "col": 5,
 // CHECK-NEXT:         "tokLen": 2
 // CHECK-NEXT:        },
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1238,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1250,
 // CHECK-NEXT:          "col": 15,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -2643,10 +2863,12 @@
 // CHECK-NEXT:          "kind": "InitListExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 1248,
 // CHECK-NEXT:            "col": 13,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 1250,
 // CHECK-NEXT:            "col": 15,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -2661,10 +2883,12 @@
 // CHECK-NEXT:            "kind": "InitListExpr",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 1250,
 // CHECK-NEXT:              "col": 15,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 1250,
 // CHECK-NEXT:              "col": 15,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -2687,10 +2911,12 @@
 // CHECK-NEXT:            "kind": "InitListExpr",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 1249,
 // CHECK-NEXT:              "col": 14,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 1249,
 // CHECK-NEXT:              "col": 14,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -2713,10 +2939,12 @@
 // CHECK-NEXT:              "kind": "IntegerLiteral",
 // CHECK-NEXT:              "range": {
 // CHECK-NEXT:               "begin": {
+// CHECK-NEXT:                "offset": 1249,
 // CHECK-NEXT:                "col": 14,
 // CHECK-NEXT:                "tokLen": 1
 // CHECK-NEXT:               },
 // CHECK-NEXT:               "end": {
+// CHECK-NEXT:                "offset": 1249,
 // CHECK-NEXT:                "col": 14,
 // CHECK-NEXT:                "tokLen": 1
 // CHECK-NEXT:               }
@@ -2743,16 +2971,19 @@
 
 // CHECK:  "kind": "FunctionDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 1261,
 // CHECK-NEXT:   "line": 80,
 // CHECK-NEXT:   "col": 6,
 // CHECK-NEXT:   "tokLen": 10
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 1256,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 4
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 1307,
 // CHECK-NEXT:    "line": 83,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
@@ -2767,16 +2998,19 @@
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "ParmVarDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 1276,
 // CHECK-NEXT:     "line": 80,
 // CHECK-NEXT:     "col": 21,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 1272,
 // CHECK-NEXT:      "col": 17,
 // CHECK-NEXT:      "tokLen": 3
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 1276,
 // CHECK-NEXT:      "col": 21,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -2792,10 +3026,12 @@
 // CHECK-NEXT:    "kind": "CompoundStmt",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 1279,
 // CHECK-NEXT:      "col": 24,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 1307,
 // CHECK-NEXT:      "line": 83,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 1
@@ -2807,11 +3043,13 @@
 // CHECK-NEXT:      "kind": "SwitchStmt",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1283,
 // CHECK-NEXT:        "line": 81,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 6
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1305,
 // CHECK-NEXT:        "line": 82,
 // CHECK-NEXT:        "col": 5,
 // CHECK-NEXT:        "tokLen": 1
@@ -2824,11 +3062,13 @@
 // CHECK-NEXT:        "kind": "DeclStmt",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1291,
 // CHECK-NEXT:          "line": 81,
 // CHECK-NEXT:          "col": 11,
 // CHECK-NEXT:          "tokLen": 3
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1296,
 // CHECK-NEXT:          "col": 16,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -2838,15 +3078,18 @@
 // CHECK-NEXT:          "id": "0x{{.*}}",
 // CHECK-NEXT:          "kind": "VarDecl",
 // CHECK-NEXT:          "loc": {
+// CHECK-NEXT:           "offset": 1295,
 // CHECK-NEXT:           "col": 15,
 // CHECK-NEXT:           "tokLen": 1
 // CHECK-NEXT:          },
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 1291,
 // CHECK-NEXT:            "col": 11,
 // CHECK-NEXT:            "tokLen": 3
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 1295,
 // CHECK-NEXT:            "col": 15,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -2863,10 +3106,12 @@
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1298,
 // CHECK-NEXT:          "col": 18,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1298,
 // CHECK-NEXT:          "col": 18,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -2882,10 +3127,12 @@
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 1298,
 // CHECK-NEXT:            "col": 18,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 1298,
 // CHECK-NEXT:            "col": 18,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -2910,11 +3157,13 @@
 // CHECK-NEXT:        "kind": "NullStmt",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1305,
 // CHECK-NEXT:          "line": 82,
 // CHECK-NEXT:          "col": 5,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1305,
 // CHECK-NEXT:          "col": 5,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -2930,16 +3179,19 @@
 
 // CHECK:  "kind": "FunctionDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 1315,
 // CHECK-NEXT:   "line": 85,
 // CHECK-NEXT:   "col": 6,
 // CHECK-NEXT:   "tokLen": 6
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 1310,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 4
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 1456,
 // CHECK-NEXT:    "line": 96,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
@@ -2954,16 +3206,19 @@
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "ParmVarDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 1327,
 // CHECK-NEXT:     "line": 85,
 // CHECK-NEXT:     "col": 18,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 1322,
 // CHECK-NEXT:      "col": 13,
 // CHECK-NEXT:      "tokLen": 4
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 1327,
 // CHECK-NEXT:      "col": 18,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -2979,10 +3234,12 @@
 // CHECK-NEXT:    "kind": "CompoundStmt",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 1330,
 // CHECK-NEXT:      "col": 21,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 1456,
 // CHECK-NEXT:      "line": 96,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 1
@@ -2994,11 +3251,13 @@
 // CHECK-NEXT:      "kind": "IfStmt",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1334,
 // CHECK-NEXT:        "line": 86,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 2
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1363,
 // CHECK-NEXT:        "line": 87,
 // CHECK-NEXT:        "col": 5,
 // CHECK-NEXT:        "tokLen": 1
@@ -3011,11 +3270,13 @@
 // CHECK-NEXT:        "kind": "DeclStmt",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1338,
 // CHECK-NEXT:          "line": 86,
 // CHECK-NEXT:          "col": 7,
 // CHECK-NEXT:          "tokLen": 5
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1354,
 // CHECK-NEXT:          "col": 23,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -3025,15 +3286,18 @@
 // CHECK-NEXT:          "id": "0x{{.*}}",
 // CHECK-NEXT:          "kind": "VarDecl",
 // CHECK-NEXT:          "loc": {
+// CHECK-NEXT:           "offset": 1348,
 // CHECK-NEXT:           "col": 17,
 // CHECK-NEXT:           "tokLen": 1
 // CHECK-NEXT:          },
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 1338,
 // CHECK-NEXT:            "col": 7,
 // CHECK-NEXT:            "tokLen": 5
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 1352,
 // CHECK-NEXT:            "col": 21,
 // CHECK-NEXT:            "tokLen": 2
 // CHECK-NEXT:           }
@@ -3050,10 +3314,12 @@
 // CHECK-NEXT:            "kind": "IntegerLiteral",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 1352,
 // CHECK-NEXT:              "col": 21,
 // CHECK-NEXT:              "tokLen": 2
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 1352,
 // CHECK-NEXT:              "col": 21,
 // CHECK-NEXT:              "tokLen": 2
 // CHECK-NEXT:             }
@@ -3073,10 +3339,12 @@
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1356,
 // CHECK-NEXT:          "col": 25,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1356,
 // CHECK-NEXT:          "col": 25,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -3092,10 +3360,12 @@
 // CHECK-NEXT:          "kind": "ImplicitCastExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 1356,
 // CHECK-NEXT:            "col": 25,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 1356,
 // CHECK-NEXT:            "col": 25,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -3111,10 +3381,12 @@
 // CHECK-NEXT:            "kind": "DeclRefExpr",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 1356,
 // CHECK-NEXT:              "col": 25,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 1356,
 // CHECK-NEXT:              "col": 25,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -3142,11 +3414,13 @@
 // CHECK-NEXT:        "kind": "NullStmt",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1363,
 // CHECK-NEXT:          "line": 87,
 // CHECK-NEXT:          "col": 5,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1363,
 // CHECK-NEXT:          "col": 5,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -3159,11 +3433,13 @@
 // CHECK-NEXT:      "kind": "IfStmt",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1368,
 // CHECK-NEXT:        "line": 89,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 2
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1402,
 // CHECK-NEXT:        "line": 90,
 // CHECK-NEXT:        "col": 5,
 // CHECK-NEXT:        "tokLen": 1
@@ -3176,11 +3452,13 @@
 // CHECK-NEXT:        "kind": "ConstantExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1382,
 // CHECK-NEXT:          "line": 89,
 // CHECK-NEXT:          "col": 17,
 // CHECK-NEXT:          "tokLen": 6
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1395,
 // CHECK-NEXT:          "col": 30,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -3196,10 +3474,12 @@
 // CHECK-NEXT:          "kind": "BinaryOperator",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 1382,
 // CHECK-NEXT:            "col": 17,
 // CHECK-NEXT:            "tokLen": 6
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 1395,
 // CHECK-NEXT:            "col": 30,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -3215,10 +3495,12 @@
 // CHECK-NEXT:            "kind": "UnaryExprOrTypeTraitExpr",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 1382,
 // CHECK-NEXT:              "col": 17,
 // CHECK-NEXT:              "tokLen": 6
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 1390,
 // CHECK-NEXT:              "col": 25,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -3234,10 +3516,12 @@
 // CHECK-NEXT:              "kind": "ParenExpr",
 // CHECK-NEXT:              "range": {
 // CHECK-NEXT:               "begin": {
+// CHECK-NEXT:                "offset": 1388,
 // CHECK-NEXT:                "col": 23,
 // CHECK-NEXT:                "tokLen": 1
 // CHECK-NEXT:               },
 // CHECK-NEXT:               "end": {
+// CHECK-NEXT:                "offset": 1390,
 // CHECK-NEXT:                "col": 25,
 // CHECK-NEXT:                "tokLen": 1
 // CHECK-NEXT:               }
@@ -3252,10 +3536,12 @@
 // CHECK-NEXT:                "kind": "DeclRefExpr",
 // CHECK-NEXT:                "range": {
 // CHECK-NEXT:                 "begin": {
+// CHECK-NEXT:                  "offset": 1389,
 // CHECK-NEXT:                  "col": 24,
 // CHECK-NEXT:                  "tokLen": 1
 // CHECK-NEXT:                 },
 // CHECK-NEXT:                 "end": {
+// CHECK-NEXT:                  "offset": 1389,
 // CHECK-NEXT:                  "col": 24,
 // CHECK-NEXT:                  "tokLen": 1
 // CHECK-NEXT:                 }
@@ -3283,10 +3569,12 @@
 // CHECK-NEXT:            "kind": "ImplicitCastExpr",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 1395,
 // CHECK-NEXT:              "col": 30,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 1395,
 // CHECK-NEXT:              "col": 30,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -3302,10 +3590,12 @@
 // CHECK-NEXT:              "kind": "IntegerLiteral",
 // CHECK-NEXT:              "range": {
 // CHECK-NEXT:               "begin": {
+// CHECK-NEXT:                "offset": 1395,
 // CHECK-NEXT:                "col": 30,
 // CHECK-NEXT:                "tokLen": 1
 // CHECK-NEXT:               },
 // CHECK-NEXT:               "end": {
+// CHECK-NEXT:                "offset": 1395,
 // CHECK-NEXT:                "col": 30,
 // CHECK-NEXT:                "tokLen": 1
 // CHECK-NEXT:               }
@@ -3327,11 +3617,13 @@
 // CHECK-NEXT:        "kind": "NullStmt",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1402,
 // CHECK-NEXT:          "line": 90,
 // CHECK-NEXT:          "col": 5,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1402,
 // CHECK-NEXT:          "col": 5,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -3344,11 +3636,13 @@
 // CHECK-NEXT:      "kind": "IfStmt",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1407,
 // CHECK-NEXT:        "line": 92,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 2
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1454,
 // CHECK-NEXT:        "line": 95,
 // CHECK-NEXT:        "col": 5,
 // CHECK-NEXT:        "tokLen": 1
@@ -3362,11 +3656,13 @@
 // CHECK-NEXT:        "kind": "ConstantExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1421,
 // CHECK-NEXT:          "line": 92,
 // CHECK-NEXT:          "col": 17,
 // CHECK-NEXT:          "tokLen": 6
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1434,
 // CHECK-NEXT:          "col": 30,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -3382,10 +3678,12 @@
 // CHECK-NEXT:          "kind": "BinaryOperator",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 1421,
 // CHECK-NEXT:            "col": 17,
 // CHECK-NEXT:            "tokLen": 6
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 1434,
 // CHECK-NEXT:            "col": 30,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -3401,10 +3699,12 @@
 // CHECK-NEXT:            "kind": "UnaryExprOrTypeTraitExpr",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 1421,
 // CHECK-NEXT:              "col": 17,
 // CHECK-NEXT:              "tokLen": 6
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 1429,
 // CHECK-NEXT:              "col": 25,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -3420,10 +3720,12 @@
 // CHECK-NEXT:              "kind": "ParenExpr",
 // CHECK-NEXT:              "range": {
 // CHECK-NEXT:               "begin": {
+// CHECK-NEXT:                "offset": 1427,
 // CHECK-NEXT:                "col": 23,
 // CHECK-NEXT:                "tokLen": 1
 // CHECK-NEXT:               },
 // CHECK-NEXT:               "end": {
+// CHECK-NEXT:                "offset": 1429,
 // CHECK-NEXT:                "col": 25,
 // CHECK-NEXT:                "tokLen": 1
 // CHECK-NEXT:               }
@@ -3438,10 +3740,12 @@
 // CHECK-NEXT:                "kind": "DeclRefExpr",
 // CHECK-NEXT:                "range": {
 // CHECK-NEXT:                 "begin": {
+// CHECK-NEXT:                  "offset": 1428,
 // CHECK-NEXT:                  "col": 24,
 // CHECK-NEXT:                  "tokLen": 1
 // CHECK-NEXT:                 },
 // CHECK-NEXT:                 "end": {
+// CHECK-NEXT:                  "offset": 1428,
 // CHECK-NEXT:                  "col": 24,
 // CHECK-NEXT:                  "tokLen": 1
 // CHECK-NEXT:                 }
@@ -3469,10 +3773,12 @@
 // CHECK-NEXT:            "kind": "ImplicitCastExpr",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 1434,
 // CHECK-NEXT:              "col": 30,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 1434,
 // CHECK-NEXT:              "col": 30,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -3488,10 +3794,12 @@
 // CHECK-NEXT:              "kind": "IntegerLiteral",
 // CHECK-NEXT:              "range": {
 // CHECK-NEXT:               "begin": {
+// CHECK-NEXT:                "offset": 1434,
 // CHECK-NEXT:                "col": 30,
 // CHECK-NEXT:                "tokLen": 1
 // CHECK-NEXT:               },
 // CHECK-NEXT:               "end": {
+// CHECK-NEXT:                "offset": 1434,
 // CHECK-NEXT:                "col": 30,
 // CHECK-NEXT:                "tokLen": 1
 // CHECK-NEXT:               }
@@ -3513,11 +3821,13 @@
 // CHECK-NEXT:        "kind": "NullStmt",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1441,
 // CHECK-NEXT:          "line": 93,
 // CHECK-NEXT:          "col": 5,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1441,
 // CHECK-NEXT:          "col": 5,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -3528,11 +3838,13 @@
 // CHECK-NEXT:        "kind": "NullStmt",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1454,
 // CHECK-NEXT:          "line": 95,
 // CHECK-NEXT:          "col": 5,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1454,
 // CHECK-NEXT:          "col": 5,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -3548,16 +3860,19 @@
 
 // CHECK:  "kind": "FunctionDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 1529,
 // CHECK-NEXT:   "line": 103,
 // CHECK-NEXT:   "col": 6,
 // CHECK-NEXT:   "tokLen": 13
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 1524,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 4
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 1706,
 // CHECK-NEXT:    "line": 117,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
@@ -3573,11 +3888,13 @@
 // CHECK-NEXT:    "kind": "CompoundStmt",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 1545,
 // CHECK-NEXT:      "line": 103,
 // CHECK-NEXT:      "col": 22,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 1706,
 // CHECK-NEXT:      "line": 117,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 1
@@ -3589,11 +3906,13 @@
 // CHECK-NEXT:      "kind": "ForStmt",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1549,
 // CHECK-NEXT:        "line": 104,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 3
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1585,
 // CHECK-NEXT:        "line": 105,
 // CHECK-NEXT:        "col": 5,
 // CHECK-NEXT:        "tokLen": 1
@@ -3605,11 +3924,13 @@
 // CHECK-NEXT:        "kind": "DeclStmt",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1554,
 // CHECK-NEXT:          "line": 104,
 // CHECK-NEXT:          "col": 8,
 // CHECK-NEXT:          "tokLen": 3
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1563,
 // CHECK-NEXT:          "col": 17,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -3619,15 +3940,18 @@
 // CHECK-NEXT:          "id": "0x{{.*}}",
 // CHECK-NEXT:          "kind": "VarDecl",
 // CHECK-NEXT:          "loc": {
+// CHECK-NEXT:           "offset": 1558,
 // CHECK-NEXT:           "col": 12,
 // CHECK-NEXT:           "tokLen": 1
 // CHECK-NEXT:          },
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 1554,
 // CHECK-NEXT:            "col": 8,
 // CHECK-NEXT:            "tokLen": 3
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 1562,
 // CHECK-NEXT:            "col": 16,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -3644,10 +3968,12 @@
 // CHECK-NEXT:            "kind": "IntegerLiteral",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 1562,
 // CHECK-NEXT:              "col": 16,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 1562,
 // CHECK-NEXT:              "col": 16,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -3667,10 +3993,12 @@
 // CHECK-NEXT:        "kind": "DeclStmt",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1565,
 // CHECK-NEXT:          "col": 19,
 // CHECK-NEXT:          "tokLen": 3
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1573,
 // CHECK-NEXT:          "col": 27,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -3680,15 +4008,18 @@
 // CHECK-NEXT:          "id": "0x{{.*}}",
 // CHECK-NEXT:          "kind": "VarDecl",
 // CHECK-NEXT:          "loc": {
+// CHECK-NEXT:           "offset": 1569,
 // CHECK-NEXT:           "col": 23,
 // CHECK-NEXT:           "tokLen": 1
 // CHECK-NEXT:          },
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 1565,
 // CHECK-NEXT:            "col": 19,
 // CHECK-NEXT:            "tokLen": 3
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 1573,
 // CHECK-NEXT:            "col": 27,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -3705,10 +4036,12 @@
 // CHECK-NEXT:            "kind": "ImplicitCastExpr",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 1573,
 // CHECK-NEXT:              "col": 27,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 1573,
 // CHECK-NEXT:              "col": 27,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -3724,10 +4057,12 @@
 // CHECK-NEXT:              "kind": "DeclRefExpr",
 // CHECK-NEXT:              "range": {
 // CHECK-NEXT:               "begin": {
+// CHECK-NEXT:                "offset": 1573,
 // CHECK-NEXT:                "col": 27,
 // CHECK-NEXT:                "tokLen": 1
 // CHECK-NEXT:               },
 // CHECK-NEXT:               "end": {
+// CHECK-NEXT:                "offset": 1573,
 // CHECK-NEXT:                "col": 27,
 // CHECK-NEXT:                "tokLen": 1
 // CHECK-NEXT:               }
@@ -3756,10 +4091,12 @@
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1569,
 // CHECK-NEXT:          "col": 23,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1569,
 // CHECK-NEXT:          "col": 23,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -3775,10 +4112,12 @@
 // CHECK-NEXT:          "kind": "ImplicitCastExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 1569,
 // CHECK-NEXT:            "col": 23,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 1569,
 // CHECK-NEXT:            "col": 23,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -3794,10 +4133,12 @@
 // CHECK-NEXT:            "kind": "DeclRefExpr",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 1569,
 // CHECK-NEXT:              "col": 23,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 1569,
 // CHECK-NEXT:              "col": 23,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -3824,10 +4165,12 @@
 // CHECK-NEXT:        "kind": "UnaryOperator",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1576,
 // CHECK-NEXT:          "col": 30,
 // CHECK-NEXT:          "tokLen": 2
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1578,
 // CHECK-NEXT:          "col": 32,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -3844,10 +4187,12 @@
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 1578,
 // CHECK-NEXT:            "col": 32,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 1578,
 // CHECK-NEXT:            "col": 32,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -3872,11 +4217,13 @@
 // CHECK-NEXT:        "kind": "NullStmt",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1585,
 // CHECK-NEXT:          "line": 105,
 // CHECK-NEXT:          "col": 5,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1585,
 // CHECK-NEXT:          "col": 5,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -3889,11 +4236,13 @@
 // CHECK-NEXT:      "kind": "DeclStmt",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1590,
 // CHECK-NEXT:        "line": 107,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 3
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1602,
 // CHECK-NEXT:        "col": 15,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -3903,15 +4252,18 @@
 // CHECK-NEXT:        "id": "0x{{.*}}",
 // CHECK-NEXT:        "kind": "VarDecl",
 // CHECK-NEXT:        "loc": {
+// CHECK-NEXT:         "offset": 1594,
 // CHECK-NEXT:         "col": 7,
 // CHECK-NEXT:         "tokLen": 4
 // CHECK-NEXT:        },
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1590,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 3
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1601,
 // CHECK-NEXT:          "col": 14,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -3929,11 +4281,13 @@
 // CHECK-NEXT:      "kind": "CXXForRangeStmt",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1606,
 // CHECK-NEXT:        "line": 108,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 3
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1629,
 // CHECK-NEXT:        "line": 109,
 // CHECK-NEXT:        "col": 5,
 // CHECK-NEXT:        "tokLen": 1
@@ -3946,11 +4300,13 @@
 // CHECK-NEXT:        "kind": "DeclStmt",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1619,
 // CHECK-NEXT:          "line": 108,
 // CHECK-NEXT:          "col": 16,
 // CHECK-NEXT:          "tokLen": 4
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1619,
 // CHECK-NEXT:          "col": 16,
 // CHECK-NEXT:          "tokLen": 4
 // CHECK-NEXT:         }
@@ -3960,15 +4316,18 @@
 // CHECK-NEXT:          "id": "0x{{.*}}",
 // CHECK-NEXT:          "kind": "VarDecl",
 // CHECK-NEXT:          "loc": {
+// CHECK-NEXT:           "offset": 1619,
 // CHECK-NEXT:           "col": 16,
 // CHECK-NEXT:           "tokLen": 4
 // CHECK-NEXT:          },
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 1619,
 // CHECK-NEXT:            "col": 16,
 // CHECK-NEXT:            "tokLen": 4
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 1619,
 // CHECK-NEXT:            "col": 16,
 // CHECK-NEXT:            "tokLen": 4
 // CHECK-NEXT:           }
@@ -3986,10 +4345,12 @@
 // CHECK-NEXT:            "kind": "DeclRefExpr",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 1619,
 // CHECK-NEXT:              "col": 16,
 // CHECK-NEXT:              "tokLen": 4
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 1619,
 // CHECK-NEXT:              "col": 16,
 // CHECK-NEXT:              "tokLen": 4
 // CHECK-NEXT:             }
@@ -4016,10 +4377,12 @@
 // CHECK-NEXT:        "kind": "DeclStmt",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1617,
 // CHECK-NEXT:          "col": 14,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1617,
 // CHECK-NEXT:          "col": 14,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -4029,15 +4392,18 @@
 // CHECK-NEXT:          "id": "0x{{.*}}",
 // CHECK-NEXT:          "kind": "VarDecl",
 // CHECK-NEXT:          "loc": {
+// CHECK-NEXT:           "offset": 1617,
 // CHECK-NEXT:           "col": 14,
 // CHECK-NEXT:           "tokLen": 1
 // CHECK-NEXT:          },
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 1617,
 // CHECK-NEXT:            "col": 14,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 1617,
 // CHECK-NEXT:            "col": 14,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -4056,10 +4422,12 @@
 // CHECK-NEXT:            "kind": "ImplicitCastExpr",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 1617,
 // CHECK-NEXT:              "col": 14,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 1617,
 // CHECK-NEXT:              "col": 14,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -4075,10 +4443,12 @@
 // CHECK-NEXT:              "kind": "DeclRefExpr",
 // CHECK-NEXT:              "range": {
 // CHECK-NEXT:               "begin": {
+// CHECK-NEXT:                "offset": 1617,
 // CHECK-NEXT:                "col": 14,
 // CHECK-NEXT:                "tokLen": 1
 // CHECK-NEXT:               },
 // CHECK-NEXT:               "end": {
+// CHECK-NEXT:                "offset": 1617,
 // CHECK-NEXT:                "col": 14,
 // CHECK-NEXT:                "tokLen": 1
 // CHECK-NEXT:               }
@@ -4107,10 +4477,12 @@
 // CHECK-NEXT:        "kind": "DeclStmt",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1617,
 // CHECK-NEXT:          "col": 14,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1617,
 // CHECK-NEXT:          "col": 14,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -4120,15 +4492,18 @@
 // CHECK-NEXT:          "id": "0x{{.*}}",
 // CHECK-NEXT:          "kind": "VarDecl",
 // CHECK-NEXT:          "loc": {
+// CHECK-NEXT:           "offset": 1617,
 // CHECK-NEXT:           "col": 14,
 // CHECK-NEXT:           "tokLen": 1
 // CHECK-NEXT:          },
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 1617,
 // CHECK-NEXT:            "col": 14,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 1619,
 // CHECK-NEXT:            "col": 16,
 // CHECK-NEXT:            "tokLen": 4
 // CHECK-NEXT:           }
@@ -4147,10 +4522,12 @@
 // CHECK-NEXT:            "kind": "BinaryOperator",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 1617,
 // CHECK-NEXT:              "col": 14,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 1619,
 // CHECK-NEXT:              "col": 16,
 // CHECK-NEXT:              "tokLen": 4
 // CHECK-NEXT:             }
@@ -4166,10 +4543,12 @@
 // CHECK-NEXT:              "kind": "ImplicitCastExpr",
 // CHECK-NEXT:              "range": {
 // CHECK-NEXT:               "begin": {
+// CHECK-NEXT:                "offset": 1617,
 // CHECK-NEXT:                "col": 14,
 // CHECK-NEXT:                "tokLen": 1
 // CHECK-NEXT:               },
 // CHECK-NEXT:               "end": {
+// CHECK-NEXT:                "offset": 1617,
 // CHECK-NEXT:                "col": 14,
 // CHECK-NEXT:                "tokLen": 1
 // CHECK-NEXT:               }
@@ -4185,10 +4564,12 @@
 // CHECK-NEXT:                "kind": "DeclRefExpr",
 // CHECK-NEXT:                "range": {
 // CHECK-NEXT:                 "begin": {
+// CHECK-NEXT:                  "offset": 1617,
 // CHECK-NEXT:                  "col": 14,
 // CHECK-NEXT:                  "tokLen": 1
 // CHECK-NEXT:                 },
 // CHECK-NEXT:                 "end": {
+// CHECK-NEXT:                  "offset": 1617,
 // CHECK-NEXT:                  "col": 14,
 // CHECK-NEXT:                  "tokLen": 1
 // CHECK-NEXT:                 }
@@ -4213,10 +4594,12 @@
 // CHECK-NEXT:              "kind": "IntegerLiteral",
 // CHECK-NEXT:              "range": {
 // CHECK-NEXT:               "begin": {
+// CHECK-NEXT:                "offset": 1619,
 // CHECK-NEXT:                "col": 16,
 // CHECK-NEXT:                "tokLen": 4
 // CHECK-NEXT:               },
 // CHECK-NEXT:               "end": {
+// CHECK-NEXT:                "offset": 1619,
 // CHECK-NEXT:                "col": 16,
 // CHECK-NEXT:                "tokLen": 4
 // CHECK-NEXT:               }
@@ -4238,10 +4621,12 @@
 // CHECK-NEXT:        "kind": "BinaryOperator",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1617,
 // CHECK-NEXT:          "col": 14,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1617,
 // CHECK-NEXT:          "col": 14,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -4257,10 +4642,12 @@
 // CHECK-NEXT:          "kind": "ImplicitCastExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 1617,
 // CHECK-NEXT:            "col": 14,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 1617,
 // CHECK-NEXT:            "col": 14,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -4277,10 +4664,12 @@
 // CHECK-NEXT:            "kind": "DeclRefExpr",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 1617,
 // CHECK-NEXT:              "col": 14,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 1617,
 // CHECK-NEXT:              "col": 14,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -4307,10 +4696,12 @@
 // CHECK-NEXT:          "kind": "ImplicitCastExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 1617,
 // CHECK-NEXT:            "col": 14,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 1617,
 // CHECK-NEXT:            "col": 14,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -4327,10 +4718,12 @@
 // CHECK-NEXT:            "kind": "DeclRefExpr",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 1617,
 // CHECK-NEXT:              "col": 14,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 1617,
 // CHECK-NEXT:              "col": 14,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -4359,10 +4752,12 @@
 // CHECK-NEXT:        "kind": "UnaryOperator",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1617,
 // CHECK-NEXT:          "col": 14,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1617,
 // CHECK-NEXT:          "col": 14,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -4380,10 +4775,12 @@
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 1617,
 // CHECK-NEXT:            "col": 14,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 1617,
 // CHECK-NEXT:            "col": 14,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -4410,10 +4807,12 @@
 // CHECK-NEXT:        "kind": "DeclStmt",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1611,
 // CHECK-NEXT:          "col": 8,
 // CHECK-NEXT:          "tokLen": 3
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1623,
 // CHECK-NEXT:          "col": 20,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -4423,15 +4822,18 @@
 // CHECK-NEXT:          "id": "0x{{.*}}",
 // CHECK-NEXT:          "kind": "VarDecl",
 // CHECK-NEXT:          "loc": {
+// CHECK-NEXT:           "offset": 1615,
 // CHECK-NEXT:           "col": 12,
 // CHECK-NEXT:           "tokLen": 1
 // CHECK-NEXT:          },
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 1611,
 // CHECK-NEXT:            "col": 8,
 // CHECK-NEXT:            "tokLen": 3
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 1617,
 // CHECK-NEXT:            "col": 14,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -4447,10 +4849,12 @@
 // CHECK-NEXT:            "kind": "ImplicitCastExpr",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 1617,
 // CHECK-NEXT:              "col": 14,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 1617,
 // CHECK-NEXT:              "col": 14,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -4466,10 +4870,12 @@
 // CHECK-NEXT:              "kind": "UnaryOperator",
 // CHECK-NEXT:              "range": {
 // CHECK-NEXT:               "begin": {
+// CHECK-NEXT:                "offset": 1617,
 // CHECK-NEXT:                "col": 14,
 // CHECK-NEXT:                "tokLen": 1
 // CHECK-NEXT:               },
 // CHECK-NEXT:               "end": {
+// CHECK-NEXT:                "offset": 1617,
 // CHECK-NEXT:                "col": 14,
 // CHECK-NEXT:                "tokLen": 1
 // CHECK-NEXT:               }
@@ -4487,10 +4893,12 @@
 // CHECK-NEXT:                "kind": "ImplicitCastExpr",
 // CHECK-NEXT:                "range": {
 // CHECK-NEXT:                 "begin": {
+// CHECK-NEXT:                  "offset": 1617,
 // CHECK-NEXT:                  "col": 14,
 // CHECK-NEXT:                  "tokLen": 1
 // CHECK-NEXT:                 },
 // CHECK-NEXT:                 "end": {
+// CHECK-NEXT:                  "offset": 1617,
 // CHECK-NEXT:                  "col": 14,
 // CHECK-NEXT:                  "tokLen": 1
 // CHECK-NEXT:                 }
@@ -4507,10 +4915,12 @@
 // CHECK-NEXT:                  "kind": "DeclRefExpr",
 // CHECK-NEXT:                  "range": {
 // CHECK-NEXT:                   "begin": {
+// CHECK-NEXT:                    "offset": 1617,
 // CHECK-NEXT:                    "col": 14,
 // CHECK-NEXT:                    "tokLen": 1
 // CHECK-NEXT:                   },
 // CHECK-NEXT:                   "end": {
+// CHECK-NEXT:                    "offset": 1617,
 // CHECK-NEXT:                    "col": 14,
 // CHECK-NEXT:                    "tokLen": 1
 // CHECK-NEXT:                   }
@@ -4545,11 +4955,13 @@
 // CHECK-NEXT:        "kind": "NullStmt",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1629,
 // CHECK-NEXT:          "line": 109,
 // CHECK-NEXT:          "col": 5,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1629,
 // CHECK-NEXT:          "col": 5,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -4562,11 +4974,13 @@
 // CHECK-NEXT:      "kind": "DeclStmt",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1634,
 // CHECK-NEXT:        "line": 111,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 9
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1645,
 // CHECK-NEXT:        "col": 14,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -4576,15 +4990,18 @@
 // CHECK-NEXT:        "id": "0x{{.*}}",
 // CHECK-NEXT:        "kind": "VarDecl",
 // CHECK-NEXT:        "loc": {
+// CHECK-NEXT:         "offset": 1644,
 // CHECK-NEXT:         "col": 13,
 // CHECK-NEXT:         "tokLen": 1
 // CHECK-NEXT:        },
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1634,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 9
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1644,
 // CHECK-NEXT:          "col": 13,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -4601,10 +5018,12 @@
 // CHECK-NEXT:          "kind": "CXXConstructExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 1644,
 // CHECK-NEXT:            "col": 13,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 1644,
 // CHECK-NEXT:            "col": 13,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -4628,11 +5047,13 @@
 // CHECK-NEXT:      "kind": "CXXForRangeStmt",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1649,
 // CHECK-NEXT:        "line": 112,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 3
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1669,
 // CHECK-NEXT:        "line": 113,
 // CHECK-NEXT:        "col": 5,
 // CHECK-NEXT:        "tokLen": 1
@@ -4645,11 +5066,13 @@
 // CHECK-NEXT:        "kind": "DeclStmt",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1662,
 // CHECK-NEXT:          "line": 112,
 // CHECK-NEXT:          "col": 16,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1662,
 // CHECK-NEXT:          "col": 16,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -4659,15 +5082,18 @@
 // CHECK-NEXT:          "id": "0x{{.*}}",
 // CHECK-NEXT:          "kind": "VarDecl",
 // CHECK-NEXT:          "loc": {
+// CHECK-NEXT:           "offset": 1662,
 // CHECK-NEXT:           "col": 16,
 // CHECK-NEXT:           "tokLen": 1
 // CHECK-NEXT:          },
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 1662,
 // CHECK-NEXT:            "col": 16,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 1662,
 // CHECK-NEXT:            "col": 16,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -4685,10 +5111,12 @@
 // CHECK-NEXT:            "kind": "DeclRefExpr",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 1662,
 // CHECK-NEXT:              "col": 16,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 1662,
 // CHECK-NEXT:              "col": 16,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -4715,10 +5143,12 @@
 // CHECK-NEXT:        "kind": "DeclStmt",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1660,
 // CHECK-NEXT:          "col": 14,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1660,
 // CHECK-NEXT:          "col": 14,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -4728,15 +5158,18 @@
 // CHECK-NEXT:          "id": "0x{{.*}}",
 // CHECK-NEXT:          "kind": "VarDecl",
 // CHECK-NEXT:          "loc": {
+// CHECK-NEXT:           "offset": 1660,
 // CHECK-NEXT:           "col": 14,
 // CHECK-NEXT:           "tokLen": 1
 // CHECK-NEXT:          },
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 1660,
 // CHECK-NEXT:            "col": 14,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 1660,
 // CHECK-NEXT:            "col": 14,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -4755,10 +5188,12 @@
 // CHECK-NEXT:            "kind": "CXXMemberCallExpr",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 1660,
 // CHECK-NEXT:              "col": 14,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 1660,
 // CHECK-NEXT:              "col": 14,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -4773,10 +5208,12 @@
 // CHECK-NEXT:              "kind": "MemberExpr",
 // CHECK-NEXT:              "range": {
 // CHECK-NEXT:               "begin": {
+// CHECK-NEXT:                "offset": 1660,
 // CHECK-NEXT:                "col": 14,
 // CHECK-NEXT:                "tokLen": 1
 // CHECK-NEXT:               },
 // CHECK-NEXT:               "end": {
+// CHECK-NEXT:                "offset": 1660,
 // CHECK-NEXT:                "col": 14,
 // CHECK-NEXT:                "tokLen": 1
 // CHECK-NEXT:               }
@@ -4794,10 +5231,12 @@
 // CHECK-NEXT:                "kind": "ImplicitCastExpr",
 // CHECK-NEXT:                "range": {
 // CHECK-NEXT:                 "begin": {
+// CHECK-NEXT:                  "offset": 1660,
 // CHECK-NEXT:                  "col": 14,
 // CHECK-NEXT:                  "tokLen": 1
 // CHECK-NEXT:                 },
 // CHECK-NEXT:                 "end": {
+// CHECK-NEXT:                  "offset": 1660,
 // CHECK-NEXT:                  "col": 14,
 // CHECK-NEXT:                  "tokLen": 1
 // CHECK-NEXT:                 }
@@ -4813,10 +5252,12 @@
 // CHECK-NEXT:                  "kind": "DeclRefExpr",
 // CHECK-NEXT:                  "range": {
 // CHECK-NEXT:                   "begin": {
+// CHECK-NEXT:                    "offset": 1660,
 // CHECK-NEXT:                    "col": 14,
 // CHECK-NEXT:                    "tokLen": 1
 // CHECK-NEXT:                   },
 // CHECK-NEXT:                   "end": {
+// CHECK-NEXT:                    "offset": 1660,
 // CHECK-NEXT:                    "col": 14,
 // CHECK-NEXT:                    "tokLen": 1
 // CHECK-NEXT:                   }
@@ -4849,10 +5290,12 @@
 // CHECK-NEXT:        "kind": "DeclStmt",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1660,
 // CHECK-NEXT:          "col": 14,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1660,
 // CHECK-NEXT:          "col": 14,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -4862,15 +5305,18 @@
 // CHECK-NEXT:          "id": "0x{{.*}}",
 // CHECK-NEXT:          "kind": "VarDecl",
 // CHECK-NEXT:          "loc": {
+// CHECK-NEXT:           "offset": 1660,
 // CHECK-NEXT:           "col": 14,
 // CHECK-NEXT:           "tokLen": 1
 // CHECK-NEXT:          },
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 1660,
 // CHECK-NEXT:            "col": 14,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 1660,
 // CHECK-NEXT:            "col": 14,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -4889,10 +5335,12 @@
 // CHECK-NEXT:            "kind": "CXXMemberCallExpr",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 1660,
 // CHECK-NEXT:              "col": 14,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 1660,
 // CHECK-NEXT:              "col": 14,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -4907,10 +5355,12 @@
 // CHECK-NEXT:              "kind": "MemberExpr",
 // CHECK-NEXT:              "range": {
 // CHECK-NEXT:               "begin": {
+// CHECK-NEXT:                "offset": 1660,
 // CHECK-NEXT:                "col": 14,
 // CHECK-NEXT:                "tokLen": 1
 // CHECK-NEXT:               },
 // CHECK-NEXT:               "end": {
+// CHECK-NEXT:                "offset": 1660,
 // CHECK-NEXT:                "col": 14,
 // CHECK-NEXT:                "tokLen": 1
 // CHECK-NEXT:               }
@@ -4928,10 +5378,12 @@
 // CHECK-NEXT:                "kind": "ImplicitCastExpr",
 // CHECK-NEXT:                "range": {
 // CHECK-NEXT:                 "begin": {
+// CHECK-NEXT:                  "offset": 1660,
 // CHECK-NEXT:                  "col": 14,
 // CHECK-NEXT:                  "tokLen": 1
 // CHECK-NEXT:                 },
 // CHECK-NEXT:                 "end": {
+// CHECK-NEXT:                  "offset": 1660,
 // CHECK-NEXT:                  "col": 14,
 // CHECK-NEXT:                  "tokLen": 1
 // CHECK-NEXT:                 }
@@ -4947,10 +5399,12 @@
 // CHECK-NEXT:                  "kind": "DeclRefExpr",
 // CHECK-NEXT:                  "range": {
 // CHECK-NEXT:                   "begin": {
+// CHECK-NEXT:                    "offset": 1660,
 // CHECK-NEXT:                    "col": 14,
 // CHECK-NEXT:                    "tokLen": 1
 // CHECK-NEXT:                   },
 // CHECK-NEXT:                   "end": {
+// CHECK-NEXT:                    "offset": 1660,
 // CHECK-NEXT:                    "col": 14,
 // CHECK-NEXT:                    "tokLen": 1
 // CHECK-NEXT:                   }
@@ -4983,10 +5437,12 @@
 // CHECK-NEXT:        "kind": "BinaryOperator",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1660,
 // CHECK-NEXT:          "col": 14,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1660,
 // CHECK-NEXT:          "col": 14,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -5002,10 +5458,12 @@
 // CHECK-NEXT:          "kind": "ImplicitCastExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 1660,
 // CHECK-NEXT:            "col": 14,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 1660,
 // CHECK-NEXT:            "col": 14,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -5022,10 +5480,12 @@
 // CHECK-NEXT:            "kind": "DeclRefExpr",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 1660,
 // CHECK-NEXT:              "col": 14,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 1660,
 // CHECK-NEXT:              "col": 14,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -5052,10 +5512,12 @@
 // CHECK-NEXT:          "kind": "ImplicitCastExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 1660,
 // CHECK-NEXT:            "col": 14,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 1660,
 // CHECK-NEXT:            "col": 14,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -5072,10 +5534,12 @@
 // CHECK-NEXT:            "kind": "DeclRefExpr",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 1660,
 // CHECK-NEXT:              "col": 14,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 1660,
 // CHECK-NEXT:              "col": 14,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -5104,10 +5568,12 @@
 // CHECK-NEXT:        "kind": "UnaryOperator",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1660,
 // CHECK-NEXT:          "col": 14,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1660,
 // CHECK-NEXT:          "col": 14,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -5125,10 +5591,12 @@
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 1660,
 // CHECK-NEXT:            "col": 14,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 1660,
 // CHECK-NEXT:            "col": 14,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -5155,10 +5623,12 @@
 // CHECK-NEXT:        "kind": "DeclStmt",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1654,
 // CHECK-NEXT:          "col": 8,
 // CHECK-NEXT:          "tokLen": 3
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1663,
 // CHECK-NEXT:          "col": 17,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -5168,15 +5638,18 @@
 // CHECK-NEXT:          "id": "0x{{.*}}",
 // CHECK-NEXT:          "kind": "VarDecl",
 // CHECK-NEXT:          "loc": {
+// CHECK-NEXT:           "offset": 1658,
 // CHECK-NEXT:           "col": 12,
 // CHECK-NEXT:           "tokLen": 1
 // CHECK-NEXT:          },
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 1654,
 // CHECK-NEXT:            "col": 8,
 // CHECK-NEXT:            "tokLen": 3
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 1660,
 // CHECK-NEXT:            "col": 14,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -5192,10 +5665,12 @@
 // CHECK-NEXT:            "kind": "ImplicitCastExpr",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 1660,
 // CHECK-NEXT:              "col": 14,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 1660,
 // CHECK-NEXT:              "col": 14,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -5211,10 +5686,12 @@
 // CHECK-NEXT:              "kind": "UnaryOperator",
 // CHECK-NEXT:              "range": {
 // CHECK-NEXT:               "begin": {
+// CHECK-NEXT:                "offset": 1660,
 // CHECK-NEXT:                "col": 14,
 // CHECK-NEXT:                "tokLen": 1
 // CHECK-NEXT:               },
 // CHECK-NEXT:               "end": {
+// CHECK-NEXT:                "offset": 1660,
 // CHECK-NEXT:                "col": 14,
 // CHECK-NEXT:                "tokLen": 1
 // CHECK-NEXT:               }
@@ -5232,10 +5709,12 @@
 // CHECK-NEXT:                "kind": "ImplicitCastExpr",
 // CHECK-NEXT:                "range": {
 // CHECK-NEXT:                 "begin": {
+// CHECK-NEXT:                  "offset": 1660,
 // CHECK-NEXT:                  "col": 14,
 // CHECK-NEXT:                  "tokLen": 1
 // CHECK-NEXT:                 },
 // CHECK-NEXT:                 "end": {
+// CHECK-NEXT:                  "offset": 1660,
 // CHECK-NEXT:                  "col": 14,
 // CHECK-NEXT:                  "tokLen": 1
 // CHECK-NEXT:                 }
@@ -5252,10 +5731,12 @@
 // CHECK-NEXT:                  "kind": "DeclRefExpr",
 // CHECK-NEXT:                  "range": {
 // CHECK-NEXT:                   "begin": {
+// CHECK-NEXT:                    "offset": 1660,
 // CHECK-NEXT:                    "col": 14,
 // CHECK-NEXT:                    "tokLen": 1
 // CHECK-NEXT:                   },
 // CHECK-NEXT:                   "end": {
+// CHECK-NEXT:                    "offset": 1660,
 // CHECK-NEXT:                    "col": 14,
 // CHECK-NEXT:                    "tokLen": 1
 // CHECK-NEXT:                   }
@@ -5290,11 +5771,13 @@
 // CHECK-NEXT:        "kind": "NullStmt",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1669,
 // CHECK-NEXT:          "line": 113,
 // CHECK-NEXT:          "col": 5,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1669,
 // CHECK-NEXT:          "col": 5,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -5307,11 +5790,13 @@
 // CHECK-NEXT:      "kind": "CXXForRangeStmt",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1674,
 // CHECK-NEXT:        "line": 115,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 3
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1704,
 // CHECK-NEXT:        "line": 116,
 // CHECK-NEXT:        "col": 5,
 // CHECK-NEXT:        "tokLen": 1
@@ -5323,11 +5808,13 @@
 // CHECK-NEXT:        "kind": "DeclStmt",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1679,
 // CHECK-NEXT:          "line": 115,
 // CHECK-NEXT:          "col": 8,
 // CHECK-NEXT:          "tokLen": 3
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1684,
 // CHECK-NEXT:          "col": 13,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -5337,15 +5824,18 @@
 // CHECK-NEXT:          "id": "0x{{.*}}",
 // CHECK-NEXT:          "kind": "VarDecl",
 // CHECK-NEXT:          "loc": {
+// CHECK-NEXT:           "offset": 1683,
 // CHECK-NEXT:           "col": 12,
 // CHECK-NEXT:           "tokLen": 1
 // CHECK-NEXT:          },
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 1679,
 // CHECK-NEXT:            "col": 8,
 // CHECK-NEXT:            "tokLen": 3
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 1683,
 // CHECK-NEXT:            "col": 12,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -5362,10 +5852,12 @@
 // CHECK-NEXT:        "kind": "DeclStmt",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1694,
 // CHECK-NEXT:          "col": 23,
 // CHECK-NEXT:          "tokLen": 4
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1694,
 // CHECK-NEXT:          "col": 23,
 // CHECK-NEXT:          "tokLen": 4
 // CHECK-NEXT:         }
@@ -5375,15 +5867,18 @@
 // CHECK-NEXT:          "id": "0x{{.*}}",
 // CHECK-NEXT:          "kind": "VarDecl",
 // CHECK-NEXT:          "loc": {
+// CHECK-NEXT:           "offset": 1694,
 // CHECK-NEXT:           "col": 23,
 // CHECK-NEXT:           "tokLen": 4
 // CHECK-NEXT:          },
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 1694,
 // CHECK-NEXT:            "col": 23,
 // CHECK-NEXT:            "tokLen": 4
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 1694,
 // CHECK-NEXT:            "col": 23,
 // CHECK-NEXT:            "tokLen": 4
 // CHECK-NEXT:           }
@@ -5401,10 +5896,12 @@
 // CHECK-NEXT:            "kind": "DeclRefExpr",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 1694,
 // CHECK-NEXT:              "col": 23,
 // CHECK-NEXT:              "tokLen": 4
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 1694,
 // CHECK-NEXT:              "col": 23,
 // CHECK-NEXT:              "tokLen": 4
 // CHECK-NEXT:             }
@@ -5431,10 +5928,12 @@
 // CHECK-NEXT:        "kind": "DeclStmt",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1692,
 // CHECK-NEXT:          "col": 21,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1692,
 // CHECK-NEXT:          "col": 21,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -5444,15 +5943,18 @@
 // CHECK-NEXT:          "id": "0x{{.*}}",
 // CHECK-NEXT:          "kind": "VarDecl",
 // CHECK-NEXT:          "loc": {
+// CHECK-NEXT:           "offset": 1692,
 // CHECK-NEXT:           "col": 21,
 // CHECK-NEXT:           "tokLen": 1
 // CHECK-NEXT:          },
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 1692,
 // CHECK-NEXT:            "col": 21,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 1692,
 // CHECK-NEXT:            "col": 21,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -5471,10 +5973,12 @@
 // CHECK-NEXT:            "kind": "ImplicitCastExpr",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 1692,
 // CHECK-NEXT:              "col": 21,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 1692,
 // CHECK-NEXT:              "col": 21,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -5490,10 +5994,12 @@
 // CHECK-NEXT:              "kind": "DeclRefExpr",
 // CHECK-NEXT:              "range": {
 // CHECK-NEXT:               "begin": {
+// CHECK-NEXT:                "offset": 1692,
 // CHECK-NEXT:                "col": 21,
 // CHECK-NEXT:                "tokLen": 1
 // CHECK-NEXT:               },
 // CHECK-NEXT:               "end": {
+// CHECK-NEXT:                "offset": 1692,
 // CHECK-NEXT:                "col": 21,
 // CHECK-NEXT:                "tokLen": 1
 // CHECK-NEXT:               }
@@ -5522,10 +6028,12 @@
 // CHECK-NEXT:        "kind": "DeclStmt",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1692,
 // CHECK-NEXT:          "col": 21,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1692,
 // CHECK-NEXT:          "col": 21,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -5535,15 +6043,18 @@
 // CHECK-NEXT:          "id": "0x{{.*}}",
 // CHECK-NEXT:          "kind": "VarDecl",
 // CHECK-NEXT:          "loc": {
+// CHECK-NEXT:           "offset": 1692,
 // CHECK-NEXT:           "col": 21,
 // CHECK-NEXT:           "tokLen": 1
 // CHECK-NEXT:          },
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 1692,
 // CHECK-NEXT:            "col": 21,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 1694,
 // CHECK-NEXT:            "col": 23,
 // CHECK-NEXT:            "tokLen": 4
 // CHECK-NEXT:           }
@@ -5562,10 +6073,12 @@
 // CHECK-NEXT:            "kind": "BinaryOperator",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 1692,
 // CHECK-NEXT:              "col": 21,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 1694,
 // CHECK-NEXT:              "col": 23,
 // CHECK-NEXT:              "tokLen": 4
 // CHECK-NEXT:             }
@@ -5581,10 +6094,12 @@
 // CHECK-NEXT:              "kind": "ImplicitCastExpr",
 // CHECK-NEXT:              "range": {
 // CHECK-NEXT:               "begin": {
+// CHECK-NEXT:                "offset": 1692,
 // CHECK-NEXT:                "col": 21,
 // CHECK-NEXT:                "tokLen": 1
 // CHECK-NEXT:               },
 // CHECK-NEXT:               "end": {
+// CHECK-NEXT:                "offset": 1692,
 // CHECK-NEXT:                "col": 21,
 // CHECK-NEXT:                "tokLen": 1
 // CHECK-NEXT:               }
@@ -5600,10 +6115,12 @@
 // CHECK-NEXT:                "kind": "DeclRefExpr",
 // CHECK-NEXT:                "range": {
 // CHECK-NEXT:                 "begin": {
+// CHECK-NEXT:                  "offset": 1692,
 // CHECK-NEXT:                  "col": 21,
 // CHECK-NEXT:                  "tokLen": 1
 // CHECK-NEXT:                 },
 // CHECK-NEXT:                 "end": {
+// CHECK-NEXT:                  "offset": 1692,
 // CHECK-NEXT:                  "col": 21,
 // CHECK-NEXT:                  "tokLen": 1
 // CHECK-NEXT:                 }
@@ -5628,10 +6145,12 @@
 // CHECK-NEXT:              "kind": "IntegerLiteral",
 // CHECK-NEXT:              "range": {
 // CHECK-NEXT:               "begin": {
+// CHECK-NEXT:                "offset": 1694,
 // CHECK-NEXT:                "col": 23,
 // CHECK-NEXT:                "tokLen": 4
 // CHECK-NEXT:               },
 // CHECK-NEXT:               "end": {
+// CHECK-NEXT:                "offset": 1694,
 // CHECK-NEXT:                "col": 23,
 // CHECK-NEXT:                "tokLen": 4
 // CHECK-NEXT:               }
@@ -5653,10 +6172,12 @@
 // CHECK-NEXT:        "kind": "BinaryOperator",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1692,
 // CHECK-NEXT:          "col": 21,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1692,
 // CHECK-NEXT:          "col": 21,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -5672,10 +6193,12 @@
 // CHECK-NEXT:          "kind": "ImplicitCastExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 1692,
 // CHECK-NEXT:            "col": 21,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 1692,
 // CHECK-NEXT:            "col": 21,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -5692,10 +6215,12 @@
 // CHECK-NEXT:            "kind": "DeclRefExpr",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 1692,
 // CHECK-NEXT:              "col": 21,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 1692,
 // CHECK-NEXT:              "col": 21,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -5722,10 +6247,12 @@
 // CHECK-NEXT:          "kind": "ImplicitCastExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 1692,
 // CHECK-NEXT:            "col": 21,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 1692,
 // CHECK-NEXT:            "col": 21,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -5742,10 +6269,12 @@
 // CHECK-NEXT:            "kind": "DeclRefExpr",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 1692,
 // CHECK-NEXT:              "col": 21,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 1692,
 // CHECK-NEXT:              "col": 21,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -5774,10 +6303,12 @@
 // CHECK-NEXT:        "kind": "UnaryOperator",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1692,
 // CHECK-NEXT:          "col": 21,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1692,
 // CHECK-NEXT:          "col": 21,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -5795,10 +6326,12 @@
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 1692,
 // CHECK-NEXT:            "col": 21,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 1692,
 // CHECK-NEXT:            "col": 21,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -5825,10 +6358,12 @@
 // CHECK-NEXT:        "kind": "DeclStmt",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1686,
 // CHECK-NEXT:          "col": 15,
 // CHECK-NEXT:          "tokLen": 3
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1698,
 // CHECK-NEXT:          "col": 27,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -5838,15 +6373,18 @@
 // CHECK-NEXT:          "id": "0x{{.*}}",
 // CHECK-NEXT:          "kind": "VarDecl",
 // CHECK-NEXT:          "loc": {
+// CHECK-NEXT:           "offset": 1690,
 // CHECK-NEXT:           "col": 19,
 // CHECK-NEXT:           "tokLen": 1
 // CHECK-NEXT:          },
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 1686,
 // CHECK-NEXT:            "col": 15,
 // CHECK-NEXT:            "tokLen": 3
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 1692,
 // CHECK-NEXT:            "col": 21,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -5862,10 +6400,12 @@
 // CHECK-NEXT:            "kind": "ImplicitCastExpr",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 1692,
 // CHECK-NEXT:              "col": 21,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 1692,
 // CHECK-NEXT:              "col": 21,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -5881,10 +6421,12 @@
 // CHECK-NEXT:              "kind": "UnaryOperator",
 // CHECK-NEXT:              "range": {
 // CHECK-NEXT:               "begin": {
+// CHECK-NEXT:                "offset": 1692,
 // CHECK-NEXT:                "col": 21,
 // CHECK-NEXT:                "tokLen": 1
 // CHECK-NEXT:               },
 // CHECK-NEXT:               "end": {
+// CHECK-NEXT:                "offset": 1692,
 // CHECK-NEXT:                "col": 21,
 // CHECK-NEXT:                "tokLen": 1
 // CHECK-NEXT:               }
@@ -5902,10 +6444,12 @@
 // CHECK-NEXT:                "kind": "ImplicitCastExpr",
 // CHECK-NEXT:                "range": {
 // CHECK-NEXT:                 "begin": {
+// CHECK-NEXT:                  "offset": 1692,
 // CHECK-NEXT:                  "col": 21,
 // CHECK-NEXT:                  "tokLen": 1
 // CHECK-NEXT:                 },
 // CHECK-NEXT:                 "end": {
+// CHECK-NEXT:                  "offset": 1692,
 // CHECK-NEXT:                  "col": 21,
 // CHECK-NEXT:                  "tokLen": 1
 // CHECK-NEXT:                 }
@@ -5922,10 +6466,12 @@
 // CHECK-NEXT:                  "kind": "DeclRefExpr",
 // CHECK-NEXT:                  "range": {
 // CHECK-NEXT:                   "begin": {
+// CHECK-NEXT:                    "offset": 1692,
 // CHECK-NEXT:                    "col": 21,
 // CHECK-NEXT:                    "tokLen": 1
 // CHECK-NEXT:                   },
 // CHECK-NEXT:                   "end": {
+// CHECK-NEXT:                    "offset": 1692,
 // CHECK-NEXT:                    "col": 21,
 // CHECK-NEXT:                    "tokLen": 1
 // CHECK-NEXT:                   }
@@ -5960,11 +6506,13 @@
 // CHECK-NEXT:        "kind": "NullStmt",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1704,
 // CHECK-NEXT:          "line": 116,
 // CHECK-NEXT:          "col": 5,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1704,
 // CHECK-NEXT:          "col": 5,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -5980,17 +6528,20 @@
 
 // CHECK:  "kind": "FunctionTemplateDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 1737,
 // CHECK-NEXT:   "line": 120,
 // CHECK-NEXT:   "col": 6,
 // CHECK-NEXT:   "tokLen": 33
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 1709,
 // CHECK-NEXT:    "line": 119,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 8
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 1844,
 // CHECK-NEXT:    "line": 123,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
@@ -6002,16 +6553,19 @@
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "TemplateTypeParmDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 1728,
 // CHECK-NEXT:     "line": 119,
 // CHECK-NEXT:     "col": 20,
 // CHECK-NEXT:     "tokLen": 2
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 1719,
 // CHECK-NEXT:      "col": 11,
 // CHECK-NEXT:      "tokLen": 8
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 1728,
 // CHECK-NEXT:      "col": 20,
 // CHECK-NEXT:      "tokLen": 2
 // CHECK-NEXT:     }
@@ -6026,16 +6580,19 @@
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "FunctionDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 1737,
 // CHECK-NEXT:     "line": 120,
 // CHECK-NEXT:     "col": 6,
 // CHECK-NEXT:     "tokLen": 33
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 1732,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 4
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 1844,
 // CHECK-NEXT:      "line": 123,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 1
@@ -6050,16 +6607,19 @@
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "ParmVarDecl",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 1774,
 // CHECK-NEXT:       "line": 120,
 // CHECK-NEXT:       "col": 43,
 // CHECK-NEXT:       "tokLen": 1
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1771,
 // CHECK-NEXT:        "col": 40,
 // CHECK-NEXT:        "tokLen": 2
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1774,
 // CHECK-NEXT:        "col": 43,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -6075,10 +6635,12 @@
 // CHECK-NEXT:      "kind": "CompoundStmt",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1777,
 // CHECK-NEXT:        "col": 46,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1844,
 // CHECK-NEXT:        "line": 123,
 // CHECK-NEXT:        "col": 1,
 // CHECK-NEXT:        "tokLen": 1
@@ -6090,11 +6652,13 @@
 // CHECK-NEXT:        "kind": "GenericSelectionExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1781,
 // CHECK-NEXT:          "line": 121,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 8
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1813,
 // CHECK-NEXT:          "col": 35,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -6110,10 +6674,12 @@
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 1790,
 // CHECK-NEXT:            "col": 12,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 1790,
 // CHECK-NEXT:            "col": 12,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -6163,10 +6729,12 @@
 // CHECK-NEXT:            "kind": "IntegerLiteral",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 1799,
 // CHECK-NEXT:              "col": 21,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 1799,
 // CHECK-NEXT:              "col": 21,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -6187,10 +6755,12 @@
 // CHECK-NEXT:            "kind": "IntegerLiteral",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 1812,
 // CHECK-NEXT:              "col": 34,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 1812,
 // CHECK-NEXT:              "col": 34,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
@@ -6210,11 +6780,13 @@
 // CHECK-NEXT:        "kind": "GenericSelectionExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1818,
 // CHECK-NEXT:          "line": 122,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 8
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1841,
 // CHECK-NEXT:          "col": 26,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -6230,10 +6802,12 @@
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 1827,
 // CHECK-NEXT:            "col": 12,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 1827,
 // CHECK-NEXT:            "col": 12,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -6276,10 +6850,12 @@
 // CHECK-NEXT:            "kind": "IntegerLiteral",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 1840,
 // CHECK-NEXT:              "col": 25,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 1840,
 // CHECK-NEXT:              "col": 25,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
diff --git a/test/AST/ast-dump-stmt-json.m b/test/AST/ast-dump-stmt-json.m
index c419708..c2624b7 100644
--- a/test/AST/ast-dump-stmt-json.m
+++ b/test/AST/ast-dump-stmt-json.m
@@ -22,195 +22,216 @@
 // 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": 3, 
-// CHECK-NEXT:   "col": 6, 
+// CHECK-NEXT:   "offset": 143,
+// CHECK-NEXT:   "file": "{{.*}}",
+// CHECK-NEXT:   "line": 3,
+// 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": 138,
+// CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 4
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
-// CHECK-NEXT:    "line": 5, 
-// CHECK-NEXT:    "col": 1, 
+// CHECK-NEXT:    "offset": 177,
+// CHECK-NEXT:    "line": 5,
+// CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   }
-// CHECK-NEXT:  }, 
-// CHECK-NEXT:  "name": "TestBlockExpr", 
+// CHECK-NEXT:  },
+// CHECK-NEXT:  "name": "TestBlockExpr",
 // 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": 3, 
-// CHECK-NEXT:     "col": 24, 
+// CHECK-NEXT:     "offset": 161,
+// CHECK-NEXT:     "line": 3,
+// 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": 157,
+// CHECK-NEXT:      "col": 20,
 // CHECK-NEXT:      "tokLen": 3
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "col": 24, 
+// CHECK-NEXT:      "offset": 161,
+// 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": 164,
+// CHECK-NEXT:      "col": 27,
 // CHECK-NEXT:      "tokLen": 1
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "line": 5, 
-// CHECK-NEXT:      "col": 1, 
+// CHECK-NEXT:      "offset": 177,
+// CHECK-NEXT:      "line": 5,
+// 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": 4, 
-// CHECK-NEXT:        "col": 3, 
+// CHECK-NEXT:        "offset": 168,
+// CHECK-NEXT:        "line": 4,
+// CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
-// CHECK-NEXT:       }, 
+// CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
-// CHECK-NEXT:        "col": 9, 
+// CHECK-NEXT:        "offset": 174,
+// CHECK-NEXT:        "col": 9,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
-// CHECK-NEXT:      }, 
+// CHECK-NEXT:      },
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "void (^)(void)"
-// 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": 168,
+// CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
-// CHECK-NEXT:         }, 
+// CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "col": 9, 
+// CHECK-NEXT:          "offset": 174,
+// CHECK-NEXT:          "col": 9,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
-// CHECK-NEXT:        }, 
+// CHECK-NEXT:        },
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "void (^)(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": "BlockDecl", 
+// CHECK-NEXT:          "id": "0x{{.*}}",
+// CHECK-NEXT:          "kind": "BlockDecl",
 // CHECK-NEXT:          "loc": {
-// CHECK-NEXT:           "col": 3, 
+// CHECK-NEXT:           "offset": 168,
+// 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": 168,
+// CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
-// CHECK-NEXT:           }, 
+// CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
-// CHECK-NEXT:            "col": 9, 
+// CHECK-NEXT:            "offset": 174,
+// CHECK-NEXT:            "col": 9,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
-// CHECK-NEXT:          }, 
+// CHECK-NEXT:          },
 // CHECK-NEXT:          "inner": [
 // 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": 4, 
+// CHECK-NEXT:              "offset": 169,
+// CHECK-NEXT:              "col": 4,
 // CHECK-NEXT:              "tokLen": 1
-// CHECK-NEXT:             }, 
+// CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
-// CHECK-NEXT:              "col": 9, 
+// CHECK-NEXT:              "offset": 174,
+// CHECK-NEXT:              "col": 9,
 // 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": 6, 
+// CHECK-NEXT:                "offset": 171,
+// CHECK-NEXT:                "col": 6,
 // CHECK-NEXT:                "tokLen": 1
-// CHECK-NEXT:               }, 
+// CHECK-NEXT:               },
 // CHECK-NEXT:               "end": {
-// CHECK-NEXT:                "col": 6, 
+// CHECK-NEXT:                "offset": 171,
+// CHECK-NEXT:                "col": 6,
 // 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": 6, 
+// CHECK-NEXT:                  "offset": 171,
+// CHECK-NEXT:                  "col": 6,
 // CHECK-NEXT:                  "tokLen": 1
-// CHECK-NEXT:                 }, 
+// CHECK-NEXT:                 },
 // CHECK-NEXT:                 "end": {
-// CHECK-NEXT:                  "col": 6, 
+// CHECK-NEXT:                  "offset": 171,
+// CHECK-NEXT:                  "col": 6,
 // 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:                 }
@@ -232,195 +253,216 @@
 // CHECK-NEXT: }
 
 
-// CHECK:  "kind": "FunctionDecl", 
+// CHECK:  "kind": "FunctionDecl",
 // CHECK-NEXT:  "loc": {
-// CHECK-NEXT:   "file": "{{.*}}", 
-// CHECK-NEXT:   "line": 7, 
-// CHECK-NEXT:   "col": 6, 
+// CHECK-NEXT:   "offset": 185,
+// CHECK-NEXT:   "file": "{{.*}}",
+// CHECK-NEXT:   "line": 7,
+// 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": 180,
+// CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 4
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
-// CHECK-NEXT:    "line": 9, 
-// CHECK-NEXT:    "col": 1, 
+// CHECK-NEXT:    "offset": 225,
+// CHECK-NEXT:    "line": 9,
+// CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   }
-// CHECK-NEXT:  }, 
-// CHECK-NEXT:  "name": "TestExprWithCleanup", 
+// CHECK-NEXT:  },
+// CHECK-NEXT:  "name": "TestExprWithCleanup",
 // 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": 7, 
-// CHECK-NEXT:     "col": 30, 
+// CHECK-NEXT:     "offset": 209,
+// CHECK-NEXT:     "line": 7,
+// CHECK-NEXT:     "col": 30,
 // CHECK-NEXT:     "tokLen": 1
-// CHECK-NEXT:    }, 
+// CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
-// CHECK-NEXT:      "col": 26, 
+// CHECK-NEXT:      "offset": 205,
+// CHECK-NEXT:      "col": 26,
 // CHECK-NEXT:      "tokLen": 3
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "col": 30, 
+// CHECK-NEXT:      "offset": 209,
+// CHECK-NEXT:      "col": 30,
 // 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": 33, 
+// CHECK-NEXT:      "offset": 212,
+// CHECK-NEXT:      "col": 33,
 // CHECK-NEXT:      "tokLen": 1
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "line": 9, 
-// CHECK-NEXT:      "col": 1, 
+// CHECK-NEXT:      "offset": 225,
+// CHECK-NEXT:      "line": 9,
+// 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": 8, 
-// CHECK-NEXT:        "col": 3, 
+// CHECK-NEXT:        "offset": 216,
+// CHECK-NEXT:        "line": 8,
+// CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
-// CHECK-NEXT:       }, 
+// CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
-// CHECK-NEXT:        "col": 9, 
+// CHECK-NEXT:        "offset": 222,
+// CHECK-NEXT:        "col": 9,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
-// CHECK-NEXT:      }, 
+// CHECK-NEXT:      },
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "qualType": "void (^)(void)"
-// 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": 216,
+// CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
-// CHECK-NEXT:         }, 
+// CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "col": 9, 
+// CHECK-NEXT:          "offset": 222,
+// CHECK-NEXT:          "col": 9,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
-// CHECK-NEXT:        }, 
+// CHECK-NEXT:        },
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "qualType": "void (^)(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": "BlockDecl", 
+// CHECK-NEXT:          "id": "0x{{.*}}",
+// CHECK-NEXT:          "kind": "BlockDecl",
 // CHECK-NEXT:          "loc": {
-// CHECK-NEXT:           "col": 3, 
+// CHECK-NEXT:           "offset": 216,
+// 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": 216,
+// CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
-// CHECK-NEXT:           }, 
+// CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
-// CHECK-NEXT:            "col": 9, 
+// CHECK-NEXT:            "offset": 222,
+// CHECK-NEXT:            "col": 9,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
-// CHECK-NEXT:          }, 
+// CHECK-NEXT:          },
 // CHECK-NEXT:          "inner": [
 // 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": 4, 
+// CHECK-NEXT:              "offset": 217,
+// CHECK-NEXT:              "col": 4,
 // CHECK-NEXT:              "tokLen": 1
-// CHECK-NEXT:             }, 
+// CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
-// CHECK-NEXT:              "col": 9, 
+// CHECK-NEXT:              "offset": 222,
+// CHECK-NEXT:              "col": 9,
 // 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": 6, 
+// CHECK-NEXT:                "offset": 219,
+// CHECK-NEXT:                "col": 6,
 // CHECK-NEXT:                "tokLen": 1
-// CHECK-NEXT:               }, 
+// CHECK-NEXT:               },
 // CHECK-NEXT:               "end": {
-// CHECK-NEXT:                "col": 6, 
+// CHECK-NEXT:                "offset": 219,
+// CHECK-NEXT:                "col": 6,
 // 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": 6, 
+// CHECK-NEXT:                  "offset": 219,
+// CHECK-NEXT:                  "col": 6,
 // CHECK-NEXT:                  "tokLen": 1
-// CHECK-NEXT:                 }, 
+// CHECK-NEXT:                 },
 // CHECK-NEXT:                 "end": {
-// CHECK-NEXT:                  "col": 6, 
+// CHECK-NEXT:                  "offset": 219,
+// CHECK-NEXT:                  "col": 6,
 // 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:                 }
@@ -442,242 +484,271 @@
 // CHECK-NEXT: }
 
 
-// CHECK:  "kind": "FunctionDecl", 
+// CHECK:  "kind": "FunctionDecl",
 // CHECK-NEXT:  "loc": {
-// CHECK-NEXT:   "file": "{{.*}}", 
-// CHECK-NEXT:   "line": 14, 
-// CHECK-NEXT:   "col": 6, 
+// CHECK-NEXT:   "offset": 252,
+// CHECK-NEXT:   "file": "{{.*}}",
+// CHECK-NEXT:   "line": 14,
+// 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": 247,
+// CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 4
-// CHECK-NEXT:   }, 
+// CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
-// CHECK-NEXT:    "line": 20, 
-// CHECK-NEXT:    "col": 1, 
+// CHECK-NEXT:    "offset": 341,
+// CHECK-NEXT:    "line": 20,
+// CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   }
-// CHECK-NEXT:  }, 
-// CHECK-NEXT:  "name": "TestObjCAtCatchStmt", 
+// CHECK-NEXT:  },
+// CHECK-NEXT:  "name": "TestObjCAtCatchStmt",
 // 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": 14, 
-// CHECK-NEXT:      "col": 28, 
+// CHECK-NEXT:      "offset": 274,
+// CHECK-NEXT:      "line": 14,
+// CHECK-NEXT:      "col": 28,
 // CHECK-NEXT:      "tokLen": 1
-// CHECK-NEXT:     }, 
+// CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
-// CHECK-NEXT:      "line": 20, 
-// CHECK-NEXT:      "col": 1, 
+// CHECK-NEXT:      "offset": 341,
+// CHECK-NEXT:      "line": 20,
+// 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": "ObjCAtTryStmt", 
+// CHECK-NEXT:      "id": "0x{{.*}}",
+// CHECK-NEXT:      "kind": "ObjCAtTryStmt",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
-// CHECK-NEXT:        "line": 15, 
-// CHECK-NEXT:        "col": 3, 
+// CHECK-NEXT:        "offset": 278,
+// CHECK-NEXT:        "line": 15,
+// CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
-// CHECK-NEXT:       }, 
+// CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
-// CHECK-NEXT:        "line": 19, 
-// CHECK-NEXT:        "col": 3, 
+// CHECK-NEXT:        "offset": 339,
+// CHECK-NEXT:        "line": 19,
+// CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
-// 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": 15, 
-// CHECK-NEXT:          "col": 8, 
+// CHECK-NEXT:          "offset": 283,
+// CHECK-NEXT:          "line": 15,
+// CHECK-NEXT:          "col": 8,
 // CHECK-NEXT:          "tokLen": 1
-// CHECK-NEXT:         }, 
+// CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "line": 16, 
-// CHECK-NEXT:          "col": 3, 
+// CHECK-NEXT:          "offset": 287,
+// CHECK-NEXT:          "line": 16,
+// CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
 // CHECK-NEXT:        }
-// CHECK-NEXT:       }, 
+// CHECK-NEXT:       },
 // CHECK-NEXT:       {
-// CHECK-NEXT:        "id": "0x{{.*}}", 
-// CHECK-NEXT:        "kind": "ObjCAtCatchStmt", 
+// CHECK-NEXT:        "id": "0x{{.*}}",
+// CHECK-NEXT:        "kind": "ObjCAtCatchStmt",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
-// CHECK-NEXT:          "col": 5, 
+// CHECK-NEXT:          "offset": 289,
+// CHECK-NEXT:          "col": 5,
 // CHECK-NEXT:          "tokLen": 1
-// CHECK-NEXT:         }, 
+// CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "line": 17, 
-// CHECK-NEXT:          "col": 3, 
+// CHECK-NEXT:          "offset": 306,
+// CHECK-NEXT:          "line": 17,
+// CHECK-NEXT:          "col": 3,
 // 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:           "line": 16, 
-// CHECK-NEXT:           "col": 15, 
+// CHECK-NEXT:           "offset": 299,
+// CHECK-NEXT:           "line": 16,
+// CHECK-NEXT:           "col": 15,
 // CHECK-NEXT:           "tokLen": 1
-// CHECK-NEXT:          }, 
+// CHECK-NEXT:          },
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
-// CHECK-NEXT:            "col": 12, 
+// CHECK-NEXT:            "offset": 296,
+// CHECK-NEXT:            "col": 12,
 // CHECK-NEXT:            "tokLen": 1
-// CHECK-NEXT:           }, 
+// CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
-// CHECK-NEXT:            "col": 15, 
+// CHECK-NEXT:            "offset": 299,
+// CHECK-NEXT:            "col": 15,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
-// CHECK-NEXT:          }, 
-// CHECK-NEXT:          "name": "a", 
+// CHECK-NEXT:          },
+// CHECK-NEXT:          "name": "a",
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "qualType": "A *"
 // 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": 18, 
+// CHECK-NEXT:            "offset": 302,
+// CHECK-NEXT:            "col": 18,
 // CHECK-NEXT:            "tokLen": 1
-// CHECK-NEXT:           }, 
+// CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
-// CHECK-NEXT:            "line": 17, 
-// CHECK-NEXT:            "col": 3, 
+// CHECK-NEXT:            "offset": 306,
+// CHECK-NEXT:            "line": 17,
+// CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
 // CHECK-NEXT:          }
 // CHECK-NEXT:         }
 // CHECK-NEXT:        ]
-// CHECK-NEXT:       }, 
+// CHECK-NEXT:       },
 // CHECK-NEXT:       {
-// CHECK-NEXT:        "id": "0x{{.*}}", 
-// CHECK-NEXT:        "kind": "ObjCAtCatchStmt", 
+// CHECK-NEXT:        "id": "0x{{.*}}",
+// CHECK-NEXT:        "kind": "ObjCAtCatchStmt",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
-// CHECK-NEXT:          "col": 5, 
+// CHECK-NEXT:          "offset": 308,
+// CHECK-NEXT:          "col": 5,
 // CHECK-NEXT:          "tokLen": 1
-// CHECK-NEXT:         }, 
+// CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "line": 18, 
-// CHECK-NEXT:          "col": 3, 
+// CHECK-NEXT:          "offset": 324,
+// CHECK-NEXT:          "line": 18,
+// CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
-// CHECK-NEXT:        }, 
-// CHECK-NEXT:        "isCatchAll": true, 
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "isCatchAll": true,
 // 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": 17, 
-// CHECK-NEXT:            "col": 17, 
+// CHECK-NEXT:            "offset": 320,
+// CHECK-NEXT:            "line": 17,
+// CHECK-NEXT:            "col": 17,
 // CHECK-NEXT:            "tokLen": 1
-// CHECK-NEXT:           }, 
+// CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
-// CHECK-NEXT:            "line": 18, 
-// CHECK-NEXT:            "col": 3, 
+// CHECK-NEXT:            "offset": 324,
+// CHECK-NEXT:            "line": 18,
+// CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
 // CHECK-NEXT:          }
 // CHECK-NEXT:         }
 // CHECK-NEXT:        ]
-// CHECK-NEXT:       }, 
+// CHECK-NEXT:       },
 // CHECK-NEXT:       {
-// CHECK-NEXT:        "id": "0x{{.*}}", 
-// CHECK-NEXT:        "kind": "ObjCAtFinallyStmt", 
+// CHECK-NEXT:        "id": "0x{{.*}}",
+// CHECK-NEXT:        "kind": "ObjCAtFinallyStmt",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
-// CHECK-NEXT:          "col": 5, 
+// CHECK-NEXT:          "offset": 326,
+// CHECK-NEXT:          "col": 5,
 // CHECK-NEXT:          "tokLen": 1
-// CHECK-NEXT:         }, 
+// CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
-// CHECK-NEXT:          "line": 19, 
-// CHECK-NEXT:          "col": 3, 
+// CHECK-NEXT:          "offset": 339,
+// CHECK-NEXT:          "line": 19,
+// CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
-// CHECK-NEXT:        }, 
+// CHECK-NEXT:        },
 // CHECK-NEXT:        "inner": [
 // CHECK-NEXT:         {
-// CHECK-NEXT:          "id": "0x{{.*}}", 
-// CHECK-NEXT:          "kind": "CapturedStmt", 
+// CHECK-NEXT:          "id": "0x{{.*}}",
+// CHECK-NEXT:          "kind": "CapturedStmt",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
-// CHECK-NEXT:            "line": 18, 
-// CHECK-NEXT:            "col": 14, 
+// CHECK-NEXT:            "offset": 335,
+// CHECK-NEXT:            "line": 18,
+// CHECK-NEXT:            "col": 14,
 // CHECK-NEXT:            "tokLen": 1
-// CHECK-NEXT:           }, 
+// CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
-// CHECK-NEXT:            "line": 19, 
-// CHECK-NEXT:            "col": 3, 
+// CHECK-NEXT:            "offset": 339,
+// CHECK-NEXT:            "line": 19,
+// CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
-// CHECK-NEXT:          }, 
+// CHECK-NEXT:          },
 // CHECK-NEXT:          "inner": [
 // CHECK-NEXT:           {
-// CHECK-NEXT:            "id": "0x{{.*}}", 
-// CHECK-NEXT:            "kind": "CapturedDecl", 
-// CHECK-NEXT:            "loc": {}, 
+// CHECK-NEXT:            "id": "0x{{.*}}",
+// CHECK-NEXT:            "kind": "CapturedDecl",
+// CHECK-NEXT:            "loc": {},
 // CHECK-NEXT:            "range": {
-// CHECK-NEXT:             "begin": {}, 
+// CHECK-NEXT:             "begin": {},
 // CHECK-NEXT:             "end": {}
-// 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": 18, 
-// CHECK-NEXT:                "col": 14, 
+// CHECK-NEXT:                "offset": 335,
+// CHECK-NEXT:                "line": 18,
+// CHECK-NEXT:                "col": 14,
 // CHECK-NEXT:                "tokLen": 1
-// CHECK-NEXT:               }, 
+// CHECK-NEXT:               },
 // CHECK-NEXT:               "end": {
-// CHECK-NEXT:                "line": 19, 
-// CHECK-NEXT:                "col": 3, 
+// CHECK-NEXT:                "offset": 339,
+// CHECK-NEXT:                "line": 19,
+// CHECK-NEXT:                "col": 3,
 // CHECK-NEXT:                "tokLen": 1
 // CHECK-NEXT:               }
 // CHECK-NEXT:              }
-// CHECK-NEXT:             }, 
+// CHECK-NEXT:             },
 // CHECK-NEXT:             {
-// CHECK-NEXT:              "id": "0x{{.*}}", 
-// CHECK-NEXT:              "kind": "ImplicitParamDecl", 
+// CHECK-NEXT:              "id": "0x{{.*}}",
+// CHECK-NEXT:              "kind": "ImplicitParamDecl",
 // CHECK-NEXT:              "loc": {
-// CHECK-NEXT:               "line": 18, 
-// CHECK-NEXT:               "col": 14, 
+// CHECK-NEXT:               "offset": 335,
+// CHECK-NEXT:               "line": 18,
+// CHECK-NEXT:               "col": 14,
 // CHECK-NEXT:               "tokLen": 1
-// CHECK-NEXT:              }, 
+// CHECK-NEXT:              },
 // CHECK-NEXT:              "range": {
 // CHECK-NEXT:               "begin": {
-// CHECK-NEXT:                "col": 14, 
+// CHECK-NEXT:                "offset": 335,
+// CHECK-NEXT:                "col": 14,
 // CHECK-NEXT:                "tokLen": 1
-// CHECK-NEXT:               }, 
+// CHECK-NEXT:               },
 // CHECK-NEXT:               "end": {
-// CHECK-NEXT:                "col": 14, 
+// CHECK-NEXT:                "offset": 335,
+// CHECK-NEXT:                "col": 14,
 // CHECK-NEXT:                "tokLen": 1
 // CHECK-NEXT:               }
-// CHECK-NEXT:              }, 
-// CHECK-NEXT:              "isImplicit": true, 
-// CHECK-NEXT:              "name": "__context", 
+// CHECK-NEXT:              },
+// CHECK-NEXT:              "isImplicit": true,
+// CHECK-NEXT:              "name": "__context",
 // CHECK-NEXT:              "type": {
 // CHECK-NEXT:               "qualType": "struct (anonymous at {{.*}}:18:14) *"
 // CHECK-NEXT:              }
diff --git a/test/AST/ast-dump-template-decls-json.cpp b/test/AST/ast-dump-template-decls-json.cpp
index fc9aeca..e710ed0 100644
--- a/test/AST/ast-dump-template-decls-json.cpp
+++ b/test/AST/ast-dump-template-decls-json.cpp
@@ -213,6 +213,7 @@
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "FunctionTemplateDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 142,
 // CHECK-NEXT:     "file": "{{.*}}",
 // CHECK-NEXT:     "line": 4,
 // CHECK-NEXT:     "col": 6,
@@ -220,11 +221,13 @@
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 114,
 // CHECK-NEXT:      "line": 3,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 8
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 146,
 // CHECK-NEXT:      "line": 4,
 // CHECK-NEXT:      "col": 10,
 // CHECK-NEXT:      "tokLen": 1
@@ -236,16 +239,19 @@
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "TemplateTypeParmDecl",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 133,
 // CHECK-NEXT:       "line": 3,
 // CHECK-NEXT:       "col": 20,
 // CHECK-NEXT:       "tokLen": 2
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 124,
 // CHECK-NEXT:        "col": 11,
 // CHECK-NEXT:        "tokLen": 8
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 133,
 // CHECK-NEXT:        "col": 20,
 // CHECK-NEXT:        "tokLen": 2
 // CHECK-NEXT:       }
@@ -260,16 +266,19 @@
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "FunctionDecl",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 142,
 // CHECK-NEXT:       "line": 4,
 // CHECK-NEXT:       "col": 6,
 // CHECK-NEXT:       "tokLen": 1
 // 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": 146,
 // CHECK-NEXT:        "col": 10,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -283,15 +292,18 @@
 // CHECK-NEXT:        "id": "0x{{.*}}",
 // CHECK-NEXT:        "kind": "ParmVarDecl",
 // CHECK-NEXT:        "loc": {
+// CHECK-NEXT:         "offset": 146,
 // CHECK-NEXT:         "col": 10,
 // CHECK-NEXT:         "tokLen": 1
 // CHECK-NEXT:        },
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 144,
 // CHECK-NEXT:          "col": 8,
 // CHECK-NEXT:          "tokLen": 2
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 144,
 // CHECK-NEXT:          "col": 8,
 // CHECK-NEXT:          "tokLen": 2
 // CHECK-NEXT:         }
@@ -308,17 +320,20 @@
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "FunctionTemplateDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 181,
 // CHECK-NEXT:     "line": 7,
 // CHECK-NEXT:     "col": 6,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 150,
 // CHECK-NEXT:      "line": 6,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 8
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 188,
 // CHECK-NEXT:      "line": 7,
 // CHECK-NEXT:      "col": 13,
 // CHECK-NEXT:      "tokLen": 1
@@ -330,16 +345,19 @@
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "TemplateTypeParmDecl",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 172,
 // CHECK-NEXT:       "line": 6,
 // CHECK-NEXT:       "col": 23,
 // CHECK-NEXT:       "tokLen": 2
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 160,
 // CHECK-NEXT:        "col": 11,
 // CHECK-NEXT:        "tokLen": 8
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 172,
 // CHECK-NEXT:        "col": 23,
 // CHECK-NEXT:        "tokLen": 2
 // CHECK-NEXT:       }
@@ -355,16 +373,19 @@
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "FunctionDecl",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 181,
 // CHECK-NEXT:       "line": 7,
 // CHECK-NEXT:       "col": 6,
 // 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": 188,
 // CHECK-NEXT:        "col": 13,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -378,15 +399,18 @@
 // CHECK-NEXT:        "id": "0x{{.*}}",
 // CHECK-NEXT:        "kind": "ParmVarDecl",
 // CHECK-NEXT:        "loc": {
+// CHECK-NEXT:         "offset": 188,
 // CHECK-NEXT:         "col": 13,
 // CHECK-NEXT:         "tokLen": 1
 // CHECK-NEXT:        },
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 183,
 // CHECK-NEXT:          "col": 8,
 // CHECK-NEXT:          "tokLen": 2
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 185,
 // CHECK-NEXT:          "col": 10,
 // CHECK-NEXT:          "tokLen": 3
 // CHECK-NEXT:         }
@@ -404,17 +428,20 @@
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "FunctionTemplateDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 230,
 // CHECK-NEXT:     "line": 10,
 // CHECK-NEXT:     "col": 6,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 192,
 // CHECK-NEXT:      "line": 9,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 8
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 234,
 // CHECK-NEXT:      "line": 10,
 // CHECK-NEXT:      "col": 10,
 // CHECK-NEXT:      "tokLen": 1
@@ -426,16 +453,19 @@
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "TemplateTypeParmDecl",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 208,
 // CHECK-NEXT:       "line": 9,
 // CHECK-NEXT:       "col": 17,
 // CHECK-NEXT:       "tokLen": 2
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 202,
 // CHECK-NEXT:        "col": 11,
 // CHECK-NEXT:        "tokLen": 5
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 208,
 // CHECK-NEXT:        "col": 17,
 // CHECK-NEXT:        "tokLen": 2
 // CHECK-NEXT:       }
@@ -450,15 +480,18 @@
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "TemplateTypeParmDecl",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 221,
 // CHECK-NEXT:       "col": 30,
 // CHECK-NEXT:       "tokLen": 2
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 212,
 // CHECK-NEXT:        "col": 21,
 // CHECK-NEXT:        "tokLen": 8
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 221,
 // CHECK-NEXT:        "col": 30,
 // CHECK-NEXT:        "tokLen": 2
 // CHECK-NEXT:       }
@@ -472,16 +505,19 @@
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "FunctionDecl",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 230,
 // CHECK-NEXT:       "line": 10,
 // CHECK-NEXT:       "col": 6,
 // CHECK-NEXT:       "tokLen": 1
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 225,
 // CHECK-NEXT:        "col": 1,
 // CHECK-NEXT:        "tokLen": 4
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 234,
 // CHECK-NEXT:        "col": 10,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -495,15 +531,18 @@
 // CHECK-NEXT:        "id": "0x{{.*}}",
 // CHECK-NEXT:        "kind": "ParmVarDecl",
 // CHECK-NEXT:        "loc": {
+// CHECK-NEXT:         "offset": 234,
 // CHECK-NEXT:         "col": 10,
 // CHECK-NEXT:         "tokLen": 1
 // CHECK-NEXT:        },
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 232,
 // CHECK-NEXT:          "col": 8,
 // CHECK-NEXT:          "tokLen": 2
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 232,
 // CHECK-NEXT:          "col": 8,
 // CHECK-NEXT:          "tokLen": 2
 // CHECK-NEXT:         }
@@ -528,17 +567,20 @@
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "FunctionDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 255,
 // CHECK-NEXT:     "line": 13,
 // CHECK-NEXT:     "col": 6,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 238,
 // CHECK-NEXT:      "line": 12,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 8
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 274,
 // CHECK-NEXT:      "line": 13,
 // CHECK-NEXT:      "col": 25,
 // CHECK-NEXT:      "tokLen": 1
@@ -566,15 +608,18 @@
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "ParmVarDecl",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 274,
 // CHECK-NEXT:       "col": 25,
 // CHECK-NEXT:       "tokLen": 1
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 269,
 // CHECK-NEXT:        "col": 20,
 // CHECK-NEXT:        "tokLen": 5
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 269,
 // CHECK-NEXT:        "col": 20,
 // CHECK-NEXT:        "tokLen": 5
 // CHECK-NEXT:       }
@@ -589,17 +634,20 @@
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "FunctionTemplateDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 338,
 // CHECK-NEXT:     "line": 16,
 // CHECK-NEXT:     "col": 6,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 278,
 // CHECK-NEXT:      "line": 15,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 8
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 350,
 // CHECK-NEXT:      "line": 16,
 // CHECK-NEXT:      "col": 18,
 // CHECK-NEXT:      "tokLen": 1
@@ -611,16 +659,19 @@
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "TemplateTypeParmDecl",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 297,
 // CHECK-NEXT:       "line": 15,
 // CHECK-NEXT:       "col": 20,
 // CHECK-NEXT:       "tokLen": 2
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 288,
 // CHECK-NEXT:        "col": 11,
 // CHECK-NEXT:        "tokLen": 8
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 297,
 // CHECK-NEXT:        "col": 20,
 // CHECK-NEXT:        "tokLen": 2
 // CHECK-NEXT:       }
@@ -635,15 +686,18 @@
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "TemplateTemplateParmDecl",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 329,
 // CHECK-NEXT:       "col": 52,
 // CHECK-NEXT:       "tokLen": 2
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 301,
 // CHECK-NEXT:        "col": 24,
 // CHECK-NEXT:        "tokLen": 8
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 329,
 // CHECK-NEXT:        "col": 52,
 // CHECK-NEXT:        "tokLen": 2
 // CHECK-NEXT:       }
@@ -656,15 +710,18 @@
 // CHECK-NEXT:        "id": "0x{{.*}}",
 // CHECK-NEXT:        "kind": "TemplateTypeParmDecl",
 // CHECK-NEXT:        "loc": {
+// CHECK-NEXT:         "offset": 318,
 // CHECK-NEXT:         "col": 41,
 // CHECK-NEXT:         "tokLen": 1
 // CHECK-NEXT:        },
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 310,
 // CHECK-NEXT:          "col": 33,
 // CHECK-NEXT:          "tokLen": 8
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 310,
 // CHECK-NEXT:          "col": 33,
 // CHECK-NEXT:          "tokLen": 8
 // CHECK-NEXT:         }
@@ -679,16 +736,19 @@
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "FunctionDecl",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 338,
 // CHECK-NEXT:       "line": 16,
 // CHECK-NEXT:       "col": 6,
 // CHECK-NEXT:       "tokLen": 1
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 333,
 // CHECK-NEXT:        "col": 1,
 // CHECK-NEXT:        "tokLen": 4
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 350,
 // CHECK-NEXT:        "col": 18,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -702,15 +762,18 @@
 // CHECK-NEXT:        "id": "0x{{.*}}",
 // CHECK-NEXT:        "kind": "ParmVarDecl",
 // CHECK-NEXT:        "loc": {
+// CHECK-NEXT:         "offset": 342,
 // CHECK-NEXT:         "col": 10,
 // CHECK-NEXT:         "tokLen": 1
 // CHECK-NEXT:        },
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 340,
 // CHECK-NEXT:          "col": 8,
 // CHECK-NEXT:          "tokLen": 2
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 340,
 // CHECK-NEXT:          "col": 8,
 // CHECK-NEXT:          "tokLen": 2
 // CHECK-NEXT:         }
@@ -723,15 +786,18 @@
 // CHECK-NEXT:        "id": "0x{{.*}}",
 // CHECK-NEXT:        "kind": "ParmVarDecl",
 // CHECK-NEXT:        "loc": {
+// CHECK-NEXT:         "offset": 350,
 // CHECK-NEXT:         "col": 18,
 // CHECK-NEXT:         "tokLen": 1
 // CHECK-NEXT:        },
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 344,
 // CHECK-NEXT:          "col": 12,
 // CHECK-NEXT:          "tokLen": 2
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 349,
 // CHECK-NEXT:          "col": 17,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -748,17 +814,20 @@
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "FunctionTemplateDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 379,
 // CHECK-NEXT:     "line": 19,
 // CHECK-NEXT:     "col": 6,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 354,
 // CHECK-NEXT:      "line": 18,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 8
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 383,
 // CHECK-NEXT:      "line": 19,
 // CHECK-NEXT:      "col": 10,
 // CHECK-NEXT:      "tokLen": 1
@@ -770,16 +839,19 @@
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "TemplateTypeParmDecl",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 370,
 // CHECK-NEXT:       "line": 18,
 // CHECK-NEXT:       "col": 17,
 // CHECK-NEXT:       "tokLen": 2
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 364,
 // CHECK-NEXT:        "col": 11,
 // CHECK-NEXT:        "tokLen": 5
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 370,
 // CHECK-NEXT:        "col": 17,
 // CHECK-NEXT:        "tokLen": 2
 // CHECK-NEXT:       }
@@ -794,16 +866,19 @@
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "FunctionDecl",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 379,
 // CHECK-NEXT:       "line": 19,
 // CHECK-NEXT:       "col": 6,
 // CHECK-NEXT:       "tokLen": 1
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 374,
 // CHECK-NEXT:        "col": 1,
 // CHECK-NEXT:        "tokLen": 4
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 383,
 // CHECK-NEXT:        "col": 10,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -817,15 +892,18 @@
 // CHECK-NEXT:        "id": "0x{{.*}}",
 // CHECK-NEXT:        "kind": "ParmVarDecl",
 // CHECK-NEXT:        "loc": {
+// CHECK-NEXT:         "offset": 383,
 // CHECK-NEXT:         "col": 10,
 // CHECK-NEXT:         "tokLen": 1
 // CHECK-NEXT:        },
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 381,
 // CHECK-NEXT:          "col": 8,
 // CHECK-NEXT:          "tokLen": 2
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 381,
 // CHECK-NEXT:          "col": 8,
 // CHECK-NEXT:          "tokLen": 2
 // CHECK-NEXT:         }
@@ -842,17 +920,20 @@
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "FunctionTemplateDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 409,
 // CHECK-NEXT:     "line": 22,
 // CHECK-NEXT:     "col": 6,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 387,
 // CHECK-NEXT:      "line": 21,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 8
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 420,
 // CHECK-NEXT:      "line": 22,
 // CHECK-NEXT:      "col": 17,
 // CHECK-NEXT:      "tokLen": 1
@@ -864,16 +945,19 @@
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "NonTypeTemplateParmDecl",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 401,
 // CHECK-NEXT:       "line": 21,
 // CHECK-NEXT:       "col": 15,
 // CHECK-NEXT:       "tokLen": 1
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 397,
 // CHECK-NEXT:        "col": 11,
 // CHECK-NEXT:        "tokLen": 3
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 401,
 // CHECK-NEXT:        "col": 15,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -890,16 +974,19 @@
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "FunctionDecl",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 409,
 // CHECK-NEXT:       "line": 22,
 // CHECK-NEXT:       "col": 6,
 // CHECK-NEXT:       "tokLen": 1
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 404,
 // CHECK-NEXT:        "col": 1,
 // CHECK-NEXT:        "tokLen": 4
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 420,
 // CHECK-NEXT:        "col": 17,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -913,15 +1000,18 @@
 // CHECK-NEXT:        "id": "0x{{.*}}",
 // CHECK-NEXT:        "kind": "ParmVarDecl",
 // CHECK-NEXT:        "loc": {
+// CHECK-NEXT:         "offset": 415,
 // CHECK-NEXT:         "col": 12,
 // CHECK-NEXT:         "tokLen": 1
 // CHECK-NEXT:        },
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 411,
 // CHECK-NEXT:          "col": 8,
 // CHECK-NEXT:          "tokLen": 3
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 419,
 // CHECK-NEXT:          "col": 16,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -937,10 +1027,12 @@
 // CHECK-NEXT:          "kind": "DeclRefExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 419,
 // CHECK-NEXT:            "col": 16,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 419,
 // CHECK-NEXT:            "col": 16,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -968,17 +1060,20 @@
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "FunctionTemplateDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 458,
 // CHECK-NEXT:     "line": 25,
 // CHECK-NEXT:     "col": 6,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 424,
 // CHECK-NEXT:      "line": 24,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 8
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 462,
 // CHECK-NEXT:      "line": 25,
 // CHECK-NEXT:      "col": 10,
 // CHECK-NEXT:      "tokLen": 1
@@ -990,16 +1085,19 @@
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "TemplateTypeParmDecl",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 443,
 // CHECK-NEXT:       "line": 24,
 // CHECK-NEXT:       "col": 20,
 // CHECK-NEXT:       "tokLen": 2
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 434,
 // CHECK-NEXT:        "col": 11,
 // CHECK-NEXT:        "tokLen": 8
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 448,
 // CHECK-NEXT:        "col": 25,
 // CHECK-NEXT:        "tokLen": 3
 // CHECK-NEXT:       }
@@ -1028,16 +1126,19 @@
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "FunctionDecl",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 458,
 // CHECK-NEXT:       "line": 25,
 // CHECK-NEXT:       "col": 6,
 // CHECK-NEXT:       "tokLen": 1
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 453,
 // CHECK-NEXT:        "col": 1,
 // CHECK-NEXT:        "tokLen": 4
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 462,
 // CHECK-NEXT:        "col": 10,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -1051,15 +1152,18 @@
 // CHECK-NEXT:        "id": "0x{{.*}}",
 // CHECK-NEXT:        "kind": "ParmVarDecl",
 // CHECK-NEXT:        "loc": {
+// CHECK-NEXT:         "offset": 462,
 // CHECK-NEXT:         "col": 10,
 // CHECK-NEXT:         "tokLen": 1
 // CHECK-NEXT:        },
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 460,
 // CHECK-NEXT:          "col": 8,
 // CHECK-NEXT:          "tokLen": 2
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 460,
 // CHECK-NEXT:          "col": 8,
 // CHECK-NEXT:          "tokLen": 2
 // CHECK-NEXT:         }
@@ -1076,17 +1180,20 @@
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "FunctionTemplateDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 498,
 // CHECK-NEXT:     "line": 28,
 // CHECK-NEXT:     "col": 6,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 466,
 // CHECK-NEXT:      "line": 27,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 8
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 500,
 // CHECK-NEXT:      "line": 28,
 // CHECK-NEXT:      "col": 8,
 // CHECK-NEXT:      "tokLen": 1
@@ -1098,16 +1205,19 @@
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "TemplateTypeParmDecl",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 485,
 // CHECK-NEXT:       "line": 27,
 // CHECK-NEXT:       "col": 20,
 // CHECK-NEXT:       "tokLen": 1
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 476,
 // CHECK-NEXT:        "col": 11,
 // CHECK-NEXT:        "tokLen": 8
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 487,
 // CHECK-NEXT:        "col": 22,
 // CHECK-NEXT:        "tokLen": 4
 // CHECK-NEXT:       }
@@ -1134,16 +1244,19 @@
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "FunctionDecl",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 498,
 // CHECK-NEXT:       "line": 28,
 // CHECK-NEXT:       "col": 6,
 // CHECK-NEXT:       "tokLen": 1
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 493,
 // CHECK-NEXT:        "col": 1,
 // CHECK-NEXT:        "tokLen": 4
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 500,
 // CHECK-NEXT:        "col": 8,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -1159,17 +1272,20 @@
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "ClassTemplateDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 534,
 // CHECK-NEXT:     "line": 31,
 // CHECK-NEXT:     "col": 8,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 504,
 // CHECK-NEXT:      "line": 30,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 8
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 537,
 // CHECK-NEXT:      "line": 31,
 // CHECK-NEXT:      "col": 11,
 // CHECK-NEXT:      "tokLen": 1
@@ -1181,16 +1297,19 @@
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "TemplateTypeParmDecl",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 523,
 // CHECK-NEXT:       "line": 30,
 // CHECK-NEXT:       "col": 20,
 // CHECK-NEXT:       "tokLen": 2
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 514,
 // CHECK-NEXT:        "col": 11,
 // CHECK-NEXT:        "tokLen": 8
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 523,
 // CHECK-NEXT:        "col": 20,
 // CHECK-NEXT:        "tokLen": 2
 // CHECK-NEXT:       }
@@ -1204,16 +1323,19 @@
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "CXXRecordDecl",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 534,
 // CHECK-NEXT:       "line": 31,
 // CHECK-NEXT:       "col": 8,
 // CHECK-NEXT:       "tokLen": 1
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 527,
 // CHECK-NEXT:        "col": 1,
 // CHECK-NEXT:        "tokLen": 6
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 537,
 // CHECK-NEXT:        "col": 11,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -1275,15 +1397,18 @@
 // CHECK-NEXT:        "id": "0x{{.*}}",
 // CHECK-NEXT:        "kind": "CXXRecordDecl",
 // CHECK-NEXT:        "loc": {
+// CHECK-NEXT:         "offset": 534,
 // CHECK-NEXT:         "col": 8,
 // CHECK-NEXT:         "tokLen": 1
 // CHECK-NEXT:        },
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 527,
 // CHECK-NEXT:          "col": 1,
 // CHECK-NEXT:          "tokLen": 6
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 534,
 // CHECK-NEXT:          "col": 8,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -1305,17 +1430,20 @@
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "ClassTemplateSpecializationDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 560,
 // CHECK-NEXT:     "line": 34,
 // CHECK-NEXT:     "col": 8,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 541,
 // CHECK-NEXT:      "line": 33,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 8
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 568,
 // CHECK-NEXT:      "line": 34,
 // CHECK-NEXT:      "col": 16,
 // CHECK-NEXT:      "tokLen": 1
@@ -1385,15 +1513,18 @@
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "CXXRecordDecl",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 560,
 // CHECK-NEXT:       "col": 8,
 // CHECK-NEXT:       "tokLen": 1
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 553,
 // CHECK-NEXT:        "col": 1,
 // CHECK-NEXT:        "tokLen": 6
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 560,
 // CHECK-NEXT:        "col": 8,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -1408,17 +1539,20 @@
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "ClassTemplateDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 612,
 // CHECK-NEXT:     "line": 37,
 // CHECK-NEXT:     "col": 8,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 572,
 // CHECK-NEXT:      "line": 36,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 8
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 615,
 // CHECK-NEXT:      "line": 37,
 // CHECK-NEXT:      "col": 11,
 // CHECK-NEXT:      "tokLen": 1
@@ -1430,16 +1564,19 @@
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "TemplateTypeParmDecl",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 591,
 // CHECK-NEXT:       "line": 36,
 // CHECK-NEXT:       "col": 20,
 // CHECK-NEXT:       "tokLen": 2
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 582,
 // CHECK-NEXT:        "col": 11,
 // CHECK-NEXT:        "tokLen": 8
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 591,
 // CHECK-NEXT:        "col": 20,
 // CHECK-NEXT:        "tokLen": 2
 // CHECK-NEXT:       }
@@ -1453,15 +1590,18 @@
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "TemplateTypeParmDecl",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 601,
 // CHECK-NEXT:       "col": 30,
 // CHECK-NEXT:       "tokLen": 2
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 595,
 // CHECK-NEXT:        "col": 24,
 // CHECK-NEXT:        "tokLen": 5
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 601,
 // CHECK-NEXT:        "col": 30,
 // CHECK-NEXT:        "tokLen": 2
 // CHECK-NEXT:       }
@@ -1475,16 +1615,19 @@
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "CXXRecordDecl",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 612,
 // CHECK-NEXT:       "line": 37,
 // CHECK-NEXT:       "col": 8,
 // CHECK-NEXT:       "tokLen": 1
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 605,
 // CHECK-NEXT:        "col": 1,
 // CHECK-NEXT:        "tokLen": 6
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 615,
 // CHECK-NEXT:        "col": 11,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -1546,15 +1689,18 @@
 // CHECK-NEXT:        "id": "0x{{.*}}",
 // CHECK-NEXT:        "kind": "CXXRecordDecl",
 // CHECK-NEXT:        "loc": {
+// CHECK-NEXT:         "offset": 612,
 // CHECK-NEXT:         "col": 8,
 // CHECK-NEXT:         "tokLen": 1
 // CHECK-NEXT:        },
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 605,
 // CHECK-NEXT:          "col": 1,
 // CHECK-NEXT:          "tokLen": 6
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 612,
 // CHECK-NEXT:          "col": 8,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -1571,17 +1717,20 @@
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "ClassTemplatePartialSpecializationDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 649,
 // CHECK-NEXT:     "line": 40,
 // CHECK-NEXT:     "col": 8,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 619,
 // CHECK-NEXT:      "line": 39,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 8
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 661,
 // CHECK-NEXT:      "line": 40,
 // CHECK-NEXT:      "col": 20,
 // CHECK-NEXT:      "tokLen": 1
@@ -1656,16 +1805,19 @@
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "TemplateTypeParmDecl",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 638,
 // CHECK-NEXT:       "line": 39,
 // CHECK-NEXT:       "col": 20,
 // CHECK-NEXT:       "tokLen": 2
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 629,
 // CHECK-NEXT:        "col": 11,
 // CHECK-NEXT:        "tokLen": 8
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 638,
 // CHECK-NEXT:        "col": 20,
 // CHECK-NEXT:        "tokLen": 2
 // CHECK-NEXT:       }
@@ -1680,16 +1832,19 @@
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "CXXRecordDecl",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 649,
 // CHECK-NEXT:       "line": 40,
 // CHECK-NEXT:       "col": 8,
 // CHECK-NEXT:       "tokLen": 1
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 642,
 // CHECK-NEXT:        "col": 1,
 // CHECK-NEXT:        "tokLen": 6
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 649,
 // CHECK-NEXT:        "col": 8,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -1704,17 +1859,20 @@
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "ClassTemplateDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 688,
 // CHECK-NEXT:     "line": 43,
 // CHECK-NEXT:     "col": 8,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 665,
 // CHECK-NEXT:      "line": 42,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 8
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 691,
 // CHECK-NEXT:      "line": 43,
 // CHECK-NEXT:      "col": 11,
 // CHECK-NEXT:      "tokLen": 1
@@ -1726,16 +1884,19 @@
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "NonTypeTemplateParmDecl",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 679,
 // CHECK-NEXT:       "line": 42,
 // CHECK-NEXT:       "col": 15,
 // CHECK-NEXT:       "tokLen": 1
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 675,
 // CHECK-NEXT:        "col": 11,
 // CHECK-NEXT:        "tokLen": 4
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 675,
 // CHECK-NEXT:        "col": 11,
 // CHECK-NEXT:        "tokLen": 4
 // CHECK-NEXT:       }
@@ -1750,16 +1911,19 @@
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "CXXRecordDecl",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 688,
 // CHECK-NEXT:       "line": 43,
 // CHECK-NEXT:       "col": 8,
 // CHECK-NEXT:       "tokLen": 1
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 681,
 // CHECK-NEXT:        "col": 1,
 // CHECK-NEXT:        "tokLen": 6
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 691,
 // CHECK-NEXT:        "col": 11,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -1821,15 +1985,18 @@
 // CHECK-NEXT:        "id": "0x{{.*}}",
 // CHECK-NEXT:        "kind": "CXXRecordDecl",
 // CHECK-NEXT:        "loc": {
+// CHECK-NEXT:         "offset": 688,
 // CHECK-NEXT:         "col": 8,
 // CHECK-NEXT:         "tokLen": 1
 // CHECK-NEXT:        },
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 681,
 // CHECK-NEXT:          "col": 1,
 // CHECK-NEXT:          "tokLen": 6
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 688,
 // CHECK-NEXT:          "col": 8,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -1846,17 +2013,20 @@
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "ClassTemplateDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 728,
 // CHECK-NEXT:     "line": 46,
 // CHECK-NEXT:     "col": 8,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 695,
 // CHECK-NEXT:      "line": 45,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 8
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 731,
 // CHECK-NEXT:      "line": 46,
 // CHECK-NEXT:      "col": 11,
 // CHECK-NEXT:      "tokLen": 1
@@ -1868,16 +2038,19 @@
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "NonTypeTemplateParmDecl",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 719,
 // CHECK-NEXT:       "line": 45,
 // CHECK-NEXT:       "col": 25,
 // CHECK-NEXT:       "tokLen": 1
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 705,
 // CHECK-NEXT:        "col": 11,
 // CHECK-NEXT:        "tokLen": 8
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 705,
 // CHECK-NEXT:        "col": 11,
 // CHECK-NEXT:        "tokLen": 8
 // CHECK-NEXT:       }
@@ -1892,16 +2065,19 @@
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "CXXRecordDecl",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 728,
 // CHECK-NEXT:       "line": 46,
 // CHECK-NEXT:       "col": 8,
 // CHECK-NEXT:       "tokLen": 1
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 721,
 // CHECK-NEXT:        "col": 1,
 // CHECK-NEXT:        "tokLen": 6
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 731,
 // CHECK-NEXT:        "col": 11,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -1963,15 +2139,18 @@
 // CHECK-NEXT:        "id": "0x{{.*}}",
 // CHECK-NEXT:        "kind": "CXXRecordDecl",
 // CHECK-NEXT:        "loc": {
+// CHECK-NEXT:         "offset": 728,
 // CHECK-NEXT:         "col": 8,
 // CHECK-NEXT:         "tokLen": 1
 // CHECK-NEXT:        },
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 721,
 // CHECK-NEXT:          "col": 1,
 // CHECK-NEXT:          "tokLen": 6
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 728,
 // CHECK-NEXT:          "col": 8,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -1988,17 +2167,20 @@
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "ClassTemplateDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 765,
 // CHECK-NEXT:     "line": 49,
 // CHECK-NEXT:     "col": 8,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 735,
 // CHECK-NEXT:      "line": 48,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 8
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 806,
 // CHECK-NEXT:      "line": 52,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 1
@@ -2010,16 +2192,19 @@
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "TemplateTypeParmDecl",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 754,
 // CHECK-NEXT:       "line": 48,
 // CHECK-NEXT:       "col": 20,
 // CHECK-NEXT:       "tokLen": 2
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 745,
 // CHECK-NEXT:        "col": 11,
 // CHECK-NEXT:        "tokLen": 8
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 754,
 // CHECK-NEXT:        "col": 20,
 // CHECK-NEXT:        "tokLen": 2
 // CHECK-NEXT:       }
@@ -2033,16 +2218,19 @@
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "CXXRecordDecl",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 765,
 // CHECK-NEXT:       "line": 49,
 // CHECK-NEXT:       "col": 8,
 // CHECK-NEXT:       "tokLen": 1
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 758,
 // CHECK-NEXT:        "col": 1,
 // CHECK-NEXT:        "tokLen": 6
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 806,
 // CHECK-NEXT:        "line": 52,
 // CHECK-NEXT:        "col": 1,
 // CHECK-NEXT:        "tokLen": 1
@@ -2105,16 +2293,19 @@
 // CHECK-NEXT:        "id": "0x{{.*}}",
 // CHECK-NEXT:        "kind": "CXXRecordDecl",
 // CHECK-NEXT:        "loc": {
+// CHECK-NEXT:         "offset": 765,
 // CHECK-NEXT:         "line": 49,
 // CHECK-NEXT:         "col": 8,
 // CHECK-NEXT:         "tokLen": 1
 // CHECK-NEXT:        },
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 758,
 // CHECK-NEXT:          "col": 1,
 // CHECK-NEXT:          "tokLen": 6
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 765,
 // CHECK-NEXT:          "col": 8,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -2127,17 +2318,20 @@
 // CHECK-NEXT:        "id": "0x{{.*}}",
 // CHECK-NEXT:        "kind": "FunctionTemplateDecl",
 // CHECK-NEXT:        "loc": {
+// CHECK-NEXT:         "offset": 801,
 // CHECK-NEXT:         "line": 51,
 // CHECK-NEXT:         "col": 8,
 // CHECK-NEXT:         "tokLen": 1
 // CHECK-NEXT:        },
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 771,
 // CHECK-NEXT:          "line": 50,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 8
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 803,
 // CHECK-NEXT:          "line": 51,
 // CHECK-NEXT:          "col": 10,
 // CHECK-NEXT:          "tokLen": 1
@@ -2149,16 +2343,19 @@
 // CHECK-NEXT:          "id": "0x{{.*}}",
 // CHECK-NEXT:          "kind": "TemplateTypeParmDecl",
 // CHECK-NEXT:          "loc": {
+// CHECK-NEXT:           "offset": 790,
 // CHECK-NEXT:           "line": 50,
 // CHECK-NEXT:           "col": 22,
 // CHECK-NEXT:           "tokLen": 2
 // CHECK-NEXT:          },
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 781,
 // CHECK-NEXT:            "col": 13,
 // CHECK-NEXT:            "tokLen": 8
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 790,
 // CHECK-NEXT:            "col": 22,
 // CHECK-NEXT:            "tokLen": 2
 // CHECK-NEXT:           }
@@ -2172,16 +2369,19 @@
 // CHECK-NEXT:          "id": "0x{{.*}}",
 // CHECK-NEXT:          "kind": "CXXMethodDecl",
 // CHECK-NEXT:          "loc": {
+// CHECK-NEXT:           "offset": 801,
 // CHECK-NEXT:           "line": 51,
 // CHECK-NEXT:           "col": 8,
 // CHECK-NEXT:           "tokLen": 1
 // CHECK-NEXT:          },
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 796,
 // CHECK-NEXT:            "col": 3,
 // CHECK-NEXT:            "tokLen": 4
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 803,
 // CHECK-NEXT:            "col": 10,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -2201,17 +2401,20 @@
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "FunctionTemplateDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 868,
 // CHECK-NEXT:     "line": 56,
 // CHECK-NEXT:     "col": 13,
 // CHECK-NEXT:     "tokLen": 1
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 833,
 // CHECK-NEXT:      "line": 55,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 8
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 873,
 // CHECK-NEXT:      "line": 56,
 // CHECK-NEXT:      "col": 18,
 // CHECK-NEXT:      "tokLen": 1
@@ -2225,16 +2428,19 @@
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "TemplateTypeParmDecl",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 852,
 // CHECK-NEXT:       "line": 55,
 // CHECK-NEXT:       "col": 20,
 // CHECK-NEXT:       "tokLen": 2
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 843,
 // CHECK-NEXT:        "col": 11,
 // CHECK-NEXT:        "tokLen": 8
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 852,
 // CHECK-NEXT:        "col": 20,
 // CHECK-NEXT:        "tokLen": 2
 // CHECK-NEXT:       }
@@ -2248,17 +2454,20 @@
 // CHECK-NEXT:      "id": "0x{{.*}}",
 // CHECK-NEXT:      "kind": "CXXMethodDecl",
 // CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 868,
 // CHECK-NEXT:       "line": 56,
 // CHECK-NEXT:       "col": 13,
 // CHECK-NEXT:       "tokLen": 1
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 810,
 // CHECK-NEXT:        "line": 54,
 // CHECK-NEXT:        "col": 1,
 // CHECK-NEXT:        "tokLen": 8
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 873,
 // CHECK-NEXT:        "line": 56,
 // CHECK-NEXT:        "col": 18,
 // CHECK-NEXT:        "tokLen": 1
@@ -2276,10 +2485,12 @@
 // CHECK-NEXT:        "kind": "CompoundStmt",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 872,
 // CHECK-NEXT:          "col": 17,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 873,
 // CHECK-NEXT:          "col": 18,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
diff --git a/test/AST/ast-dump-temporaries-json.cpp b/test/AST/ast-dump-temporaries-json.cpp
index 3f1459b..520d6f9 100644
--- a/test/AST/ast-dump-temporaries-json.cpp
+++ b/test/AST/ast-dump-temporaries-json.cpp
@@ -25,10 +25,12 @@
 // CHECK:  "kind": "ExprWithCleanups",
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 184,
 // CHECK-NEXT:    "col": 16,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 186,
 // CHECK-NEXT:    "col": 18,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   }
@@ -44,10 +46,12 @@
 // CHECK-NEXT:    "kind": "MaterializeTemporaryExpr",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 184,
 // CHECK-NEXT:      "col": 16,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 186,
 // CHECK-NEXT:      "col": 18,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -72,10 +76,12 @@
 // CHECK-NEXT:      "kind": "ImplicitCastExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 184,
 // CHECK-NEXT:        "col": 16,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 186,
 // CHECK-NEXT:        "col": 18,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -91,10 +97,12 @@
 // CHECK-NEXT:        "kind": "CXXBindTemporaryExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 184,
 // CHECK-NEXT:          "col": 16,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 186,
 // CHECK-NEXT:          "col": 18,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -118,10 +126,12 @@
 // CHECK-NEXT:          "kind": "CXXTemporaryObjectExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 184,
 // CHECK-NEXT:            "col": 16,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 186,
 // CHECK-NEXT:            "col": 18,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -149,10 +159,12 @@
 // CHECK:  "kind": "ExprWithCleanups",
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 234,
 // CHECK-NEXT:    "col": 18,
 // CHECK-NEXT:    "tokLen": 3
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 234,
 // CHECK-NEXT:    "col": 18,
 // CHECK-NEXT:    "tokLen": 3
 // CHECK-NEXT:   }
@@ -167,10 +179,12 @@
 // CHECK-NEXT:    "kind": "MaterializeTemporaryExpr",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 234,
 // CHECK-NEXT:      "col": 18,
 // CHECK-NEXT:      "tokLen": 3
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 234,
 // CHECK-NEXT:      "col": 18,
 // CHECK-NEXT:      "tokLen": 3
 // CHECK-NEXT:     }
@@ -195,10 +209,12 @@
 // CHECK-NEXT:      "kind": "ImplicitCastExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 234,
 // CHECK-NEXT:        "col": 18,
 // CHECK-NEXT:        "tokLen": 3
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 234,
 // CHECK-NEXT:        "col": 18,
 // CHECK-NEXT:        "tokLen": 3
 // CHECK-NEXT:       }
@@ -214,10 +230,12 @@
 // CHECK-NEXT:        "kind": "FloatingLiteral",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 234,
 // CHECK-NEXT:          "col": 18,
 // CHECK-NEXT:          "tokLen": 3
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 234,
 // CHECK-NEXT:          "col": 18,
 // CHECK-NEXT:          "tokLen": 3
 // CHECK-NEXT:         }
@@ -239,11 +257,13 @@
 // CHECK:  "kind": "ExprWithCleanups",
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 260,
 // CHECK-NEXT:    "line": 18,
 // CHECK-NEXT:    "col": 3,
 // CHECK-NEXT:    "tokLen": 4
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 266,
 // CHECK-NEXT:    "col": 9,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   }
@@ -258,10 +278,12 @@
 // CHECK-NEXT:    "kind": "CallExpr",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 260,
 // CHECK-NEXT:      "col": 3,
 // CHECK-NEXT:      "tokLen": 4
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 266,
 // CHECK-NEXT:      "col": 9,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -276,10 +298,12 @@
 // CHECK-NEXT:      "kind": "ImplicitCastExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 260,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 4
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 260,
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "tokLen": 4
 // CHECK-NEXT:       }
@@ -295,10 +319,12 @@
 // CHECK-NEXT:        "kind": "DeclRefExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 260,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 4
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 260,
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "tokLen": 4
 // CHECK-NEXT:         }
@@ -323,10 +349,12 @@
 // CHECK-NEXT:      "kind": "MaterializeTemporaryExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 265,
 // CHECK-NEXT:        "col": 8,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 265,
 // CHECK-NEXT:        "col": 8,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -343,10 +371,12 @@
 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 265,
 // CHECK-NEXT:          "col": 8,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 265,
 // CHECK-NEXT:          "col": 8,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -362,10 +392,12 @@
 // CHECK-NEXT:          "kind": "ImplicitCastExpr",
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 265,
 // CHECK-NEXT:            "col": 8,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 265,
 // CHECK-NEXT:            "col": 8,
 // CHECK-NEXT:            "tokLen": 1
 // CHECK-NEXT:           }
@@ -381,10 +413,12 @@
 // CHECK-NEXT:            "kind": "DeclRefExpr",
 // CHECK-NEXT:            "range": {
 // CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 265,
 // CHECK-NEXT:              "col": 8,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 265,
 // CHECK-NEXT:              "col": 8,
 // CHECK-NEXT:              "tokLen": 1
 // CHECK-NEXT:             }
diff --git a/test/AST/ast-dump-types-json.cpp b/test/AST/ast-dump-types-json.cpp
index d25aea8..36cbb92 100644
--- a/test/AST/ast-dump-types-json.cpp
+++ b/test/AST/ast-dump-types-json.cpp
@@ -30,6 +30,7 @@
 
 // CHECK:  "kind": "TypedefDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 204,
 // CHECK-NEXT:   "file": "{{.*}}",
 // CHECK-NEXT:   "line": 12,
 // CHECK-NEXT:   "col": 18,
@@ -37,10 +38,12 @@
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 187,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 7
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 204,
 // CHECK-NEXT:    "col": 18,
 // CHECK-NEXT:    "tokLen": 19
 // CHECK-NEXT:   }
@@ -78,6 +81,7 @@
 
 // CHECK:  "kind": "TypedefDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 239,
 // CHECK-NEXT:   "file": "{{.*}}",
 // CHECK-NEXT:   "line": 13,
 // CHECK-NEXT:   "col": 15,
@@ -85,10 +89,12 @@
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 225,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 7
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 239,
 // CHECK-NEXT:    "col": 15,
 // CHECK-NEXT:    "tokLen": 19
 // CHECK-NEXT:   }
@@ -127,6 +133,7 @@
 
 // CHECK:  "kind": "TypedefDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 319,
 // CHECK-NEXT:   "file": "{{.*}}",
 // CHECK-NEXT:   "line": 16,
 // CHECK-NEXT:   "col": 22,
@@ -134,10 +141,12 @@
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 298,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 7
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 319,
 // CHECK-NEXT:    "col": 22,
 // CHECK-NEXT:    "tokLen": 22
 // CHECK-NEXT:   }
@@ -233,6 +242,7 @@
 
 // CHECK:  "kind": "TypedefDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 366,
 // CHECK-NEXT:   "file": "{{.*}}",
 // CHECK-NEXT:   "line": 18,
 // CHECK-NEXT:   "col": 20,
@@ -240,10 +250,12 @@
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 347,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 7
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 397,
 // CHECK-NEXT:    "col": 51,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   }
@@ -307,6 +319,7 @@
 
 // CHECK:  "kind": "TypedefDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 416,
 // CHECK-NEXT:   "file": "{{.*}}",
 // CHECK-NEXT:   "line": 19,
 // CHECK-NEXT:   "col": 17,
@@ -314,10 +327,12 @@
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 400,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 7
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 416,
 // CHECK-NEXT:    "col": 17,
 // CHECK-NEXT:    "tokLen": 25
 // CHECK-NEXT:   }
@@ -362,6 +377,7 @@
 
 // CHECK:  "kind": "TypedefDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 456,
 // CHECK-NEXT:   "file": "{{.*}}",
 // CHECK-NEXT:   "line": 21,
 // CHECK-NEXT:   "col": 13,
@@ -369,10 +385,12 @@
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 444,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 7
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 490,
 // CHECK-NEXT:    "col": 47,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   }
@@ -428,8 +446,46 @@
 // CHECK-NEXT:  ]
 // CHECK-NEXT: }
 
+
+// CHECK:  "kind": "TypedefDecl",
+// CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 506,
+// CHECK-NEXT:   "file": "{{.*}}",
+// CHECK-NEXT:   "line": 23,
+// CHECK-NEXT:   "col": 13,
+// CHECK-NEXT:   "tokLen": 23
+// CHECK-NEXT:  },
+// CHECK-NEXT:  "range": {
+// CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 494,
+// CHECK-NEXT:    "col": 1,
+// CHECK-NEXT:    "tokLen": 7
+// CHECK-NEXT:   },
+// CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 506,
+// CHECK-NEXT:    "col": 13,
+// CHECK-NEXT:    "tokLen": 23
+// CHECK-NEXT:   }
+// CHECK-NEXT:  },
+// CHECK-NEXT:  "name": "TestUsingShadowDeclType",
+// 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": "NamespaceDecl",
 // CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 541,
 // CHECK-NEXT:   "file": "{{.*}}",
 // CHECK-NEXT:   "line": 24,
 // CHECK-NEXT:   "col": 11,
@@ -437,10 +493,12 @@
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 531,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 9
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 609,
 // CHECK-NEXT:    "line": 26,
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "tokLen": 1
@@ -452,16 +510,19 @@
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "UsingDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 584,
 // CHECK-NEXT:     "line": 25,
 // CHECK-NEXT:     "col": 9,
 // CHECK-NEXT:     "tokLen": 23
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 576,
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "tokLen": 5
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 584,
 // CHECK-NEXT:      "col": 9,
 // CHECK-NEXT:      "tokLen": 23
 // CHECK-NEXT:     }
@@ -472,15 +533,18 @@
 // CHECK-NEXT:    "id": "0x{{.*}}",
 // CHECK-NEXT:    "kind": "UsingShadowDecl",
 // CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 584,
 // CHECK-NEXT:     "col": 9,
 // CHECK-NEXT:     "tokLen": 23
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 584,
 // CHECK-NEXT:      "col": 9,
 // CHECK-NEXT:      "tokLen": 23
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 584,
 // CHECK-NEXT:      "col": 9,
 // CHECK-NEXT:      "tokLen": 23
 // CHECK-NEXT:     }
diff --git a/test/AST/gen_ast_dump_json_test.py b/test/AST/gen_ast_dump_json_test.py
index f1c9801f..54a5109 100644
--- a/test/AST/gen_ast_dump_json_test.py
+++ b/test/AST/gen_ast_dump_json_test.py
@@ -131,10 +131,10 @@
             index = 0
             for append_line in append_str.splitlines()[2:]:
                 if index == 0:
-                    out_str += '// CHECK: %s\n' %(append_line)
+                    out_str += '// CHECK: %s\n' %(append_line.rstrip())
                     index += 1
                 else:
-                    out_str += '// CHECK-NEXT: %s\n' %(append_line)
+                    out_str += '// CHECK-NEXT: %s\n' %(append_line.rstrip())
                     
             f.write(out_str)
     
diff --git a/test/AST/multistep-explicit-cast-json.c b/test/AST/multistep-explicit-cast-json.c
index bfdcf24..8059e74 100644
--- a/test/AST/multistep-explicit-cast-json.c
+++ b/test/AST/multistep-explicit-cast-json.c
@@ -41,10 +41,12 @@
 // CHECK:  "kind": "ImplicitCastExpr",
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 148,
 // CHECK-NEXT:    "col": 10,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 148,
 // CHECK-NEXT:    "col": 10,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   }
@@ -60,10 +62,12 @@
 // CHECK-NEXT:    "kind": "ImplicitCastExpr",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 148,
 // CHECK-NEXT:      "col": 10,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 148,
 // CHECK-NEXT:      "col": 10,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -79,10 +83,12 @@
 // CHECK-NEXT:      "kind": "DeclRefExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 148,
 // CHECK-NEXT:        "col": 10,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 148,
 // CHECK-NEXT:        "col": 10,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -109,10 +115,12 @@
 // CHECK:  "kind": "ImplicitCastExpr",
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 208,
 // CHECK-NEXT:    "col": 10,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 208,
 // CHECK-NEXT:    "col": 10,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   }
@@ -128,10 +136,12 @@
 // CHECK-NEXT:    "kind": "ImplicitCastExpr",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 208,
 // CHECK-NEXT:      "col": 10,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 208,
 // CHECK-NEXT:      "col": 10,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -147,10 +157,12 @@
 // CHECK-NEXT:      "kind": "DeclRefExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 208,
 // CHECK-NEXT:        "col": 10,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 208,
 // CHECK-NEXT:        "col": 10,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -177,10 +189,12 @@
 // CHECK:  "kind": "ImplicitCastExpr",
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 268,
 // CHECK-NEXT:    "col": 10,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 268,
 // CHECK-NEXT:    "col": 10,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   }
@@ -196,10 +210,12 @@
 // CHECK-NEXT:    "kind": "ImplicitCastExpr",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 268,
 // CHECK-NEXT:      "col": 10,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 268,
 // CHECK-NEXT:      "col": 10,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -215,10 +231,12 @@
 // CHECK-NEXT:      "kind": "DeclRefExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 268,
 // CHECK-NEXT:        "col": 10,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 268,
 // CHECK-NEXT:        "col": 10,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -245,10 +263,12 @@
 // CHECK:  "kind": "ImplicitCastExpr",
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 326,
 // CHECK-NEXT:    "col": 10,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 326,
 // CHECK-NEXT:    "col": 10,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   }
@@ -264,10 +284,12 @@
 // CHECK-NEXT:    "kind": "ImplicitCastExpr",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 326,
 // CHECK-NEXT:      "col": 10,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 326,
 // CHECK-NEXT:      "col": 10,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -283,10 +305,12 @@
 // CHECK-NEXT:      "kind": "DeclRefExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 326,
 // CHECK-NEXT:        "col": 10,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 326,
 // CHECK-NEXT:        "col": 10,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -313,10 +337,12 @@
 // CHECK:  "kind": "CStyleCastExpr",
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 468,
 // CHECK-NEXT:    "col": 10,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 483,
 // CHECK-NEXT:    "col": 25,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   }
@@ -332,10 +358,12 @@
 // CHECK-NEXT:    "kind": "ImplicitCastExpr",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 483,
 // CHECK-NEXT:      "col": 25,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 483,
 // CHECK-NEXT:      "col": 25,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -352,10 +380,12 @@
 // CHECK-NEXT:      "kind": "DeclRefExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 483,
 // CHECK-NEXT:        "col": 25,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 483,
 // CHECK-NEXT:        "col": 25,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -382,10 +412,12 @@
 // CHECK:  "kind": "CStyleCastExpr",
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 541,
 // CHECK-NEXT:    "col": 10,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 554,
 // CHECK-NEXT:    "col": 23,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   }
@@ -401,10 +433,12 @@
 // CHECK-NEXT:    "kind": "ImplicitCastExpr",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 554,
 // CHECK-NEXT:      "col": 23,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 554,
 // CHECK-NEXT:      "col": 23,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -421,10 +455,12 @@
 // CHECK-NEXT:      "kind": "DeclRefExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 554,
 // CHECK-NEXT:        "col": 23,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 554,
 // CHECK-NEXT:        "col": 23,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -451,10 +487,12 @@
 // CHECK:  "kind": "CStyleCastExpr",
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 612,
 // CHECK-NEXT:    "col": 10,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 627,
 // CHECK-NEXT:    "col": 25,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   }
@@ -470,10 +508,12 @@
 // CHECK-NEXT:    "kind": "ImplicitCastExpr",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 627,
 // CHECK-NEXT:      "col": 25,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 627,
 // CHECK-NEXT:      "col": 25,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -490,10 +530,12 @@
 // CHECK-NEXT:      "kind": "DeclRefExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 627,
 // CHECK-NEXT:        "col": 25,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 627,
 // CHECK-NEXT:        "col": 25,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -520,10 +562,12 @@
 // CHECK:  "kind": "CStyleCastExpr",
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 683,
 // CHECK-NEXT:    "col": 10,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 696,
 // CHECK-NEXT:    "col": 23,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   }
@@ -539,10 +583,12 @@
 // CHECK-NEXT:    "kind": "ImplicitCastExpr",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 696,
 // CHECK-NEXT:      "col": 23,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 696,
 // CHECK-NEXT:      "col": 23,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -559,10 +605,12 @@
 // CHECK-NEXT:      "kind": "DeclRefExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 696,
 // CHECK-NEXT:        "col": 23,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 696,
 // CHECK-NEXT:        "col": 23,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
diff --git a/test/AST/multistep-explicit-cast-json.cpp b/test/AST/multistep-explicit-cast-json.cpp
index 70c1385..47cc8df 100644
--- a/test/AST/multistep-explicit-cast-json.cpp
+++ b/test/AST/multistep-explicit-cast-json.cpp
@@ -82,10 +82,12 @@
 // CHECK:  "kind": "ImplicitCastExpr",
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 148,
 // CHECK-NEXT:    "col": 10,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 148,
 // CHECK-NEXT:    "col": 10,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   }
@@ -101,10 +103,12 @@
 // CHECK-NEXT:    "kind": "ImplicitCastExpr",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 148,
 // CHECK-NEXT:      "col": 10,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 148,
 // CHECK-NEXT:      "col": 10,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -120,10 +124,12 @@
 // CHECK-NEXT:      "kind": "DeclRefExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 148,
 // CHECK-NEXT:        "col": 10,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 148,
 // CHECK-NEXT:        "col": 10,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -150,10 +156,12 @@
 // CHECK:  "kind": "ImplicitCastExpr",
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 208,
 // CHECK-NEXT:    "col": 10,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 208,
 // CHECK-NEXT:    "col": 10,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   }
@@ -169,10 +177,12 @@
 // CHECK-NEXT:    "kind": "ImplicitCastExpr",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 208,
 // CHECK-NEXT:      "col": 10,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 208,
 // CHECK-NEXT:      "col": 10,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -188,10 +198,12 @@
 // CHECK-NEXT:      "kind": "DeclRefExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 208,
 // CHECK-NEXT:        "col": 10,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 208,
 // CHECK-NEXT:        "col": 10,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -218,10 +230,12 @@
 // CHECK:  "kind": "ImplicitCastExpr",
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 268,
 // CHECK-NEXT:    "col": 10,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 268,
 // CHECK-NEXT:    "col": 10,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   }
@@ -237,10 +251,12 @@
 // CHECK-NEXT:    "kind": "ImplicitCastExpr",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 268,
 // CHECK-NEXT:      "col": 10,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 268,
 // CHECK-NEXT:      "col": 10,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -256,10 +272,12 @@
 // CHECK-NEXT:      "kind": "DeclRefExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 268,
 // CHECK-NEXT:        "col": 10,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 268,
 // CHECK-NEXT:        "col": 10,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -286,10 +304,12 @@
 // CHECK:  "kind": "ImplicitCastExpr",
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 326,
 // CHECK-NEXT:    "col": 10,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 326,
 // CHECK-NEXT:    "col": 10,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   }
@@ -305,10 +325,12 @@
 // CHECK-NEXT:    "kind": "ImplicitCastExpr",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 326,
 // CHECK-NEXT:      "col": 10,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 326,
 // CHECK-NEXT:      "col": 10,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -324,10 +346,12 @@
 // CHECK-NEXT:      "kind": "DeclRefExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 326,
 // CHECK-NEXT:        "col": 10,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 326,
 // CHECK-NEXT:        "col": 10,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -354,10 +378,12 @@
 // CHECK:  "kind": "CStyleCastExpr",
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 468,
 // CHECK-NEXT:    "col": 10,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 483,
 // CHECK-NEXT:    "col": 25,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   }
@@ -373,10 +399,12 @@
 // CHECK-NEXT:    "kind": "ImplicitCastExpr",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 483,
 // CHECK-NEXT:      "col": 25,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 483,
 // CHECK-NEXT:      "col": 25,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -393,10 +421,12 @@
 // CHECK-NEXT:      "kind": "ImplicitCastExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 483,
 // CHECK-NEXT:        "col": 25,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 483,
 // CHECK-NEXT:        "col": 25,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -413,10 +443,12 @@
 // CHECK-NEXT:        "kind": "DeclRefExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 483,
 // CHECK-NEXT:          "col": 25,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 483,
 // CHECK-NEXT:          "col": 25,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -445,10 +477,12 @@
 // CHECK:  "kind": "CStyleCastExpr",
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 541,
 // CHECK-NEXT:    "col": 10,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 554,
 // CHECK-NEXT:    "col": 23,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   }
@@ -464,10 +498,12 @@
 // CHECK-NEXT:    "kind": "ImplicitCastExpr",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 554,
 // CHECK-NEXT:      "col": 23,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 554,
 // CHECK-NEXT:      "col": 23,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -484,10 +520,12 @@
 // CHECK-NEXT:      "kind": "ImplicitCastExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 554,
 // CHECK-NEXT:        "col": 23,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 554,
 // CHECK-NEXT:        "col": 23,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -504,10 +542,12 @@
 // CHECK-NEXT:        "kind": "DeclRefExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 554,
 // CHECK-NEXT:          "col": 23,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 554,
 // CHECK-NEXT:          "col": 23,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -536,10 +576,12 @@
 // CHECK:  "kind": "CStyleCastExpr",
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 612,
 // CHECK-NEXT:    "col": 10,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 627,
 // CHECK-NEXT:    "col": 25,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   }
@@ -555,10 +597,12 @@
 // CHECK-NEXT:    "kind": "ImplicitCastExpr",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 627,
 // CHECK-NEXT:      "col": 25,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 627,
 // CHECK-NEXT:      "col": 25,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -575,10 +619,12 @@
 // CHECK-NEXT:      "kind": "ImplicitCastExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 627,
 // CHECK-NEXT:        "col": 25,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 627,
 // CHECK-NEXT:        "col": 25,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -595,10 +641,12 @@
 // CHECK-NEXT:        "kind": "DeclRefExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 627,
 // CHECK-NEXT:          "col": 25,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 627,
 // CHECK-NEXT:          "col": 25,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -627,10 +675,12 @@
 // CHECK:  "kind": "CStyleCastExpr",
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 683,
 // CHECK-NEXT:    "col": 10,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 696,
 // CHECK-NEXT:    "col": 23,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   }
@@ -646,10 +696,12 @@
 // CHECK-NEXT:    "kind": "ImplicitCastExpr",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 696,
 // CHECK-NEXT:      "col": 23,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 696,
 // CHECK-NEXT:      "col": 23,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -666,10 +718,12 @@
 // CHECK-NEXT:      "kind": "ImplicitCastExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 696,
 // CHECK-NEXT:        "col": 23,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 696,
 // CHECK-NEXT:        "col": 23,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -686,10 +740,12 @@
 // CHECK-NEXT:        "kind": "DeclRefExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 696,
 // CHECK-NEXT:          "col": 23,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 696,
 // CHECK-NEXT:          "col": 23,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -718,10 +774,12 @@
 // CHECK:  "kind": "CXXStaticCastExpr",
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 841,
 // CHECK-NEXT:    "col": 10,
 // CHECK-NEXT:    "tokLen": 11
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 869,
 // CHECK-NEXT:    "col": 38,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   }
@@ -737,10 +795,12 @@
 // CHECK-NEXT:    "kind": "ImplicitCastExpr",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 868,
 // CHECK-NEXT:      "col": 37,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 868,
 // CHECK-NEXT:      "col": 37,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -757,10 +817,12 @@
 // CHECK-NEXT:      "kind": "ImplicitCastExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 868,
 // CHECK-NEXT:        "col": 37,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 868,
 // CHECK-NEXT:        "col": 37,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -777,10 +839,12 @@
 // CHECK-NEXT:        "kind": "DeclRefExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 868,
 // CHECK-NEXT:          "col": 37,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 868,
 // CHECK-NEXT:          "col": 37,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -809,10 +873,12 @@
 // CHECK:  "kind": "CXXStaticCastExpr",
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 930,
 // CHECK-NEXT:    "col": 10,
 // CHECK-NEXT:    "tokLen": 11
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 956,
 // CHECK-NEXT:    "col": 36,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   }
@@ -828,10 +894,12 @@
 // CHECK-NEXT:    "kind": "ImplicitCastExpr",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 955,
 // CHECK-NEXT:      "col": 35,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 955,
 // CHECK-NEXT:      "col": 35,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -848,10 +916,12 @@
 // CHECK-NEXT:      "kind": "ImplicitCastExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 955,
 // CHECK-NEXT:        "col": 35,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 955,
 // CHECK-NEXT:        "col": 35,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -868,10 +938,12 @@
 // CHECK-NEXT:        "kind": "DeclRefExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 955,
 // CHECK-NEXT:          "col": 35,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 955,
 // CHECK-NEXT:          "col": 35,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -900,10 +972,12 @@
 // CHECK:  "kind": "CXXStaticCastExpr",
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 1017,
 // CHECK-NEXT:    "col": 10,
 // CHECK-NEXT:    "tokLen": 11
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 1045,
 // CHECK-NEXT:    "col": 38,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   }
@@ -919,10 +993,12 @@
 // CHECK-NEXT:    "kind": "ImplicitCastExpr",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 1044,
 // CHECK-NEXT:      "col": 37,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 1044,
 // CHECK-NEXT:      "col": 37,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -939,10 +1015,12 @@
 // CHECK-NEXT:      "kind": "ImplicitCastExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1044,
 // CHECK-NEXT:        "col": 37,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1044,
 // CHECK-NEXT:        "col": 37,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -959,10 +1037,12 @@
 // CHECK-NEXT:        "kind": "DeclRefExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1044,
 // CHECK-NEXT:          "col": 37,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1044,
 // CHECK-NEXT:          "col": 37,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -991,10 +1071,12 @@
 // CHECK:  "kind": "CXXStaticCastExpr",
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 1104,
 // CHECK-NEXT:    "col": 10,
 // CHECK-NEXT:    "tokLen": 11
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 1130,
 // CHECK-NEXT:    "col": 36,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   }
@@ -1010,10 +1092,12 @@
 // CHECK-NEXT:    "kind": "ImplicitCastExpr",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 1129,
 // CHECK-NEXT:      "col": 35,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 1129,
 // CHECK-NEXT:      "col": 35,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -1030,10 +1114,12 @@
 // CHECK-NEXT:      "kind": "ImplicitCastExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1129,
 // CHECK-NEXT:        "col": 35,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1129,
 // CHECK-NEXT:        "col": 35,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -1050,10 +1136,12 @@
 // CHECK-NEXT:        "kind": "DeclRefExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1129,
 // CHECK-NEXT:          "col": 35,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1129,
 // CHECK-NEXT:          "col": 35,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -1082,10 +1170,12 @@
 // CHECK:  "kind": "CXXFunctionalCastExpr",
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 1410,
 // CHECK-NEXT:    "col": 10,
 // CHECK-NEXT:    "tokLen": 12
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 1424,
 // CHECK-NEXT:    "col": 24,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   }
@@ -1103,10 +1193,12 @@
 // CHECK-NEXT:    "kind": "ImplicitCastExpr",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 1423,
 // CHECK-NEXT:      "col": 23,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 1423,
 // CHECK-NEXT:      "col": 23,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -1125,10 +1217,12 @@
 // CHECK-NEXT:      "kind": "ImplicitCastExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1423,
 // CHECK-NEXT:        "col": 23,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1423,
 // CHECK-NEXT:        "col": 23,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -1147,10 +1241,12 @@
 // CHECK-NEXT:        "kind": "DeclRefExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1423,
 // CHECK-NEXT:          "col": 23,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1423,
 // CHECK-NEXT:          "col": 23,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -1183,10 +1279,12 @@
 // CHECK:  "kind": "CXXFunctionalCastExpr",
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 1487,
 // CHECK-NEXT:    "col": 10,
 // CHECK-NEXT:    "tokLen": 10
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 1499,
 // CHECK-NEXT:    "col": 22,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   }
@@ -1204,10 +1302,12 @@
 // CHECK-NEXT:    "kind": "ImplicitCastExpr",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 1498,
 // CHECK-NEXT:      "col": 21,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 1498,
 // CHECK-NEXT:      "col": 21,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -1226,10 +1326,12 @@
 // CHECK-NEXT:      "kind": "ImplicitCastExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1498,
 // CHECK-NEXT:        "col": 21,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1498,
 // CHECK-NEXT:        "col": 21,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -1248,10 +1350,12 @@
 // CHECK-NEXT:        "kind": "DeclRefExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1498,
 // CHECK-NEXT:          "col": 21,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1498,
 // CHECK-NEXT:          "col": 21,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -1284,10 +1388,12 @@
 // CHECK:  "kind": "CXXFunctionalCastExpr",
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 1562,
 // CHECK-NEXT:    "col": 10,
 // CHECK-NEXT:    "tokLen": 12
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 1576,
 // CHECK-NEXT:    "col": 24,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   }
@@ -1305,10 +1411,12 @@
 // CHECK-NEXT:    "kind": "ImplicitCastExpr",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 1575,
 // CHECK-NEXT:      "col": 23,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 1575,
 // CHECK-NEXT:      "col": 23,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -1327,10 +1435,12 @@
 // CHECK-NEXT:      "kind": "ImplicitCastExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1575,
 // CHECK-NEXT:        "col": 23,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1575,
 // CHECK-NEXT:        "col": 23,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -1349,10 +1459,12 @@
 // CHECK-NEXT:        "kind": "DeclRefExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1575,
 // CHECK-NEXT:          "col": 23,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1575,
 // CHECK-NEXT:          "col": 23,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }
@@ -1385,10 +1497,12 @@
 // CHECK:  "kind": "CXXFunctionalCastExpr",
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 1637,
 // CHECK-NEXT:    "col": 10,
 // CHECK-NEXT:    "tokLen": 10
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 1649,
 // CHECK-NEXT:    "col": 22,
 // CHECK-NEXT:    "tokLen": 1
 // CHECK-NEXT:   }
@@ -1406,10 +1520,12 @@
 // CHECK-NEXT:    "kind": "ImplicitCastExpr",
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 1648,
 // CHECK-NEXT:      "col": 21,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 1648,
 // CHECK-NEXT:      "col": 21,
 // CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     }
@@ -1428,10 +1544,12 @@
 // CHECK-NEXT:      "kind": "ImplicitCastExpr",
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1648,
 // CHECK-NEXT:        "col": 21,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1648,
 // CHECK-NEXT:        "col": 21,
 // CHECK-NEXT:        "tokLen": 1
 // CHECK-NEXT:       }
@@ -1450,10 +1568,12 @@
 // CHECK-NEXT:        "kind": "DeclRefExpr",
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1648,
 // CHECK-NEXT:          "col": 21,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1648,
 // CHECK-NEXT:          "col": 21,
 // CHECK-NEXT:          "tokLen": 1
 // CHECK-NEXT:         }