From 534b58eee6c6005bc0d1c43c6dff682d6c9482b7 Mon Sep 17 00:00:00 2001 From: couriersud Date: Sun, 3 May 2020 08:58:12 +0200 Subject: netlist: Fix some tidy warnings. (nw) moving over to clang-tidy-11 and enabling more warnings. --- src/lib/netlist/build/makefile | 8 +++++--- src/lib/netlist/devices/nld_4316.cpp | 37 ++++++++++++++++------------------- src/lib/netlist/devices/nld_74393.cpp | 1 - src/lib/netlist/nl_base.cpp | 6 +++--- src/lib/netlist/nl_setup.cpp | 16 ++++++++++++++- src/lib/netlist/nltypes.h | 11 +++++++---- src/lib/netlist/plib/palloc.h | 3 +++ src/lib/netlist/plib/pfmtlog.h | 2 +- src/lib/netlist/plib/pmath.h | 2 +- src/lib/netlist/plib/pmempool.h | 4 +++- src/lib/netlist/solver/nld_solver.cpp | 1 + 11 files changed, 56 insertions(+), 35 deletions(-) diff --git a/src/lib/netlist/build/makefile b/src/lib/netlist/build/makefile index 37e4133ee27..fbc24d490ff 100644 --- a/src/lib/netlist/build/makefile +++ b/src/lib/netlist/build/makefile @@ -26,12 +26,13 @@ DOC = $(SRC)/documentation TIDY_FLAGSX = -checks=*,-google*,-hicpp*,readability*,-fuchsia*,cert-*,-android-*, TIDY_FLAGSX += -llvm-header-guard,-cppcoreguidelines-pro-type-reinterpret-cast, -TIDY_FLAGSX += -cppcoreguidelines-pro-bounds-pointer-arithmetic,-cppcoreguidelines-owning-memory, +TIDY_FLAGSX += -cppcoreguidelines-pro-bounds-pointer-arithmetic, +#TIDY_FLAGSX += -cppcoreguidelines-owning-memory, TIDY_FLAGSX += -modernize-use-default-member-init,-cppcoreguidelines-pro-bounds-constant-array-index, TIDY_FLAGSX += -modernize-pass-by-value,-cppcoreguidelines-pro-type-static-cast-downcast, #TIDY_FLAGSX += -cppcoreguidelines-avoid-magic-numbers, TIDY_FLAGSX += -cppcoreguidelines-macro-usage, -#TIDY_FLAGSX += -cppcoreguidelines-non-private-member-variables-in-classes,-misc-non-private-member-variables-in-classes, +TIDY_FLAGSX += -cppcoreguidelines-non-private-member-variables-in-classes,-misc-non-private-member-variables-in-classes, TIDY_FLAGSX += -bugprone-macro-parentheses, #TIDY_FLAGSX += -misc-macro-parentheses, TIDY_FLAGSX += -bugprone-too-small-loop-variable, @@ -39,7 +40,8 @@ TIDY_FLAGSX += -modernize-use-trailing-return-type, TIDY_FLAGSX += -cppcoreguidelines-pro-bounds-array-to-pointer-decay, TIDY_FLAGSX += -readability-magic-numbers,-readability-implicit-bool-conversion,-readability-braces-around-statements, TIDY_FLAGSX += -readability-named-parameter,-readability-function-size, -TIDY_FLAGSX += -llvmlibc-restrict-system-libc-headers,-llvmlibc-implementation-in-namespace +TIDY_FLAGSX += -llvmlibc-restrict-system-libc-headers,-llvmlibc-implementation-in-namespace, +TIDY_FLAGSX += -cppcoreguidelines-avoid-non-const-global-variables space := space += diff --git a/src/lib/netlist/devices/nld_4316.cpp b/src/lib/netlist/devices/nld_4316.cpp index f8085092178..84668be5221 100644 --- a/src/lib/netlist/devices/nld_4316.cpp +++ b/src/lib/netlist/devices/nld_4316.cpp @@ -24,10 +24,24 @@ namespace netlist { namespace devices { { } - NETLIB_RESETI(); - NETLIB_UPDATEI(); + NETLIB_RESETI() + { + m_R.set_R(plib::reciprocal(exec().gmin())); + } + + NETLIB_UPDATEI() + { + m_R.change_state([this]() + { + if (m_S() && !m_E()) + m_R.set_R(m_base_r()); + else + m_R.set_R(plib::reciprocal(exec().gmin())); + } + , NLTIME_FROM_NS(1)); + } - public: + private: nld_power_pins m_supply; analog::NETLIB_SUB(R_base) m_R; @@ -36,23 +50,6 @@ namespace netlist { namespace devices { param_fp_t m_base_r; }; - NETLIB_RESET(CD4316_GATE) - { - m_R.set_R(plib::reciprocal(exec().gmin())); - } - - NETLIB_UPDATE(CD4316_GATE) - { - m_R.change_state([this]() - { - if (m_S() && !m_E()) - m_R.set_R(m_base_r()); - else - m_R.set_R(plib::reciprocal(exec().gmin())); - } - , NLTIME_FROM_NS(1)); - } - NETLIB_DEVICE_IMPL(CD4316_GATE, "CD4316_GATE", "") } // namespace devices diff --git a/src/lib/netlist/devices/nld_74393.cpp b/src/lib/netlist/devices/nld_74393.cpp index 56c554055a8..2cd84c32380 100644 --- a/src/lib/netlist/devices/nld_74393.cpp +++ b/src/lib/netlist/devices/nld_74393.cpp @@ -55,7 +55,6 @@ namespace netlist } } - protected: logic_input_t m_CP; logic_input_t m_MR; object_array_t m_Q; diff --git a/src/lib/netlist/nl_base.cpp b/src/lib/netlist/nl_base.cpp index 7db9354ba0e..25fbe484b3b 100644 --- a/src/lib/netlist/nl_base.cpp +++ b/src/lib/netlist/nl_base.cpp @@ -111,11 +111,11 @@ namespace netlist // ---------------------------------------------------------------------------------------- detail::queue_t::queue_t(netlist_t &nl) - : timed_queue, false>(512) + : timed_queue, false>(nlconst::max_queue_size()) , netlist_object_t(nl, nl.nlstate().name() + ".queue") , m_qsize(0) - , m_times(512) - , m_net_ids(512) + , m_times(nlconst::max_queue_size()) + , m_net_ids(nlconst::max_queue_size()) { } diff --git a/src/lib/netlist/nl_setup.cpp b/src/lib/netlist/nl_setup.cpp index 1b1d3aeea6c..893f9df6a09 100755 --- a/src/lib/netlist/nl_setup.cpp +++ b/src/lib/netlist/nl_setup.cpp @@ -577,6 +577,8 @@ param_t *setup_t::find_param(const pstring ¶m_in, bool required) const return (ret == m_params.end() ? nullptr : ret->second.param()); } + +//NOLINTNEXTLINE(misc-no-recursion) devices::nld_base_proxy *setup_t::get_d_a_proxy(const detail::core_terminal_t &out) { nl_assert(out.is_logic()); @@ -618,6 +620,8 @@ devices::nld_base_proxy *setup_t::get_d_a_proxy(const detail::core_terminal_t &o } + +//NOLINTNEXTLINE(misc-no-recursion) devices::nld_base_proxy *setup_t::get_a_d_proxy(detail::core_terminal_t &inp) { nl_assert(inp.is_logic()); @@ -676,6 +680,8 @@ detail::core_terminal_t &setup_t::resolve_proxy(detail::core_terminal_t &term) return term; } + +//NOLINTNEXTLINE(misc-no-recursion) void setup_t::merge_nets(detail::net_t &thisnet, detail::net_t &othernet) { log().debug("merging nets ...\n"); @@ -703,7 +709,7 @@ void setup_t::merge_nets(detail::net_t &thisnet, detail::net_t &othernet) } - +//NOLINTNEXTLINE(misc-no-recursion) void setup_t::connect_input_output(detail::core_terminal_t &in, detail::core_terminal_t &out) { if (out.is_analog() && in.is_logic()) @@ -729,6 +735,7 @@ void setup_t::connect_input_output(detail::core_terminal_t &in, detail::core_ter } +//NOLINTNEXTLINE(misc-no-recursion) void setup_t::connect_terminal_input(terminal_t &term, detail::core_terminal_t &inp) { if (inp.is_analog()) @@ -752,6 +759,8 @@ void setup_t::connect_terminal_input(terminal_t &term, detail::core_terminal_t & } } + +//NOLINTNEXTLINE(misc-no-recursion) void setup_t::connect_terminal_output(terminal_t &in, detail::core_terminal_t &out) { if (out.is_analog()) @@ -807,6 +816,7 @@ void setup_t::connect_terminals(detail::core_terminal_t &t1,detail::core_termina } } +//NOLINTNEXTLINE(misc-no-recursion) bool setup_t::connect_input_input(detail::core_terminal_t &t1, detail::core_terminal_t &t2) { bool ret = false; @@ -843,6 +853,8 @@ bool setup_t::connect_input_input(detail::core_terminal_t &t1, detail::core_term return ret; } + +//NOLINTNEXTLINE(misc-no-recursion) bool setup_t::connect(detail::core_terminal_t &t1_in, detail::core_terminal_t &t2_in) { log().debug("Connecting {1} to {2}\n", t1_in.name(), t2_in.name()); @@ -1051,6 +1063,8 @@ void models_t::register_model(const pstring &model_in) throw nl_exception(MF_MODEL_ALREADY_EXISTS_1(model_in)); } + +//NOLINTNEXTLINE(misc-no-recursion) void models_t::model_parse(const pstring &model_in, model_map_t &map) { pstring model = model_in; diff --git a/src/lib/netlist/nltypes.h b/src/lib/netlist/nltypes.h index 915abcafb11..542a3d8c816 100644 --- a/src/lib/netlist/nltypes.h +++ b/src/lib/netlist/nltypes.h @@ -33,6 +33,13 @@ namespace netlist { using BC = plib::constants; + static inline constexpr T np_VT(T n=BC::one(), T temp=BC::T0()) noexcept + { return n * temp * BC::k_b() / BC::Q_e(); } + + static inline constexpr T np_Is() noexcept { return static_cast(1e-15); } // NOLINT + + static inline constexpr std::size_t max_queue_size() { return 512; } // NOLINT + /// \brief constant startup gmin /// /// This should be used during object creation to initialize @@ -53,10 +60,6 @@ namespace netlist /// static inline constexpr T diode_start_voltage() noexcept { return BC::magic(0.7); } // NOLINT - static inline constexpr T np_VT(T n=BC::one(), T temp=BC::T0()) noexcept - { return n * temp * BC::k_b() / BC::Q_e(); } - - static inline constexpr T np_Is() noexcept { return static_cast(1e-15); } // NOLINT }; /// \brief nlconst_base struct specialized for nl_fptype. diff --git a/src/lib/netlist/plib/palloc.h b/src/lib/netlist/plib/palloc.h index 3c33795103f..9136a82a42a 100644 --- a/src/lib/netlist/plib/palloc.h +++ b/src/lib/netlist/plib/palloc.h @@ -323,6 +323,7 @@ namespace plib { auto *mem = allocate(alignof(T), sizeof(T)); try { + // NOLINTNEXTLINE(cppcoreguidelines-owning-memory) auto *mema = new (mem) T(std::forward(args)...); return unique_pool_ptr(mema, arena_deleter(*this)); } @@ -339,6 +340,7 @@ namespace plib { auto *mem = allocate(alignof(T), sizeof(T)); try { + // NOLINTNEXTLINE(cppcoreguidelines-owning-memory) auto *mema = new (mem) T(std::forward(args)...); return owned_pool_ptr(mema, true, arena_deleter(*this)); } @@ -353,6 +355,7 @@ namespace plib { static T *alloc(Args&&... args) { auto *p = allocate(alignof(T), sizeof(T)); + // NOLINTNEXTLINE(cppcoreguidelines-owning-memory) return new(p) T(std::forward(args)...); } diff --git a/src/lib/netlist/plib/pfmtlog.h b/src/lib/netlist/plib/pfmtlog.h index 27e6211d8f1..e35e7db70bb 100644 --- a/src/lib/netlist/plib/pfmtlog.h +++ b/src/lib/netlist/plib/pfmtlog.h @@ -21,7 +21,7 @@ { \ template explicit name(Args&&... args) \ : plib::perrmsg(str, std::forward(args)...) \ - { static_assert(narg == sizeof...(args), "Argument count mismatch"); } \ + { static_assert((narg) == sizeof...(args), "Argument count mismatch"); } \ }; namespace plib { diff --git a/src/lib/netlist/plib/pmath.h b/src/lib/netlist/plib/pmath.h index 4b3f7d41431..cb6ae6fc8cd 100644 --- a/src/lib/netlist/plib/pmath.h +++ b/src/lib/netlist/plib/pmath.h @@ -405,7 +405,7 @@ namespace plib /// template constexpr typename std::common_type::type - gcd(M m, N n) noexcept + gcd(M m, N n) noexcept //NOLINT(misc-no-recursion) { static_assert(plib::is_integral::value, "gcd: M must be an integer"); static_assert(plib::is_integral::value, "gcd: N must be an integer"); diff --git a/src/lib/netlist/plib/pmempool.h b/src/lib/netlist/plib/pmempool.h index 60eba09ccce..72a07613315 100644 --- a/src/lib/netlist/plib/pmempool.h +++ b/src/lib/netlist/plib/pmempool.h @@ -138,6 +138,7 @@ namespace plib { auto *mem = this->allocate(alignof(T), sizeof(T)); try { + // NOLINTNEXTLINE(cppcoreguidelines-owning-memory) auto *mema = new (mem) T(std::forward(args)...); return owned_pool_ptr(mema, true, arena_deleter(this)); } @@ -154,6 +155,7 @@ namespace plib { auto *mem = this->allocate(alignof(T), sizeof(T)); try { + // NOLINTNEXTLINE(cppcoreguidelines-owning-memory) auto *mema = new (mem) T(std::forward(args)...); return unique_pool_ptr(mema, arena_deleter(this)); } @@ -181,7 +183,7 @@ namespace plib { min_bytes = std::max(mp.m_min_alloc, min_bytes); m_free = min_bytes; size_type alloc_bytes = (min_bytes + mp.m_min_align); // - 1); // & ~(mp.m_min_align - 1); - //m_data_allocated = ::operator new(alloc_bytes); + // NOLINTNEXTLINE(cppcoreguidelines-owning-memory) m_data_allocated = new char[alloc_bytes]; void *r = m_data_allocated; std::align(mp.m_min_align, min_bytes, r, alloc_bytes); diff --git a/src/lib/netlist/solver/nld_solver.cpp b/src/lib/netlist/solver/nld_solver.cpp index 10c2909145f..2cd092cdbdd 100644 --- a/src/lib/netlist/solver/nld_solver.cpp +++ b/src/lib/netlist/solver/nld_solver.cpp @@ -279,6 +279,7 @@ namespace devices return false; } + // NOLINTNEXTLINE(misc-no-recursion) void process_net(netlist_state_t &netlist, analog_net_t &n) { // ignore empty nets. FIXME: print a warning message -- cgit v1.2.3