[LINT] Fix -Wextra (#4804)
authorTianqi Chen <tqchen@users.noreply.github.com>
Tue, 4 Feb 2020 04:47:51 +0000 (20:47 -0800)
committerGitHub <noreply@github.com>
Tue, 4 Feb 2020 04:47:51 +0000 (18:47 -1000)
* [LINT] Fix -Wextra

* Fix virtual-dtor

18 files changed:
include/tvm/ir/attrs.h
include/tvm/ir/op.h
include/tvm/ir/type_relation.h
include/tvm/node/container.h
include/tvm/relay/expr.h
include/tvm/runtime/object.h
include/tvm/tir/expr.h
src/ir/attr_functor.h
src/ir/op.cc
src/relay/backend/compile_engine.h
src/relay/backend/contrib/codegen_c/codegen_c.h
src/relay/pass/combine_parallel_op.h
src/relay/pass/partial_eval.cc
src/relay/pass/transform_layout.h
src/relay/qnn/util.h
src/runtime/library_module.h
src/target/source/codegen_cuda.cc
vta/src/runtime.cc

index 1d02bf7..1fc28c8 100644 (file)
@@ -222,6 +222,8 @@ class BaseAttrsNode : public Object {
  public:
   using TVMArgs = runtime::TVMArgs;
   using TVMRetValue = runtime::TVMRetValue;
+  /*! \brief virtual destructor */
+  virtual ~BaseAttrsNode() {}
   // visit function
   virtual void VisitAttrs(AttrVisitor* v) {}
   /*!
index e281c19..8a6ab77 100644 (file)
@@ -192,7 +192,7 @@ class Op : public RelayExpr {
    * \param key The attribute key
    * \return bool True if the key is present
    */
-  TVM_DLL static const bool HasGenericAttr(const std::string& key);
+  TVM_DLL static bool HasGenericAttr(const std::string& key);
 };
 
 /*!
index 962eea3..6d4e75a 100644 (file)
@@ -76,6 +76,8 @@ class TypeCall : public Type {
  */
 class TypeReporterNode : public Object {
  public:
+  /*! \brief virtual destructor */
+  virtual ~TypeReporterNode() {}
   /*!
    * \brief Create a type equality constraint.
    *
index f5c7198..a541385 100644 (file)
@@ -150,14 +150,14 @@ class Array : public ObjectRef {
    * \brief move constructor
    * \param other source
    */
-  Array(Array<T> && other) {  // NOLINT(*)
+  Array(Array<T> && other) : ObjectRef() {  // NOLINT(*)
     data_ = std::move(other.data_);
   }
   /*!
    * \brief copy constructor
    * \param other source
    */
-  Array(const Array<T> &other) { // NOLINT(*)
+  Array(const Array<T> &other) : ObjectRef() { // NOLINT(*)
     data_ = std::move(other.data_);
   }
   /*!
index 72523dd..64f2278 100644 (file)
@@ -526,6 +526,8 @@ class RefWrite : public Expr {
  */
 class TempExprNode : public ExprNode {
  public:
+  /*! \brief virtual destructor */
+  virtual ~TempExprNode() {}
   /*!
    * \brief Convert the expression to a normal(non-temp) Expr.
    * \return The corresponding normal(non-temp) expression.
index ba84b5f..fe5e30b 100644 (file)
@@ -649,13 +649,13 @@ struct ObjectEqual {
  */
 #define TVM_DECLARE_BASE_OBJECT_INFO(TypeName, ParentType)              \
   static_assert(!ParentType::_type_final, "ParentObj maked as final");  \
-  static const uint32_t RuntimeTypeIndex()  {                           \
+  static uint32_t RuntimeTypeIndex()  {                                 \
     if (TypeName::_type_index != ::tvm::runtime::TypeIndex::kDynamic) { \
       return TypeName::_type_index;                                     \
     }                                                                   \
     return _GetOrAllocRuntimeTypeIndex();                               \
   }                                                                     \
-  static const uint32_t _GetOrAllocRuntimeTypeIndex()  {                \
+  static uint32_t _GetOrAllocRuntimeTypeIndex()  {                      \
     static uint32_t tidx = Object::GetOrAllocRuntimeTypeIndex(          \
         TypeName::_type_key,                                            \
         TypeName::_type_index,                                          \
index 93b04db..756907b 100644 (file)
@@ -731,6 +731,8 @@ class LetNode : public PrimExprNode {
 /*! \brief Base node of internal functions. */
 class FunctionBaseNode : public Object {
  public:
+  /*! \brief virtual destructor */
+  virtual ~FunctionBaseNode() {}
   /*! \return the name of the function */
   virtual const std::string& func_name() const = 0;
   /*! \return the number of outputs of this function */
index 4943140..babd08a 100644 (file)
@@ -60,6 +60,8 @@ class AttrFunctor<R(const ObjectRef& n, Args...)> {
  public:
   /*! \brief the result type of this functor */
   using result_type = R;
+  /*! \brief virtual destructor */
+  virtual ~AttrFunctor() {}
   /*!
    * \brief The functor call.
    * \param n The expression node.
index 558b698..b25fe99 100644 (file)
@@ -87,7 +87,7 @@ const GenericOpMap& Op::GetGenericAttr(const std::string& key) {
 }
 
 // Check if a key is present in the registry.
-const bool Op::HasGenericAttr(const std::string& key) {
+bool Op::HasGenericAttr(const std::string& key) {
   OpManager* mgr = OpManager::Global();
   std::lock_guard<std::mutex> lock(mgr->mutex);
   auto it = mgr->attr.find(key);
index 42142f1..15ec2d6 100644 (file)
@@ -171,6 +171,8 @@ class CCacheValue : public ObjectRef {
  */
 class CompileEngineNode : public Object {
  public:
+  /*! \brief destructor */
+  virtual ~CompileEngineNode() {}
   /*!
    * \brief Get lowered result.
    * \param key The key to the cached function.
index 23e07d5..f473c93 100644 (file)
@@ -38,6 +38,7 @@ namespace contrib {
 class CSourceModuleCodegenBase {
  public:
   CSourceModuleCodegenBase() = default;
+  virtual ~CSourceModuleCodegenBase() = default;
 
   /*!
    * \brief Create a runtime module for the external library. For example, it
@@ -69,6 +70,9 @@ class CSourceModuleCodegenBase {
 
 // The base class to generate the declaration functions in C.
 class CodegenCBase {
+ public:
+  virtual ~CodegenCBase() {}
+
  protected:
   /*! \brief Print indents using spaces. */
   void PrintIndents() {
index 619a153..24f3884 100644 (file)
@@ -126,6 +126,8 @@ class BranchGroupFinder : private ExprVisitor {
  */
 class ParallelOpCombiner {
  public:
+  /*! \brief virtual destructor */
+  virtual ~ParallelOpCombiner() {}
   /*
    * \brief Constructor.
    * \param op_name name of op to combine
index 37ce348..c5857c2 100644 (file)
@@ -275,6 +275,7 @@ class Fuel : public ObjectRef {
 
 class FuelNode : public RelayNode {
  public:
+  virtual ~FuelNode() {}
   // Please implement one of the following function or there will be infinite loop.
   /*! \brief return the new Fuel, and whether progress is made.
    *
index f784524..f18f5d2 100644 (file)
@@ -70,6 +70,8 @@ class TransformMemorizer : public ObjectRef {
   TransformMemorizer() {}
   explicit TransformMemorizer(ObjectPtr<Object> n) : ObjectRef(n) {}
 
+  virtual ~TransformMemorizer() {}
+
   TransformMemorizerNode* operator->() {
     return static_cast<TransformMemorizerNode*>(get_mutable());
   }
index 6362421..0bab947 100644 (file)
@@ -45,7 +45,7 @@ static inline Array<IndexExpr> get_shape(const Type& type) {
   return input_tt->shape;
 }
 
-static inline const int32_t GetQmin(const DataType& dtype) {
+static inline int32_t GetQmin(const DataType& dtype) {
   CHECK_LE(dtype.bits(), 32)
       << "QNN ops support int32 or lower precision";
   if (dtype.is_int() || dtype.is_uint()) {
@@ -58,7 +58,7 @@ static inline const int32_t GetQmin(const DataType& dtype) {
   }
 }
 
-static inline const int32_t GetQmax(const DataType& dtype) {
+static inline int32_t GetQmax(const DataType& dtype) {
   CHECK_LE(dtype.bits(), 32)
       << "QNN ops support int32 or lower precision";
   if (dtype.is_int() || dtype.is_uint()) {
index 8e84a4b..61e6266 100644 (file)
@@ -40,6 +40,8 @@ namespace runtime {
  */
 class Library : public Object {
  public:
+  // destructor.
+  virtual ~Library() {}
   /*!
    * \brief Get the symbol address for a given name.
    * \param name The name of the symbol.
index 5a3130f..0b2c54e 100644 (file)
@@ -190,6 +190,7 @@ void CodeGenCUDA::PrintType(DataType t, std::ostream& os) {  // NOLINT(*)
           } else {
             // No longlong3, longlong4
             LOG(FATAL) << "Cannot convert type " << t << " to CUDA type on a L32 platform";
+            break;
           }
         } else {
           os << "long"; break;
index aa42a4c..6b08c6c 100644 (file)
@@ -314,7 +314,7 @@ class UopKernel {
 template <class T>
 class BaseQueue {
  public:
-  ~BaseQueue() {
+  virtual ~BaseQueue() {
     if (fpga_buff_ != nullptr) {
       VTAMemFree(fpga_buff_);
     }