tree 8e023f58fa3191e5a3ef031e1466fc89effb7ded
parent deab0fccc5cfd82d11ef841c93c0fad1c3882475
author George Liu <liuxiwei@ieisystem.com> 1721632669 +0800
committer George Liu <liuxiwei@ieisystem.com> 1721632894 +0800

Fix cppcheck warnings

Warning message:
```
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/unique_ptr.h:97:16: error: invalid application of 'sizeof' to an incomplete type 'phosphor::led::fru::fault::monitor::Remove'
   97 |         static_assert(sizeof(_Tp)>0,
      |                       ^~~~~~~~~~~
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/unique_ptr.h:404:4: note: in instantiation of member function 'std::default_delete<phosphor::led::fru::fault::monitor::Remove>::operator()' requested here
  404 |           get_deleter()(std::move(__ptr));
      |           ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/stl_construct.h:88:15: note: in instantiation of member function 'std::unique_ptr<phosphor::led::fru::fault::monitor::Remove>::~unique_ptr' requested here
   88 |         __location->~_Tp();
      |                      ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/stl_construct.h:149:12: note: in instantiation of function template specialization 'std::destroy_at<std::unique_ptr<phosphor::led::fru::fault::monitor::Remove>>' requested here
  149 |       std::destroy_at(__pointer);
      |            ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/stl_construct.h:163:11: note: in instantiation of function template specialization 'std::_Destroy<std::unique_ptr<phosphor::led::fru::fault::monitor::Remove>>' requested here
  163 |             std::_Destroy(std::__addressof(*__first));
      |                  ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/stl_construct.h:193:35: note: in instantiation of function template specialization 'std::_Destroy_aux<false>::__destroy<std::unique_ptr<phosphor::led::fru::fault::monitor::Remove> *>' requested here
  193 |         return std::_Destroy_aux<false>::__destroy(__first, __last);
      |                                          ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/alloc_traits.h:948:12: note: in instantiation of function template specialization 'std::_Destroy<std::unique_ptr<phosphor::led::fru::fault::monitor::Remove> *>' requested here
  948 |       std::_Destroy(__first, __last);
      |            ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/stl_vector.h:735:7: note: in instantiation of function template specialization 'std::_Destroy<std::unique_ptr<phosphor::led::fru::fault::monitor::Remove> *, std::unique_ptr<phosphor::led::fru::fault::monitor::Remove>>' requested here
  735 |         std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish,
      |              ^
../../../fault-monitor/fru-fault-monitor.hpp:48:14: note: in instantiation of member function 'std::vector<std::unique_ptr<phosphor::led::fru::fault::monitor::Remove>>::~vector' requested here
   48 |     explicit Add(sdbusplus::bus_t& bus) :
      |              ^
../../../fault-monitor/fru-fault-monitor.hpp:28:7: note: forward declaration of 'phosphor::led::fru::fault::monitor::Remove'
   28 | class Remove;
      |       ^
```

Signed-off-by: George Liu <liuxiwei@ieisystem.com>
Change-Id: I5c20a0031deff51e6bacccdd81310e95f14e52a0
