Index: clang/tools/libclang/CIndex.cpp =================================================================== --- clang/tools/libclang/CIndex.cpp +++ clang/tools/libclang/CIndex.cpp @@ -164,6 +164,12 @@ return Result; } +CharSourceRange cxloc::translateCharRangeToCharRange(CXSourceRange R) { + return CharSourceRange::getCharRange( + SourceLocation::getFromRawEncoding(R.begin_int_data), + SourceLocation::getFromRawEncoding(R.end_int_data)); +} + //===----------------------------------------------------------------------===// // Cursor visitor. //===----------------------------------------------------------------------===// Index: clang/tools/libclang/CXSourceLocation.h =================================================================== --- clang/tools/libclang/CXSourceLocation.h +++ clang/tools/libclang/CXSourceLocation.h @@ -71,7 +71,11 @@ SourceLocation::getFromRawEncoding(R.end_int_data)); } - +/// Translates CXSourceRange to SourceRange. +/// The semantics of \p R are: +/// R.begin_int_data is first character of the range. +/// R.end_int_data is one character past the end of the range. +CharSourceRange translateCharRangeToCharRange(CXSourceRange R); }} // end namespace: clang::cxloc #endif