Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(40)

Unified Diff: tools/gcmole/gcmole.cc

Issue 445983002: Update gcmole to a more recent clang/llvm. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Changes up to 3.5 Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « tools/gcmole/bootstrap.sh ('k') | tools/gcmole/gcmole.lua » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tools/gcmole/gcmole.cc
diff --git a/tools/gcmole/gcmole.cc b/tools/gcmole/gcmole.cc
index bdff18952b57036b302bf7a6546301b2267bd184..9f1f781453d54bf121109d11f1f3406bfc058524 100644
--- a/tools/gcmole/gcmole.cc
+++ b/tools/gcmole/gcmole.cc
@@ -51,8 +51,8 @@ typedef std::set<MangledName> CalleesSet;
static bool GetMangledName(clang::MangleContext* ctx,
const clang::NamedDecl* decl,
MangledName* result) {
- if (!isa<clang::CXXConstructorDecl>(decl) &&
- !isa<clang::CXXDestructorDecl>(decl)) {
+ if (!llvm::isa<clang::CXXConstructorDecl>(decl) &&
+ !llvm::isa<clang::CXXDestructorDecl>(decl)) {
llvm::SmallVector<char, 512> output;
llvm::raw_svector_ostream out(output);
ctx->mangleName(decl, out);
@@ -74,7 +74,7 @@ static std::string STATE_TAG("enum v8::internal::StateTag");
static bool IsExternalVMState(const clang::ValueDecl* var) {
const clang::EnumConstantDecl* enum_constant =
- dyn_cast<clang::EnumConstantDecl>(var);
+ llvm::dyn_cast<clang::EnumConstantDecl>(var);
if (enum_constant != NULL && enum_constant->getNameAsString() == EXTERNAL) {
clang::QualType type = enum_constant->getType();
return (type.getAsString() == STATE_TAG);
@@ -109,11 +109,10 @@ struct Resolver {
clang::DeclContext::lookup_result result =
decl_ctx_->lookup(ResolveName(n));
- clang::DeclContext::lookup_iterator end = result.second;
- for (clang::DeclContext::lookup_iterator i = result.first;
- i != end;
+ clang::DeclContext::lookup_iterator end = result.end();
+ for (clang::DeclContext::lookup_iterator i = result.begin(); i != end;
i++) {
- if (isa<T>(*i)) return cast<T>(*i);
+ if (llvm::isa<T>(*i)) return llvm::cast<T>(*i);
}
return NULL;
@@ -208,13 +207,13 @@ class FunctionDeclarationFinder
: public clang::ASTConsumer,
public clang::RecursiveASTVisitor<FunctionDeclarationFinder> {
public:
- explicit FunctionDeclarationFinder(clang::Diagnostic& d,
+ explicit FunctionDeclarationFinder(clang::DiagnosticsEngine& d,
clang::SourceManager& sm,
const std::vector<std::string>& args)
- : d_(d), sm_(sm) { }
+ : d_(d), sm_(sm) {}
virtual void HandleTranslationUnit(clang::ASTContext &ctx) {
- mangle_context_ = clang::createItaniumMangleContext(ctx, d_);
+ mangle_context_ = clang::ItaniumMangleContext::create(ctx, d_);
callees_printer_ = new CalleesPrinter(mangle_context_);
TraverseDecl(ctx.getTranslationUnitDecl());
@@ -228,7 +227,7 @@ class FunctionDeclarationFinder
}
private:
- clang::Diagnostic& d_;
+ clang::DiagnosticsEngine& d_;
clang::SourceManager& sm_;
clang::MangleContext* mangle_context_;
@@ -508,10 +507,8 @@ class FunctionAnalyzer {
FunctionAnalyzer(clang::MangleContext* ctx,
clang::DeclarationName handle_decl_name,
clang::CXXRecordDecl* object_decl,
- clang::CXXRecordDecl* smi_decl,
- clang::Diagnostic& d,
- clang::SourceManager& sm,
- bool dead_vars_analysis)
+ clang::CXXRecordDecl* smi_decl, clang::DiagnosticsEngine& d,
+ clang::SourceManager& sm, bool dead_vars_analysis)
: ctx_(ctx),
handle_decl_name_(handle_decl_name),
object_decl_(object_decl),
@@ -519,8 +516,7 @@ class FunctionAnalyzer {
d_(d),
sm_(sm),
block_(NULL),
- dead_vars_analysis_(dead_vars_analysis) {
- }
+ dead_vars_analysis_(dead_vars_analysis) {}
// --------------------------------------------------------------------------
@@ -528,19 +524,18 @@ class FunctionAnalyzer {
// --------------------------------------------------------------------------
ExprEffect VisitExpr(clang::Expr* expr, const Environment& env) {
-#define VISIT(type) do { \
- clang::type* concrete_expr = dyn_cast_or_null<clang::type>(expr); \
- if (concrete_expr != NULL) { \
- return Visit##type (concrete_expr, env); \
- } \
- } while(0);
+#define VISIT(type) \
+ do { \
+ clang::type* concrete_expr = llvm::dyn_cast_or_null<clang::type>(expr); \
+ if (concrete_expr != NULL) { \
+ return Visit##type(concrete_expr, env); \
+ } \
+ } while (0);
VISIT(AbstractConditionalOperator);
VISIT(AddrLabelExpr);
VISIT(ArraySubscriptExpr);
VISIT(BinaryOperator);
- VISIT(BinaryTypeTraitExpr);
- VISIT(BlockDeclRefExpr);
VISIT(BlockExpr);
VISIT(CallExpr);
VISIT(CastExpr);
@@ -587,8 +582,8 @@ class FunctionAnalyzer {
VISIT(StmtExpr);
VISIT(StringLiteral);
VISIT(SubstNonTypeTemplateParmPackExpr);
+ VISIT(TypeTraitExpr);
VISIT(UnaryOperator);
- VISIT(UnaryTypeTraitExpr);
VISIT(VAArgExpr);
#undef VISIT
@@ -604,7 +599,6 @@ class FunctionAnalyzer {
}
IGNORE_EXPR(AddrLabelExpr);
- IGNORE_EXPR(BinaryTypeTraitExpr);
IGNORE_EXPR(BlockExpr);
IGNORE_EXPR(CharacterLiteral);
IGNORE_EXPR(ChooseExpr);
@@ -633,7 +627,7 @@ class FunctionAnalyzer {
IGNORE_EXPR(StmtExpr);
IGNORE_EXPR(StringLiteral);
IGNORE_EXPR(SubstNonTypeTemplateParmPackExpr);
- IGNORE_EXPR(UnaryTypeTraitExpr);
+ IGNORE_EXPR(TypeTraitExpr);
IGNORE_EXPR(VAArgExpr);
IGNORE_EXPR(GNUNullExpr);
IGNORE_EXPR(OverloadExpr);
@@ -654,12 +648,9 @@ class FunctionAnalyzer {
}
bool IsRawPointerVar(clang::Expr* expr, std::string* var_name) {
- if (isa<clang::BlockDeclRefExpr>(expr)) {
- *var_name = cast<clang::BlockDeclRefExpr>(expr)->getDecl()->
- getNameAsString();
- return true;
- } else if (isa<clang::DeclRefExpr>(expr)) {
- *var_name = cast<clang::DeclRefExpr>(expr)->getDecl()->getNameAsString();
+ if (llvm::isa<clang::DeclRefExpr>(expr)) {
+ *var_name =
+ llvm::cast<clang::DeclRefExpr>(expr)->getDecl()->getNameAsString();
return true;
}
return false;
@@ -707,12 +698,7 @@ class FunctionAnalyzer {
return VisitExpr(expr->getArgument(), env);
}
- DECL_VISIT_EXPR(CXXNewExpr) {
- return Par(expr,
- expr->getNumConstructorArgs(),
- expr->getConstructorArgs(),
- env);
- }
+ DECL_VISIT_EXPR(CXXNewExpr) { return VisitExpr(expr->getInitializer(), env); }
DECL_VISIT_EXPR(ExprWithCleanups) {
return VisitExpr(expr->getSubExpr(), env);
@@ -766,10 +752,6 @@ class FunctionAnalyzer {
return Use(expr, expr->getDecl(), env);
}
- DECL_VISIT_EXPR(BlockDeclRefExpr) {
- return Use(expr, expr->getDecl(), env);
- }
-
ExprEffect Par(clang::Expr* parent,
int n,
clang::Expr** exprs,
@@ -844,7 +826,7 @@ class FunctionAnalyzer {
CallProps props;
clang::CXXMemberCallExpr* memcall =
- dyn_cast_or_null<clang::CXXMemberCallExpr>(call);
+ llvm::dyn_cast_or_null<clang::CXXMemberCallExpr>(call);
if (memcall != NULL) {
clang::Expr* receiver = memcall->getImplicitObjectArgument();
props.SetEffect(0, VisitExpr(receiver, env));
@@ -870,14 +852,15 @@ class FunctionAnalyzer {
// --------------------------------------------------------------------------
Environment VisitStmt(clang::Stmt* stmt, const Environment& env) {
-#define VISIT(type) do { \
- clang::type* concrete_stmt = dyn_cast_or_null<clang::type>(stmt); \
- if (concrete_stmt != NULL) { \
- return Visit##type (concrete_stmt, env); \
- } \
- } while(0);
-
- if (clang::Expr* expr = dyn_cast_or_null<clang::Expr>(stmt)) {
+#define VISIT(type) \
+ do { \
+ clang::type* concrete_stmt = llvm::dyn_cast_or_null<clang::type>(stmt); \
+ if (concrete_stmt != NULL) { \
+ return Visit##type(concrete_stmt, env); \
+ } \
+ } while (0);
+
+ if (clang::Expr* expr = llvm::dyn_cast_or_null<clang::Expr>(stmt)) {
return env.ApplyEffect(VisitExpr(expr, env));
}
@@ -1078,11 +1061,12 @@ class FunctionAnalyzer {
const clang::TagType* ToTagType(const clang::Type* t) {
if (t == NULL) {
return NULL;
- } else if (isa<clang::TagType>(t)) {
- return cast<clang::TagType>(t);
- } else if (isa<clang::SubstTemplateTypeParmType>(t)) {
- return ToTagType(cast<clang::SubstTemplateTypeParmType>(t)->
- getReplacementType().getTypePtr());
+ } else if (llvm::isa<clang::TagType>(t)) {
+ return llvm::cast<clang::TagType>(t);
+ } else if (llvm::isa<clang::SubstTemplateTypeParmType>(t)) {
+ return ToTagType(llvm::cast<clang::SubstTemplateTypeParmType>(t)
+ ->getReplacementType()
+ .getTypePtr());
} else {
return NULL;
}
@@ -1095,7 +1079,7 @@ class FunctionAnalyzer {
bool IsRawPointerType(clang::QualType qtype) {
const clang::PointerType* type =
- dyn_cast_or_null<clang::PointerType>(qtype.getTypePtrOrNull());
+ llvm::dyn_cast_or_null<clang::PointerType>(qtype.getTypePtrOrNull());
if (type == NULL) return false;
const clang::TagType* pointee =
@@ -1103,7 +1087,7 @@ class FunctionAnalyzer {
if (pointee == NULL) return false;
clang::CXXRecordDecl* record =
- dyn_cast_or_null<clang::CXXRecordDecl>(pointee->getDecl());
+ llvm::dyn_cast_or_null<clang::CXXRecordDecl>(pointee->getDecl());
if (record == NULL) return false;
if (!InV8Namespace(record)) return false;
@@ -1117,7 +1101,7 @@ class FunctionAnalyzer {
}
Environment VisitDecl(clang::Decl* decl, const Environment& env) {
- if (clang::VarDecl* var = dyn_cast<clang::VarDecl>(decl)) {
+ if (clang::VarDecl* var = llvm::dyn_cast<clang::VarDecl>(decl)) {
Environment out = var->hasInit() ? VisitStmt(var->getInit(), env) : env;
if (IsRawPointerType(var->getType())) {
@@ -1177,7 +1161,8 @@ class FunctionAnalyzer {
private:
void ReportUnsafe(const clang::Expr* expr, const std::string& msg) {
d_.Report(clang::FullSourceLoc(expr->getExprLoc(), sm_),
- d_.getCustomDiagID(clang::Diagnostic::Warning, msg));
+ d_.getCustomDiagID(clang::DiagnosticsEngine::Warning, "%0"))
+ << msg;
}
@@ -1186,7 +1171,7 @@ class FunctionAnalyzer {
clang::CXXRecordDecl* object_decl_;
clang::CXXRecordDecl* smi_decl_;
- clang::Diagnostic& d_;
+ clang::DiagnosticsEngine& d_;
clang::SourceManager& sm_;
Block* block_;
@@ -1197,8 +1182,7 @@ class FunctionAnalyzer {
class ProblemsFinder : public clang::ASTConsumer,
public clang::RecursiveASTVisitor<ProblemsFinder> {
public:
- ProblemsFinder(clang::Diagnostic& d,
- clang::SourceManager& sm,
+ ProblemsFinder(clang::DiagnosticsEngine& d, clang::SourceManager& sm,
const std::vector<std::string>& args)
: d_(d), sm_(sm), dead_vars_analysis_(false) {
for (unsigned i = 0; i < args.size(); ++i) {
@@ -1224,14 +1208,9 @@ class ProblemsFinder : public clang::ASTConsumer,
if (smi_decl != NULL) smi_decl = smi_decl->getDefinition();
if (object_decl != NULL && smi_decl != NULL) {
- function_analyzer_ =
- new FunctionAnalyzer(clang::createItaniumMangleContext(ctx, d_),
- r.ResolveName("Handle"),
- object_decl,
- smi_decl,
- d_,
- sm_,
- dead_vars_analysis_);
+ function_analyzer_ = new FunctionAnalyzer(
+ clang::ItaniumMangleContext::create(ctx, d_), r.ResolveName("Handle"),
+ object_decl, smi_decl, d_, sm_, dead_vars_analysis_);
TraverseDecl(ctx.getTranslationUnitDecl());
} else {
if (object_decl == NULL) {
@@ -1249,7 +1228,7 @@ class ProblemsFinder : public clang::ASTConsumer,
}
private:
- clang::Diagnostic& d_;
+ clang::DiagnosticsEngine& d_;
clang::SourceManager& sm_;
bool dead_vars_analysis_;
« no previous file with comments | « tools/gcmole/bootstrap.sh ('k') | tools/gcmole/gcmole.lua » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698