From 97c337c2bdf3ec53073c7e7dd656aa0dd37ee409 Mon Sep 17 00:00:00 2001 From: Argyrios Kyrtzidis Date: Mon, 11 Jul 2011 20:15:00 +0000 Subject: [PATCH] [arcmt] Move the remapping functions to clang-c/Index.h and change 'arcmt_' prefix to 'clang_'. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134916 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/clang-c/ARCMigrate.h | 79 -------------------------- include/clang-c/Index.h | 45 +++++++++++++++ tools/c-arcmt-test/c-arcmt-test.c | 13 ++--- tools/libclang/ARCMigrate.cpp | 30 +++++----- tools/libclang/libclang.darwin.exports | 9 ++- tools/libclang/libclang.exports | 9 ++- 6 files changed, 75 insertions(+), 110 deletions(-) delete mode 100644 include/clang-c/ARCMigrate.h diff --git a/include/clang-c/ARCMigrate.h b/include/clang-c/ARCMigrate.h deleted file mode 100644 index 00085be131..0000000000 --- a/include/clang-c/ARCMigrate.h +++ /dev/null @@ -1,79 +0,0 @@ -/*===-- clang-c/ARCMigrate.h - ARC Migration Public C Interface ---*- C -*-===*\ -|* *| -|* The LLVM Compiler Infrastructure *| -|* *| -|* This file is distributed under the University of Illinois Open Source *| -|* License. See LICENSE.TXT for details. *| -|* *| -|*===----------------------------------------------------------------------===*| -|* *| -|* This header provides a public interface to a Clang library for migrating *| -|* objective-c source files to ARC mode. *| -|* *| -\*===----------------------------------------------------------------------===*/ - -#ifndef CLANG_C_ARCMIGRATE_H -#define CLANG_C_ARCMIGRATE_H - -#include "clang-c/Index.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/** \defgroup CARCMT libclang: C Interface to Clang ARC migration library - * - * The C Interface provides a small API that exposes facilities for translating - * objective-c source files of a project to Automatic Reference Counting mode. - * - * To avoid namespace pollution, data types are prefixed with "CMT" and - * functions are prefixed with "arcmt_". - * - * @{ - */ - -/** - * \brief A remapping of original source files and their translated files. - */ -typedef void *CMTRemap; - -/** - * \brief Retrieve a remapping. - * - * \param migrate_dir_path the path that clang used during the migration process. - * - * \returns the requested remapping. This remapping must be freed - * via a call to \c arcmt_remap_dispose(). Can return NULL if an error occurred. - */ -CINDEX_LINKAGE CMTRemap arcmt_getRemappings(const char *migrate_dir_path); - -/** - * \brief Determine the number of remappings. - */ -CINDEX_LINKAGE unsigned arcmt_remap_getNumFiles(CMTRemap); - -/** - * \brief Get the original filename. - */ -CINDEX_LINKAGE CXString arcmt_remap_getOriginalFile(CMTRemap, unsigned index); - -/** - * \brief Get the filename that the original file was translated into. - */ -CINDEX_LINKAGE -CXString arcmt_remap_getTransformedFile(CMTRemap, unsigned index); - -/** - * \brief Dispose the remapping. - */ -CINDEX_LINKAGE void arcmt_remap_dispose(CMTRemap); - -/** - * @} - */ - -#ifdef __cplusplus -} -#endif -#endif - diff --git a/include/clang-c/Index.h b/include/clang-c/Index.h index f7a0f569a3..bfcc88244a 100644 --- a/include/clang-c/Index.h +++ b/include/clang-c/Index.h @@ -3186,6 +3186,51 @@ CINDEX_LINKAGE void clang_getInclusions(CXTranslationUnit tu, CXInclusionVisitor visitor, CXClientData client_data); +/** + * @} + */ + +/** \defgroup CINDEX_REMAPPING Remapping functions + * + * @{ + */ + +/** + * \brief A remapping of original source files and their translated files. + */ +typedef void *CXRemapping; + +/** + * \brief Retrieve a remapping. + * + * \param path the path that contains metadata about remappings. + * + * \returns the requested remapping. This remapping must be freed + * via a call to \c clang_remap_dispose(). Can return NULL if an error occurred. + */ +CINDEX_LINKAGE CXRemapping clang_getRemappings(const char *path); + +/** + * \brief Determine the number of remappings. + */ +CINDEX_LINKAGE unsigned clang_remap_getNumFiles(CXRemapping); + +/** + * \brief Get the original and the associated filename from the remapping. + * + * \param original If non-NULL, will be set to the original filename. + * + * \param transformed If non-NULL, will be set to the filename that the original + * is associated with. + */ +CINDEX_LINKAGE void clang_remap_getFilenames(CXRemapping, unsigned index, + CXString *original, CXString *transformed); + +/** + * \brief Dispose the remapping. + */ +CINDEX_LINKAGE void clang_remap_dispose(CXRemapping); + /** * @} */ diff --git a/tools/c-arcmt-test/c-arcmt-test.c b/tools/c-arcmt-test/c-arcmt-test.c index 927292d039..5522b33e23 100644 --- a/tools/c-arcmt-test/c-arcmt-test.c +++ b/tools/c-arcmt-test/c-arcmt-test.c @@ -1,6 +1,6 @@ /* c-arcmt-test.c */ -#include "clang-c/ARCMigrate.h" +#include "clang-c/Index.h" #include #include #include @@ -10,19 +10,18 @@ #endif static int print_remappings(const char *path) { - CMTRemap remap; + CXRemapping remap; unsigned i, N; CXString origFname; CXString transFname; - remap = arcmt_getRemappings(path); + remap = clang_getRemappings(path); if (!remap) return 1; - N = arcmt_remap_getNumFiles(remap); + N = clang_remap_getNumFiles(remap); for (i = 0; i != N; ++i) { - origFname = arcmt_remap_getOriginalFile(remap, i); - transFname = arcmt_remap_getTransformedFile(remap, i); + clang_remap_getFilenames(remap, i, &origFname, &transFname); fprintf(stdout, "%s\n", clang_getCString(origFname)); fprintf(stdout, "%s\n", clang_getCString(transFname)); @@ -31,7 +30,7 @@ static int print_remappings(const char *path) { clang_disposeString(transFname); } - arcmt_remap_dispose(remap); + clang_remap_dispose(remap); return 0; } diff --git a/tools/libclang/ARCMigrate.cpp b/tools/libclang/ARCMigrate.cpp index cd0d8bb64a..39c7d84d51 100644 --- a/tools/libclang/ARCMigrate.cpp +++ b/tools/libclang/ARCMigrate.cpp @@ -11,7 +11,7 @@ // //===----------------------------------------------------------------------===// -#include "clang-c/ARCMigrate.h" +#include "clang-c/Index.h" #include "CXString.h" #include "clang/ARCMigrate/ARCMT.h" @@ -35,12 +35,12 @@ struct Remap { extern "C" { -CMTRemap arcmt_getRemappings(const char *migrate_dir_path) { +CXRemapping clang_getRemappings(const char *migrate_dir_path) { bool Logging = ::getenv("LIBCLANG_LOGGING"); if (!migrate_dir_path) { if (Logging) - llvm::errs() << "arcmt_getRemappings was called with NULL parameter\n"; + llvm::errs() << "clang_getRemappings was called with NULL parameter\n"; return 0; } @@ -48,7 +48,7 @@ CMTRemap arcmt_getRemappings(const char *migrate_dir_path) { llvm::sys::fs::exists(migrate_dir_path, exists); if (!exists) { if (Logging) { - llvm::errs() << "Error by arcmt_getRemappings(\"" << migrate_dir_path + llvm::errs() << "Error by clang_getRemappings(\"" << migrate_dir_path << "\")\n"; llvm::errs() << "\"" << migrate_dir_path << "\" does not exist\n"; } @@ -62,7 +62,7 @@ CMTRemap arcmt_getRemappings(const char *migrate_dir_path) { if (err) { if (Logging) { - llvm::errs() << "Error by arcmt_getRemappings(\"" << migrate_dir_path + llvm::errs() << "Error by clang_getRemappings(\"" << migrate_dir_path << "\")\n"; for (TextDiagnosticBuffer::const_iterator I = diagBuffer.err_begin(), E = diagBuffer.err_end(); I != E; ++I) @@ -74,22 +74,24 @@ CMTRemap arcmt_getRemappings(const char *migrate_dir_path) { return remap.take(); } -unsigned arcmt_remap_getNumFiles(CMTRemap map) { +unsigned clang_remap_getNumFiles(CXRemapping map) { return static_cast(map)->Vec.size(); } -CXString arcmt_remap_getOriginalFile(CMTRemap map, unsigned index) { - return cxstring::createCXString(static_cast(map)->Vec[index].first, +void clang_remap_getFilenames(CXRemapping map, unsigned index, + CXString *original, CXString *transformed) { + if (original) + *original = cxstring::createCXString( + static_cast(map)->Vec[index].first, + /*DupString =*/ true); + if (transformed) + *transformed = cxstring::createCXString( + static_cast(map)->Vec[index].second, /*DupString =*/ true); } -CXString arcmt_remap_getTransformedFile(CMTRemap map, unsigned index) { - return cxstring::createCXString(static_cast(map)->Vec[index].second, - /*DupString =*/ true); -} - -void arcmt_remap_dispose(CMTRemap map) { +void clang_remap_dispose(CXRemapping map) { delete static_cast(map); } diff --git a/tools/libclang/libclang.darwin.exports b/tools/libclang/libclang.darwin.exports index a8b466eff5..bfc5be9c07 100644 --- a/tools/libclang/libclang.darwin.exports +++ b/tools/libclang/libclang.darwin.exports @@ -137,8 +137,7 @@ _clang_toggleCrashRecovery _clang_tokenize _clang_visitChildren _clang_visitChildrenWithBlock -_arcmt_getRemappings -_arcmt_remap_getNumFiles -_arcmt_remap_getOriginalFile -_arcmt_remap_getTransformedFile -_arcmt_remap_dispose +_clang_getRemappings +_clang_remap_getNumFiles +_clang_remap_getFilenames +_clang_remap_dispose diff --git a/tools/libclang/libclang.exports b/tools/libclang/libclang.exports index ac6fc3494f..47b703011c 100644 --- a/tools/libclang/libclang.exports +++ b/tools/libclang/libclang.exports @@ -137,8 +137,7 @@ clang_toggleCrashRecovery clang_tokenize clang_visitChildren clang_visitChildrenWithBlock -arcmt_getRemappings -arcmt_remap_getNumFiles -arcmt_remap_getOriginalFile -arcmt_remap_getTransformedFile -arcmt_remap_dispose +clang_getRemappings +clang_remap_getNumFiles +clang_remap_getFilenames +clang_remap_dispose -- 2.40.0