summaryrefslogtreecommitdiffstats
path: root/clang/tools/libclang/CXTranslationUnit.h
diff options
context:
space:
mode:
authorDmitri Gribenko <gribozavr@gmail.com>2013-01-26 21:32:42 +0000
committerDmitri Gribenko <gribozavr@gmail.com>2013-01-26 21:32:42 +0000
commitd36209e30827a27d90505ede2c58a71681b74c8f (patch)
tree168901ed7c16fa447dc64861b72b431977b22f03 /clang/tools/libclang/CXTranslationUnit.h
parent0ea5183fd77bf67a28b4eff977a64b513e3da61f (diff)
downloadbcm5719-llvm-d36209e30827a27d90505ede2c58a71681b74c8f.tar.gz
bcm5719-llvm-d36209e30827a27d90505ede2c58a71681b74c8f.zip
libclang: some type safety for CXTranslationUnitImpl's internals
There is no reason to store pointers as 'void*' in CXTranslationUnitImpl, since it does not affect libclang ABI. llvm-svn: 173588
Diffstat (limited to 'clang/tools/libclang/CXTranslationUnit.h')
-rw-r--r--clang/tools/libclang/CXTranslationUnit.h13
1 files changed, 8 insertions, 5 deletions
diff --git a/clang/tools/libclang/CXTranslationUnit.h b/clang/tools/libclang/CXTranslationUnit.h
index 323d4b78aa9..15e89ea8499 100644
--- a/clang/tools/libclang/CXTranslationUnit.h
+++ b/clang/tools/libclang/CXTranslationUnit.h
@@ -16,17 +16,20 @@
#include "clang-c/Index.h"
-extern "C" {
+namespace clang {
+ class ASTUnit;
+ class CIndexer;
+} // namespace clang
+
struct CXTranslationUnitImpl {
void *CIdx;
- void *TUData;
+ clang::ASTUnit *TheASTUnit;
void *StringPool;
void *Diagnostics;
void *OverridenCursorsPool;
void *FormatContext;
unsigned FormatInMemoryUniqueId;
};
-}
namespace clang {
class ASTUnit;
@@ -34,10 +37,10 @@ namespace clang {
namespace cxtu {
-CXTranslationUnitImpl *MakeCXTranslationUnit(CIndexer *CIdx, ASTUnit *TU);
+CXTranslationUnitImpl *MakeCXTranslationUnit(CIndexer *CIdx, ASTUnit *AU);
static inline ASTUnit *getASTUnit(CXTranslationUnit TU) {
- return static_cast<ASTUnit *>(TU->TUData);
+ return TU->TheASTUnit;
}
class CXTUOwner {
OpenPOWER on IntegriCloud