[clang] baf3c77 - [libclang] Add translateCXRangeToCharRange conversion

Jan Korous via cfe-commits cfe-commits at lists.llvm.org
Fri Sep 4 09:42:47 PDT 2020


Author: Jan Korous
Date: 2020-09-04T09:41:22-07:00
New Revision: baf3c77bd9f6baf60a09ef3625fef84080642b72

URL: https://github.com/llvm/llvm-project/commit/baf3c77bd9f6baf60a09ef3625fef84080642b72
DIFF: https://github.com/llvm/llvm-project/commit/baf3c77bd9f6baf60a09ef3625fef84080642b72.diff

LOG: [libclang] Add translateCXRangeToCharRange conversion

Add new conversion with clearly specified semantics.

https://reviews.llvm.org/D86990

Added: 
    

Modified: 
    clang/tools/libclang/CIndex.cpp
    clang/tools/libclang/CXSourceLocation.h

Removed: 
    


################################################################################
diff  --git a/clang/tools/libclang/CIndex.cpp b/clang/tools/libclang/CIndex.cpp
index 93f9797a965e..683b517d79fd 100644
--- a/clang/tools/libclang/CIndex.cpp
+++ b/clang/tools/libclang/CIndex.cpp
@@ -164,6 +164,12 @@ CXSourceRange cxloc::translateSourceRange(const SourceManager &SM,
   return Result;
 }
 
+CharSourceRange cxloc::translateCXRangeToCharRange(CXSourceRange R) {
+  return CharSourceRange::getCharRange(
+      SourceLocation::getFromRawEncoding(R.begin_int_data),
+      SourceLocation::getFromRawEncoding(R.end_int_data));
+}
+
 //===----------------------------------------------------------------------===//
 // Cursor visitor.
 //===----------------------------------------------------------------------===//

diff  --git a/clang/tools/libclang/CXSourceLocation.h b/clang/tools/libclang/CXSourceLocation.h
index 6702d0cf9791..ce3d09e1c9eb 100644
--- a/clang/tools/libclang/CXSourceLocation.h
+++ b/clang/tools/libclang/CXSourceLocation.h
@@ -71,7 +71,11 @@ static inline SourceRange translateCXSourceRange(CXSourceRange R) {
                      SourceLocation::getFromRawEncoding(R.end_int_data));
 }
 
-
+/// Translates CXSourceRange to CharSourceRange.
+/// 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 translateCXRangeToCharRange(CXSourceRange R);
 }} // end namespace: clang::cxloc
 
 #endif


        


More information about the cfe-commits mailing list