Sonar fixes

This commit is contained in:
Jeremy 2023-10-07 13:59:57 -04:00
parent a422e132d4
commit 4d2580185f
No known key found for this signature in database
GPG Key ID: 19AA8270105E8EB4
2 changed files with 22 additions and 18 deletions

View File

@ -74,7 +74,7 @@ namespace detail {
inline bool is_little_endian() { inline bool is_little_endian() {
uint16_t num = 0x1; uint16_t num = 0x1;
auto* ptr = (uint8_t*)# const auto* ptr = (uint8_t*)#
return ptr[0] == 1; return ptr[0] == 1;
} }
@ -93,31 +93,31 @@ namespace detail {
template<typename T> template<typename T>
struct byte_swapper<T, 2> { struct byte_swapper<T, 2> {
T operator()(T val) { T operator()(T val) {
return ((((val) >> 8) & 0xff) | (((val) & 0xff) << 8)); return (((val >> 8) & 0xff) | ((val & 0xff) << 8));
} }
}; };
template<typename T> template<typename T>
struct byte_swapper<T, 4> { struct byte_swapper<T, 4> {
T operator()(T val) { T operator()(T val) {
return ((((val) & 0xff000000) >> 24) | return (((val & 0xff000000) >> 24) |
(((val) & 0x00ff0000) >> 8) | ((val & 0x00ff0000) >> 8) |
(((val) & 0x0000ff00) << 8) | ((val & 0x0000ff00) << 8) |
(((val) & 0x000000ff) << 24)); ((val & 0x000000ff) << 24));
} }
}; };
template<typename T> template<typename T>
struct byte_swapper<T, 8> { struct byte_swapper<T, 8> {
T operator()(T val) { T operator()(T val) {
return ((((val) & 0xff00000000000000ull) >> 56) | return (((val & 0xff00000000000000ULL) >> 56) |
(((val) & 0x00ff000000000000ull) >> 40) | ((val & 0x00ff000000000000ULL) >> 40) |
(((val) & 0x0000ff0000000000ull) >> 24) | ((val & 0x0000ff0000000000ULL) >> 24) |
(((val) & 0x000000ff00000000ull) >> 8 ) | ((val & 0x000000ff00000000ULL) >> 8 ) |
(((val) & 0x00000000ff000000ull) << 8 ) | ((val & 0x00000000ff000000ULL) << 8 ) |
(((val) & 0x0000000000ff0000ull) << 24) | ((val & 0x0000000000ff0000ULL) << 24) |
(((val) & 0x000000000000ff00ull) << 40) | ((val & 0x000000000000ff00ULL) << 40) |
(((val) & 0x00000000000000ffull) << 56)); ((val & 0x00000000000000ffULL) << 56));
} }
}; };
@ -142,7 +142,7 @@ namespace detail {
#endif #endif
} }
inline constexpr unsigned n_digits(unsigned value) noexcept { constexpr unsigned n_digits(unsigned value) noexcept {
return value < 10 ? 1 : 1 + n_digits(value / 10); return value < 10 ? 1 : 1 + n_digits(value / 10);
} }
static_assert(n_digits(1) == 1, "n_digits utility producing the wrong result"); static_assert(n_digits(1) == 1, "n_digits utility producing the wrong result");
@ -354,6 +354,10 @@ namespace detail {
typename std::enable_if< typename std::enable_if<
std::is_standard_layout<T>::value && std::is_trivial<T>::value, std::is_standard_layout<T>::value && std::is_trivial<T>::value,
int int
>::type = 0,
typename std::enable_if<
std::is_nothrow_move_constructible<T>::value,
int
>::type = 0 >::type = 0
> >
class raii_wrapper { class raii_wrapper {
@ -361,7 +365,7 @@ namespace detail {
optional<D> deleter; optional<D> deleter;
public: public:
raii_wrapper(T obj, D deleter) : obj(obj), deleter(deleter) {} raii_wrapper(T obj, D deleter) : obj(obj), deleter(deleter) {}
raii_wrapper(raii_wrapper&& other) : obj(std::move(other.obj)), deleter(other.deleter) { raii_wrapper(raii_wrapper&& other) noexcept : obj(std::move(other.obj)), deleter(other.deleter) {
other.deleter = nullopt; other.deleter = nullopt;
} }
raii_wrapper(const raii_wrapper&) = delete; raii_wrapper(const raii_wrapper&) = delete;

View File

@ -181,7 +181,7 @@ namespace libdwarf {
dwarf_resolver(const dwarf_resolver&) = delete; dwarf_resolver(const dwarf_resolver&) = delete;
dwarf_resolver& operator=(const dwarf_resolver&) = delete; dwarf_resolver& operator=(const dwarf_resolver&) = delete;
dwarf_resolver(dwarf_resolver&& other) : dwarf_resolver(dwarf_resolver&& other) noexcept :
obj_path(std::move(other.obj_path)), obj_path(std::move(other.obj_path)),
dbg(other.dbg), dbg(other.dbg),
ok(other.ok), ok(other.ok),
@ -195,7 +195,7 @@ namespace libdwarf {
other.aranges = nullptr; other.aranges = nullptr;
} }
dwarf_resolver& operator=(dwarf_resolver&& other) { dwarf_resolver& operator=(dwarf_resolver&& other) noexcept {
obj_path = std::move(other.obj_path); obj_path = std::move(other.obj_path);
dbg = other.dbg; dbg = other.dbg;
ok = other.ok; ok = other.ok;