Index: clang/lib/Basic/SourceManager.cpp =================================================================== --- clang/lib/Basic/SourceManager.cpp +++ clang/lib/Basic/SourceManager.cpp @@ -1941,6 +1941,11 @@ assert(!MacroArgsCache->empty()); MacroArgsMap::iterator I = MacroArgsCache->upper_bound(Offset); + // In case every element in MacroArgsCache is greater than Offset we can't + // decrement the iterator. + if (I == MacroArgsCache->begin()) + return Loc; + --I; unsigned MacroArgBeginOffs = I->first;