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:
Daniel Dunbar 2009-09-03 05:59:50 +00:00
parent 2d9c740cc5
commit 3a0637b06b
6 changed files with 14 additions and 50 deletions

View File

@ -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.

View File

@ -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

View File

@ -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));

View File

@ -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,

View File

@ -19,4 +19,3 @@ _clang_isReference
_clang_isDefinition
_clang_getCursorSpelling
_clang_getCursorKindSpelling
_clang_getTranslationUnitSpelling

View File

@ -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);
}