forked from OSchip/llvm-project
Revert "Visit function/method bodies and issue callback for parameters and local
variables.", this is breaking x86_64-apple-darwin10 and Linux tests. llvm-svn: 80896
This commit is contained in:
parent
2d9c740cc5
commit
3a0637b06b
|
@ -95,8 +95,6 @@ CXTranslationUnit clang_createTranslationUnit(
|
|||
CXIndex, const char *ast_filename
|
||||
);
|
||||
|
||||
const char *clang_getTranslationUnitSpelling(CXTranslationUnit CTUnit);
|
||||
|
||||
/*
|
||||
Usage: clang_loadTranslationUnit(). Will load the toplevel declarations
|
||||
within a translation unit, issuing a 'callback' for each one.
|
||||
|
|
|
@ -28,7 +28,6 @@ namespace clang {
|
|||
class Preprocessor;
|
||||
class ASTContext;
|
||||
class Decl;
|
||||
class PCHReader;
|
||||
|
||||
/// \brief Utility class for loading a ASTContext from a PCH file.
|
||||
///
|
||||
|
@ -40,7 +39,6 @@ class ASTUnit {
|
|||
llvm::OwningPtr<TargetInfo> Target;
|
||||
llvm::OwningPtr<Preprocessor> PP;
|
||||
llvm::OwningPtr<ASTContext> Ctx;
|
||||
llvm::OwningPtr<PCHReader> Reader;
|
||||
|
||||
ASTUnit(const ASTUnit&); // do not implement
|
||||
ASTUnit &operator=(const ASTUnit &); // do not implement
|
||||
|
@ -61,8 +59,6 @@ public:
|
|||
const Diagnostic &getDiagnostic() const { return *Diags.get(); }
|
||||
Diagnostic &getDiagnostic() { return *Diags.get(); }
|
||||
|
||||
const std::string &getOriginalSourceFileName();
|
||||
|
||||
/// \brief Create a ASTUnit from a PCH file.
|
||||
///
|
||||
/// \param Filename PCH filename
|
||||
|
|
|
@ -77,9 +77,6 @@ public:
|
|||
|
||||
} // anonymous namespace
|
||||
|
||||
const std::string &ASTUnit::getOriginalSourceFileName() {
|
||||
return Reader->getOriginalSourceFile();
|
||||
}
|
||||
|
||||
ASTUnit *ASTUnit::LoadFromPCHFile(const std::string &Filename,
|
||||
FileManager &FileMgr,
|
||||
|
@ -104,11 +101,10 @@ ASTUnit *ASTUnit::LoadFromPCHFile(const std::string &Filename,
|
|||
std::string Predefines;
|
||||
unsigned Counter;
|
||||
|
||||
llvm::OwningPtr<PCHReader> Reader;
|
||||
llvm::OwningPtr<PCHReader> Reader;
|
||||
llvm::OwningPtr<ExternalASTSource> Source;
|
||||
|
||||
Reader.reset(new PCHReader(SourceMgr, FileMgr, Diags));
|
||||
AST->Reader.reset(Reader.get());
|
||||
Reader->setListener(new PCHInfoCollector(LangInfo, HeaderInfo, TargetTriple,
|
||||
Predefines, Counter));
|
||||
|
||||
|
|
|
@ -67,9 +67,6 @@ public:
|
|||
break;
|
||||
}
|
||||
}
|
||||
void VisitVarDecl(VarDecl *ND) {
|
||||
Call(CXCursor_VarDecl, ND);
|
||||
}
|
||||
void VisitFunctionDecl(FunctionDecl *ND) {
|
||||
Call(ND->isThisDeclarationADefinition() ? CXCursor_FunctionDefn
|
||||
: CXCursor_FunctionDecl, ND);
|
||||
|
@ -98,9 +95,6 @@ class CDeclVisitor : public DeclVisitor<CDeclVisitor> {
|
|||
CXClientData CData;
|
||||
|
||||
void Call(enum CXCursorKind CK, NamedDecl *ND) {
|
||||
// Disable the callback when the context is equal to the visiting decl.
|
||||
if (CDecl == ND)
|
||||
return;
|
||||
CXCursor C = { CK, ND };
|
||||
Callback(CDecl, C, CData);
|
||||
}
|
||||
|
@ -135,28 +129,17 @@ public:
|
|||
void VisitFieldDecl(FieldDecl *ND) {
|
||||
Call(CXCursor_FieldDecl, ND);
|
||||
}
|
||||
void VisitVarDecl(VarDecl *ND) {
|
||||
Call(CXCursor_VarDecl, ND);
|
||||
}
|
||||
void VisitParmVarDecl(ParmVarDecl *ND) {
|
||||
Call(CXCursor_ParmDecl, ND);
|
||||
}
|
||||
void VisitObjCPropertyDecl(ObjCPropertyDecl *ND) {
|
||||
Call(CXCursor_ObjCPropertyDecl, ND);
|
||||
}
|
||||
void VisitObjCIvarDecl(ObjCIvarDecl *ND) {
|
||||
Call(CXCursor_ObjCIvarDecl, ND);
|
||||
}
|
||||
void VisitFunctionDecl(FunctionDecl *ND) {
|
||||
if (ND->isThisDeclarationADefinition()) {
|
||||
VisitDeclContext(dyn_cast<DeclContext>(ND));
|
||||
}
|
||||
}
|
||||
void VisitObjCMethodDecl(ObjCMethodDecl *ND) {
|
||||
if (ND->getBody()) {
|
||||
Call(ND->isInstanceMethod() ? CXCursor_ObjCInstanceMethodDefn
|
||||
: CXCursor_ObjCClassMethodDefn, ND);
|
||||
VisitDeclContext(dyn_cast<DeclContext>(ND));
|
||||
// FIXME: load body.
|
||||
} else
|
||||
Call(ND->isInstanceMethod() ? CXCursor_ObjCInstanceMethodDecl
|
||||
: CXCursor_ObjCClassMethodDecl, ND);
|
||||
|
@ -184,12 +167,6 @@ CXTranslationUnit clang_createTranslationUnit(
|
|||
return ASTUnit::LoadFromPCHFile(astName, CXXIdx->getFileManager(), &ErrMsg);
|
||||
}
|
||||
|
||||
const char *clang_getTranslationUnitSpelling(CXTranslationUnit CTUnit)
|
||||
{
|
||||
assert(CTUnit && "Passed null CXTranslationUnit");
|
||||
ASTUnit *CXXUnit = static_cast<ASTUnit *>(CTUnit);
|
||||
return CXXUnit->getOriginalSourceFileName().c_str();
|
||||
}
|
||||
|
||||
void clang_loadTranslationUnit(CXTranslationUnit CTUnit,
|
||||
CXTranslationUnitIterator callback,
|
||||
|
|
|
@ -19,4 +19,3 @@ _clang_isReference
|
|||
_clang_isDefinition
|
||||
_clang_getCursorSpelling
|
||||
_clang_getCursorKindSpelling
|
||||
_clang_getTranslationUnitSpelling
|
||||
|
|
|
@ -3,27 +3,25 @@
|
|||
#include "clang-c/Index.h"
|
||||
#include <stdio.h>
|
||||
|
||||
static void PrintCursor(CXCursor Cursor) {
|
||||
printf("%s => %s", clang_getCursorKindSpelling(Cursor.kind),
|
||||
clang_getCursorSpelling(Cursor));
|
||||
printf(" (%s,%d:%d)\n", clang_getCursorSource(Cursor),
|
||||
clang_getCursorLine(Cursor),
|
||||
clang_getCursorColumn(Cursor));
|
||||
}
|
||||
|
||||
static void DeclVisitor(CXDecl Dcl, CXCursor Cursor, CXClientData Filter)
|
||||
{
|
||||
printf("%s: ", clang_getDeclSpelling(Dcl));
|
||||
if (!Filter || (Cursor.kind == *(enum CXCursorKind *)Filter))
|
||||
PrintCursor(Cursor);
|
||||
if (!Filter || (Cursor.kind == *(enum CXCursorKind *)Filter)) {
|
||||
printf("%s => %s", clang_getCursorKindSpelling(Cursor.kind),
|
||||
clang_getCursorSpelling(Cursor));
|
||||
printf(" (%s,%d:%d)\n", clang_getCursorSource(Cursor),
|
||||
clang_getCursorLine(Cursor),
|
||||
clang_getCursorColumn(Cursor));
|
||||
}
|
||||
}
|
||||
|
||||
static void TranslationUnitVisitor(CXTranslationUnit Unit, CXCursor Cursor,
|
||||
CXClientData Filter)
|
||||
{
|
||||
printf("%s: ", clang_getTranslationUnitSpelling(Unit));
|
||||
if (!Filter || (Cursor.kind == *(enum CXCursorKind *)Filter)) {
|
||||
PrintCursor(Cursor);
|
||||
printf("%s => %s", clang_getCursorKindSpelling(Cursor.kind),
|
||||
clang_getCursorSpelling(Cursor));
|
||||
printf(" (%s,%d:%d)\n", clang_getCursorSource(Cursor),
|
||||
clang_getCursorLine(Cursor),
|
||||
clang_getCursorColumn(Cursor));
|
||||
|
||||
clang_loadDeclaration(Cursor.decl, DeclVisitor, 0);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue