From 25b0674d0f2a00f402d7d8ddcc4ce827b41254c7 Mon Sep 17 00:00:00 2001 From: Ben Cumming <louncharf@gmail.com> Date: Mon, 18 Dec 2017 15:40:58 +0100 Subject: [PATCH] Fix Clang warnings with modcc (#412) * Fix various compiler warnings in `modcc` when using Apple Clang. --- modcc/cexpr_emit.hpp | 12 ++++++------ modcc/cprinter.hpp | 32 ++++++++++++++++---------------- modcc/cudaprinter.hpp | 1 - modcc/module.cpp | 5 +---- modcc/simd_printer.hpp | 4 +++- 5 files changed, 26 insertions(+), 28 deletions(-) diff --git a/modcc/cexpr_emit.hpp b/modcc/cexpr_emit.hpp index c9096a0a..e52c956b 100644 --- a/modcc/cexpr_emit.hpp +++ b/modcc/cexpr_emit.hpp @@ -12,13 +12,13 @@ public: out_(out), fallback_(fallback) {} - virtual void visit(Expression* e) { e->accept(fallback_); } + void visit(Expression* e) override { e->accept(fallback_); } - virtual void visit(UnaryExpression *e) override; - virtual void visit(BinaryExpression *e) override; - virtual void visit(AssignmentExpression *e) override; - virtual void visit(PowBinaryExpression *e) override; - virtual void visit(NumberExpression *e) override; + void visit(UnaryExpression *e) override; + void visit(BinaryExpression *e) override; + void visit(AssignmentExpression *e) override; + void visit(PowBinaryExpression *e) override; + void visit(NumberExpression *e) override; protected: std::ostream& out_; diff --git a/modcc/cprinter.hpp b/modcc/cprinter.hpp index 2da740fb..9c636322 100644 --- a/modcc/cprinter.hpp +++ b/modcc/cprinter.hpp @@ -11,22 +11,22 @@ public: CPrinter() {} explicit CPrinter(Module &m): module_(&m) {} - virtual void visit(Expression *e) override; - virtual void visit(UnaryExpression *e) override; - virtual void visit(BinaryExpression *e) override; - virtual void visit(NumberExpression *e) override; - virtual void visit(VariableExpression *e) override; - virtual void visit(Symbol *e) override; - virtual void visit(LocalVariable *e) override; - virtual void visit(IndexedVariable *e) override; - virtual void visit(CellIndexedVariable *e) override; - virtual void visit(IdentifierExpression *e) override; - virtual void visit(CallExpression *e) override; - virtual void visit(ProcedureExpression *e) override; - virtual void visit(APIMethod *e) override; - virtual void visit(LocalDeclaration *e) override; - virtual void visit(BlockExpression *e) override; - virtual void visit(IfExpression *e) override; + void visit(Expression *e) override; + void visit(UnaryExpression *e) override; + void visit(BinaryExpression *e) override; + void visit(NumberExpression *e) override; + void visit(VariableExpression *e) override; + void visit(Symbol *e) override; + void visit(LocalVariable *e) override; + void visit(IndexedVariable *e) override; + void visit(CellIndexedVariable *e) override; + void visit(IdentifierExpression *e) override; + void visit(CallExpression *e) override; + void visit(ProcedureExpression *e) override; + void visit(APIMethod *e) override; + void visit(LocalDeclaration *e) override; + void visit(BlockExpression *e) override; + void visit(IfExpression *e) override; std::string text() const { return text_.str(); diff --git a/modcc/cudaprinter.hpp b/modcc/cudaprinter.hpp index d016f236..af7d9d13 100644 --- a/modcc/cudaprinter.hpp +++ b/modcc/cudaprinter.hpp @@ -108,7 +108,6 @@ private: std::string module_name_; Module *module_ = nullptr; - tok parent_op_ = tok::eq; TextBuffer interface_; TextBuffer impl_; diff --git a/modcc/module.cpp b/modcc/module.cpp index aa8b33ae..85030677 100644 --- a/modcc/module.cpp +++ b/modcc/module.cpp @@ -34,15 +34,12 @@ class NrnCurrentRewriter: public BlockRewriterBase { return ionKind::none; } - moduleKind kind_; bool has_current_update_ = false; std::set<std::string> ion_current_vars_; public: using BlockRewriterBase::visit; - explicit NrnCurrentRewriter(moduleKind kind): kind_(kind) {} - virtual void finalize() override { if (has_current_update_) { // Initialize current_ as first statement. @@ -334,7 +331,7 @@ bool Module::semantic() { //.......................................................... // nrn_current : update contributions to currents //.......................................................... - NrnCurrentRewriter nrn_current_rewriter(kind()); + NrnCurrentRewriter nrn_current_rewriter; breakpoint->accept(&nrn_current_rewriter); auto nrn_current_block = nrn_current_rewriter.as_block(); if (!nrn_current_block) { diff --git a/modcc/simd_printer.hpp b/modcc/simd_printer.hpp index caca3853..8208632b 100644 --- a/modcc/simd_printer.hpp +++ b/modcc/simd_printer.hpp @@ -16,6 +16,8 @@ template <simdKind Arch> class SimdPrinter: public CPrinter { + using CPrinter::visit; + public: SimdPrinter(): cprinter_(make_unique<CPrinter>()) {} @@ -32,8 +34,8 @@ public: void visit(UnaryExpression *e) override; void visit(BinaryExpression *e) override; void visit(PowBinaryExpression *e) override; - void visit(ProcedureExpression *e) override; void visit(AssignmentExpression *e) override; + void visit(ProcedureExpression *e) override; void visit(VariableExpression *e) override; void visit(LocalVariable *e) override { const std::string& name = e->name(); -- GitLab