From: Ted Kremenek Date: Mon, 15 Nov 2010 22:23:26 +0000 (+0000) Subject: Cast pointers instead of returning a new value within RunVisitorWorkList(). X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=82f3c50fa163f99d1407849e556d3859a09afd78;p=clang Cast pointers instead of returning a new value within RunVisitorWorkList(). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@119282 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/tools/libclang/CIndex.cpp b/tools/libclang/CIndex.cpp index d98356aa0f..633b64ccc5 100644 --- a/tools/libclang/CIndex.cpp +++ b/tools/libclang/CIndex.cpp @@ -1659,9 +1659,9 @@ public: VisitorJob(parent, VisitorJob::DeclVisitKind, d, isFirst ? (void*) 1 : (void*) 0) {} static bool classof(const VisitorJob *VJ) { - return VJ->getKind () == DeclVisitKind; + return VJ->getKind() == DeclVisitKind; } - Decl *get() { return static_cast(dataA);} + Decl *get() const { return static_cast(dataA); } bool isFirst() const { return dataB ? true : false; } }; @@ -1675,7 +1675,7 @@ public: return VJ->getKind() == TypeLocVisitKind; } - TypeLoc get() { + TypeLoc get() const { QualType T = QualType::getFromOpaquePtr(dataA); return TypeLoc(T, dataB); } @@ -1868,31 +1868,32 @@ bool CursorVisitor::IsInRegionOfInterest(CXCursor C) { bool CursorVisitor::RunVisitorWorkList(VisitorWorkList &WL) { while (!WL.empty()) { // Dequeue the worklist item. - VisitorJob LI = WL.back(); WL.pop_back(); - + VisitorJob LI = WL.back(); + WL.pop_back(); + // Set the Parent field, then back to its old value once we're done. SetParentRAII SetParent(Parent, StmtParent, LI.getParent()); switch (LI.getKind()) { case VisitorJob::DeclVisitKind: { - Decl *D = cast(LI).get(); + Decl *D = cast(&LI)->get(); if (!D) continue; // For now, perform default visitation for Decls. - if (Visit(MakeCXCursor(D, TU, cast(LI).isFirst()))) + if (Visit(MakeCXCursor(D, TU, cast(&LI)->isFirst()))) return true; continue; } case VisitorJob::TypeLocVisitKind: { // Perform default visitation for TypeLocs. - if (Visit(cast(LI).get())) + if (Visit(cast(&LI)->get())) return true; continue; } case VisitorJob::StmtVisitKind: { - Stmt *S = cast(LI).get(); + Stmt *S = cast(&LI)->get(); if (!S) continue; @@ -1926,7 +1927,7 @@ bool CursorVisitor::RunVisitorWorkList(VisitorWorkList &WL) { case Stmt::CXXDependentScopeMemberExprClass: if (Visit(Cursor)) return true; - continue; + break; default: if (!IsInRegionOfInterest(Cursor)) continue; @@ -1939,12 +1940,13 @@ bool CursorVisitor::RunVisitorWorkList(VisitorWorkList &WL) { EnqueueWorkList(WL, S); break; } - continue; + break; } + continue; } case VisitorJob::MemberExprPartsKind: { // Handle the other pieces in the MemberExpr besides the base. - MemberExpr *M = cast(LI).get(); + MemberExpr *M = cast(&LI)->get(); // Visit the nested-name-specifier if (NestedNameSpecifier *Qualifier = M->getQualifier()) @@ -1967,7 +1969,7 @@ bool CursorVisitor::RunVisitorWorkList(VisitorWorkList &WL) { continue; } case VisitorJob::DeclRefExprPartsKind: { - DeclRefExpr *DR = cast(LI).get(); + DeclRefExpr *DR = cast(&LI)->get(); // Visit nested-name-specifier, if present. if (NestedNameSpecifier *Qualifier = DR->getQualifier()) if (VisitNestedNameSpecifier(Qualifier, DR->getQualifierRange())) @@ -1987,7 +1989,7 @@ bool CursorVisitor::RunVisitorWorkList(VisitorWorkList &WL) { continue; } case VisitorJob::OverloadExprPartsKind: { - OverloadExpr *O = cast(LI).get(); + OverloadExpr *O = cast(&LI)->get(); // Visit the nested-name-specifier. if (NestedNameSpecifier *Qualifier = O->getQualifier()) if (VisitNestedNameSpecifier(Qualifier, O->getQualifierRange()))