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