[cfe-commits] Patch suggestion for libclang

Clint Caywood clint at clintcaywood.com
Sat Mar 10 18:40:50 PST 2012


Hi folks,

I'm new to this, but I've made a patch to libclang that allows it to
properly get the range for a translation unit cursor (which I needed for a
project I'm working on).  It's pretty straightforward.

Thanks,
Clint

Index: tools/libclang/CIndex.cpp
===================================================================
--- tools/libclang/CIndex.cpp (revision 152526)
+++ tools/libclang/CIndex.cpp (working copy)
@@ -3869,6 +3869,15 @@
     return TU->mapRangeFromPreamble(Range);
   }

+  if (C.kind == CXCursor_TranslationUnit) {
+    ASTUnit *TU = getCursorASTUnit(C);
+    FileID MainID = TU->getSourceManager().getMainFileID();
+    SourceLocation Start =
TU->getSourceManager().getLocForStartOfFile(MainID);
+    SourceLocation End = TU->getSourceManager().getLocForEndOfFile(MainID);
+    SourceRange Range(Start, End);
+    return TU->mapRangeFromPreamble(Range);
+  }
+
   if (C.kind >= CXCursor_FirstDecl && C.kind <= CXCursor_LastDecl) {
     Decl *D = cxcursor::getCursorDecl(C);
     if (!D)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20120310/afdea54c/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: patch.diff
Type: text/x-patch
Size: 787 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20120310/afdea54c/attachment.bin>


More information about the cfe-commits mailing list