diff options
Diffstat (limited to 'dist/clang/patches/080_D40643_Add-function-to-get-the-buffer-for-a-file.patch')
-rw-r--r-- | dist/clang/patches/080_D40643_Add-function-to-get-the-buffer-for-a-file.patch | 78 |
1 files changed, 0 insertions, 78 deletions
diff --git a/dist/clang/patches/080_D40643_Add-function-to-get-the-buffer-for-a-file.patch b/dist/clang/patches/080_D40643_Add-function-to-get-the-buffer-for-a-file.patch deleted file mode 100644 index 998288dfe95..00000000000 --- a/dist/clang/patches/080_D40643_Add-function-to-get-the-buffer-for-a-file.patch +++ /dev/null @@ -1,78 +0,0 @@ -diff --git a/include/clang-c/Index.h b/include/clang-c/Index.h -index f2397d1b63..0f4ade266c 100644 ---- a/tools/clang/include/clang-c/Index.h -+++ b/tools/clang/include/clang-c/Index.h -@@ -34,6 +34,7 @@ - #define CINDEX_VERSION_MAJOR 0 - #define CINDEX_VERSION_MINOR 43 - #define CINDEX_VERSION_HAS_ISINVALIDECL_BACKPORTED -+#define CINDEX_VERSION_HAS_GETFILECONTENTS_BACKPORTED - - #define CINDEX_VERSION_ENCODE(major, minor) ( \ - ((major) * 10000) \ -@@ -394,6 +395,21 @@ clang_isFileMultipleIncludeGuarded(CXTranslationUnit tu, CXFile file); - CINDEX_LINKAGE CXFile clang_getFile(CXTranslationUnit tu, - const char *file_name); - -+/** -+ * \brief Retrieve the buffer associated with the given file. -+ * -+ * \param tu the translation unit -+ * -+ * \param file the file for which to retrieve the buffer. -+ * -+ * \param size [out] if non-NULL, will be set to the size of the buffer. -+ * -+ * \returns a pointer to the buffer in memory that holds the contents of -+ * \p file, or a NULL pointer when the file is not loaded. -+ */ -+CINDEX_LINKAGE const char *clang_getFileContents(CXTranslationUnit tu, -+ CXFile file, size_t *size); -+ - /** - * \brief Returns non-zero if the \c file1 and \c file2 point to the same file, - * or they are both NULL. -diff --git a/tools/libclang/CIndex.cpp b/tools/libclang/CIndex.cpp -index 13599e1910..7902e8a030 100644 ---- a/tools/clang/tools/libclang/CIndex.cpp -+++ b/tools/clang/tools/libclang/CIndex.cpp -@@ -4148,6 +4148,27 @@ CXFile clang_getFile(CXTranslationUnit TU, const char *file_name) { - return const_cast<FileEntry *>(FMgr.getFile(file_name)); - } - -+const char *clang_getFileContents(CXTranslationUnit TU, CXFile file, -+ size_t *size) { -+ if (isNotUsableTU(TU)) { -+ LOG_BAD_TU(TU); -+ return nullptr; -+ } -+ -+ const SourceManager &SM = cxtu::getASTUnit(TU)->getSourceManager(); -+ FileID fid = SM.translateFile(static_cast<FileEntry *>(file)); -+ bool Invalid = true; -+ llvm::MemoryBuffer *buf = SM.getBuffer(fid, &Invalid); -+ if (Invalid) { -+ if (size) -+ *size = 0; -+ return nullptr; -+ } -+ if (size) -+ *size = buf->getBufferSize(); -+ return buf->getBufferStart(); -+} -+ - unsigned clang_isFileMultipleIncludeGuarded(CXTranslationUnit TU, - CXFile file) { - if (isNotUsableTU(TU)) { -diff --git a/tools/libclang/libclang.exports b/tools/libclang/libclang.exports -index 7192baab6a..c788abb881 100644 ---- a/tools/clang/tools/libclang/libclang.exports -+++ b/tools/clang/tools/libclang/libclang.exports -@@ -216,6 +216,7 @@ clang_getExceptionSpecificationType - clang_getFieldDeclBitWidth - clang_getExpansionLocation - clang_getFile -+clang_getFileContents - clang_getFileLocation - clang_getFileName - clang_getFileTime |