Fix clang-8 warnings. (nw)

This commit is contained in:
couriersud 2019-01-11 21:50:43 +01:00
parent a14dc4158f
commit f12f735f54
27 changed files with 60 additions and 57 deletions

View File

@ -204,7 +204,7 @@ maketree: $(sort $(OBJDIRS))
.PHONY: clang clang-5 mingw doc
clang:
$(MAKE) CC=clang++ LD=clang++ CEXTRAFLAGS="-march=native -Weverything -Werror -override -Wno-unreachable-code -Wno-padded -Wno-weak-vtables -Wno-missing-variable-declarations -Wconversion -Wno-c++98-compat -Wno-float-equal -Wno-global-constructors -Wno-c++98-compat-pedantic -Wno-format-nonliteral -Wno-weak-template-vtables -Wno-exit-time-destructors"
$(MAKE) CC=clang++ LD=clang++ CEXTRAFLAGS="-march=native -Weverything -Werror -override -Wno-unreachable-code -Wno-padded -Wno-weak-vtables -Wno-missing-variable-declarations -Wconversion -Wno-c++98-compat -Wno-float-equal -Wno-global-constructors -Wno-c++98-compat-pedantic -Wno-format-nonliteral -Wweak-template-vtables -Wno-exit-time-destructors"
clang-5:
$(MAKE) CC=clang++-5.0 LD=clang++-5.0 CEXTRAFLAGS="-march=native -Weverything -Werror -Wno-inconsistent-missing-destructor-override -Wno-unreachable-code -Wno-padded -Wno-weak-vtables -Wno-missing-variable-declarations -Wconversion -Wno-c++98-compat -Wno-float-equal -Wno-global-constructors -Wno-c++98-compat-pedantic -Wno-format-nonliteral -Wno-weak-template-vtables -Wno-exit-time-destructors"

View File

@ -95,19 +95,19 @@ namespace netlist
NETLIB_HANDLER(7483, upd_a)
{
m_a = (m_A1() << 0) | (m_A2() << 1) | (m_A3() << 2) | (m_A4() << 3);
m_a = static_cast<uint8_t>((m_A1() << 0) | (m_A2() << 1) | (m_A3() << 2) | (m_A4() << 3));
NETLIB_NAME(7483)::update();
}
NETLIB_HANDLER(7483, upd_b)
{
m_b = (m_B1() << 0) | (m_B2() << 1) | (m_B3() << 2) | (m_B4() << 3);
m_b = static_cast<uint8_t>((m_B1() << 0) | (m_B2() << 1) | (m_B3() << 2) | (m_B4() << 3));
NETLIB_NAME(7483)::update();
}
inline NETLIB_UPDATE(7483)
{
uint8_t r = m_a + m_b + m_C0();
uint8_t r = static_cast<uint8_t>(m_a + m_b + m_C0());
if (r != m_lastr)
{

View File

@ -83,7 +83,8 @@ namespace netlist
NLTIME_FROM_NS(18),
NLTIME_FROM_NS(36) - NLTIME_FROM_NS(18),
NLTIME_FROM_NS(54) - NLTIME_FROM_NS(18),
NLTIME_FROM_NS(72) - NLTIME_FROM_NS(18)};
NLTIME_FROM_NS(72) - NLTIME_FROM_NS(18)
};
NETLIB_UPDATE(7490)
{

View File

@ -74,9 +74,9 @@ namespace netlist
m_Y.push(y, out_delay_CLK_Y[y]);
}
int rate()
uint8_t rate()
{
int a = 0;
uint8_t a = 0;
for (std::size_t i = 0; i < 6; i++)
a |= (m_B[i]() << i);

View File

@ -49,14 +49,14 @@ namespace netlist
{
// FIXME: Outputs are tristate. This needs to be properly implemented
m_DOUTQ.push(1, NLTIME_FROM_NS(20));
for (int i=0; i<8; i++)
for (std::size_t i=0; i<8; i++)
m_A[i].inactivate();
m_WEQ.inactivate();
m_DIN.inactivate();
}
else if (last && !m_enq)
{
for (int i=0; i<8; i++)
for (std::size_t i=0; i<8; i++)
m_A[i].activate();
m_WEQ.activate();
m_DIN.activate();

View File

@ -40,7 +40,7 @@ namespace netlist
NETLIB_HANDLERI(clk);
NETLIB_HANDLERI(abcd)
{
m_abcd = (m_D() << 3) | (m_C() << 2) | (m_B() << 1) | (m_A() << 0);
m_abcd = static_cast<uint8_t>((m_D() << 3) | (m_C() << 2) | (m_B() << 1) | (m_A() << 0));
}
logic_input_t m_CLK;

View File

@ -448,7 +448,7 @@ void truthtable_parser::parse(const std::vector<pstring> &truthtable)
{
if (m_out_state[i] == m_out_state.mask())
throw nl_exception(plib::pfmt("truthtable: found element not set {1}\n").x(i) );
m_out_state.set(i, m_out_state[i] | (ign[i] << m_NO));;
m_out_state.set(i, m_out_state[i] | (ign[i] << m_NO));
}
*m_initialized = true;

View File

@ -83,13 +83,13 @@ NETLIST_START(base)
LOCAL_SOURCE(OPAMP_lib)
LOCAL_SOURCE(otheric_lib)
INCLUDE(diode_models);
INCLUDE(bjt_models);
INCLUDE(family_models);
INCLUDE(TTL74XX_lib);
INCLUDE(CD4XXX_lib);
INCLUDE(OPAMP_lib);
INCLUDE(otheric_lib);
INCLUDE(diode_models)
INCLUDE(bjt_models)
INCLUDE(family_models)
INCLUDE(TTL74XX_lib)
INCLUDE(CD4XXX_lib)
INCLUDE(OPAMP_lib)
INCLUDE(otheric_lib)
NETLIST_END()

View File

@ -293,8 +293,6 @@ void netlist_t::remove_dev(core_device_t *dev)
);
}
void netlist_t::start()
{
setup().start_devices();
@ -344,7 +342,7 @@ void netlist_t::start()
if (p != setup().m_param_values.end())
{
//FIXME: check for errors ...
double v = plib::pstonum<double>(p->second);;
double v = plib::pstonum<double>(p->second);
if (std::abs(v - std::floor(v)) > 1e-6 )
log().fatal(MF_1_HND_VAL_NOT_SUPPORTED, p->second);
d->set_hint_deactivate(v == 0.0);

View File

@ -153,7 +153,7 @@ class NETLIB_NAME(name) : public device_t
#define NETLIB_UPDATE(chip) NETLIB_HANDLER(chip, update)
// FIXME: NETLIB_PARENT_UPDATE should disappear
#define NETLIB_PARENT_UPDATE(chip) NETLIB_NAME(chip) :: update();
#define NETLIB_PARENT_UPDATE(chip) NETLIB_NAME(chip) :: update()
#define NETLIB_RESET(chip) void NETLIB_NAME(chip) :: reset(void)

View File

@ -36,6 +36,7 @@
{ \
return std::unique_ptr<factory::element_t>(plib::palloc<factory::device_element_t<ns :: NETLIB_NAME(chip)>>(name, classname, def_param, pstring(__FILE__))); \
} \
\
factory::constructor_ptr_t decl_ ## chip = NETLIB_NAME(chip ## _c);
namespace netlist {

View File

@ -30,7 +30,7 @@ bool parser_t::parse(const pstring &nlname)
set_identifier_chars("abcdefghijklmnopqrstuvwvxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890_.-");
set_number_chars(".0123456789", "0123456789eE-."); //FIXME: processing of numbers
//set_whitespace(pstring("").cat(' ').cat(9).cat(10).cat(13));
set_whitespace(pstring("") + ' ' + (char)9 + (char)10 + (char)13);
set_whitespace(pstring("") + ' ' + static_cast<char>(9) + static_cast<char>(10) + static_cast<char>(13));
set_comment("/*", "*/", "//");
m_tok_param_left = register_token("(");
m_tok_param_right = register_token(")");

View File

@ -52,7 +52,7 @@ std::unique_ptr<T> make_unique(Args&&... args)
}
template<typename BC, typename DC, typename... Args>
static std::unique_ptr<BC> make_unique_base(Args&&... args)
std::unique_ptr<BC> make_unique_base(Args&&... args)
{
std::unique_ptr<BC> ret(new DC(std::forward<Args>(args)...));
return ret;

View File

@ -23,7 +23,7 @@ public:
explicit pexception(const pstring &text);
pexception(const pexception &e) : std::exception(e), m_text(e.m_text) { }
virtual ~pexception() noexcept;
virtual ~pexception() noexcept override;
const pstring &text() { return m_text; }
const char* what() const noexcept override { return m_text.c_str(); }

View File

@ -69,7 +69,7 @@ pfmt &pfmt::format_element(const char *l, const unsigned cfmt_spec, ...)
if (pstring("duxo").find(cfmt_spec) != pstring::npos)
{
if (pstring("duxo").find(pend) == pstring::npos)
fmt += (pstring(l) + (char) cfmt_spec);
fmt += (pstring(l) + static_cast<pstring::value_type>(cfmt_spec));
else
fmt = plib::left(fmt, fmt.size() - 1) + pstring(l) + plib::right(fmt, 1);
}

View File

@ -199,8 +199,8 @@ double pfunction::evaluate(const std::vector<double> &values)
OP(SUB, 1, ST2 - ST1)
OP(DIV, 1, ST2 / ST1)
OP(POW, 1, std::pow(ST2, ST1))
OP(SIN, 0, std::sin(ST2));
OP(COS, 0, std::cos(ST2));
OP(SIN, 0, std::sin(ST2))
OP(COS, 0, std::cos(ST2))
case RAND:
stack[ptr++] = lfsr_random();
break;

View File

@ -18,8 +18,8 @@
namespace plib {
namespace omp {
template <class T>
void for_static(const int start, const int end, const T &what)
template <typename I, class T>
void for_static(const I start, const I end, const T &what)
{
#if HAS_OPENMP && USE_OPENMP
#pragma omp parallel
@ -28,19 +28,19 @@ void for_static(const int start, const int end, const T &what)
#if HAS_OPENMP && USE_OPENMP
#pragma omp for schedule(static)
#endif
for (int i = start; i < end; i++)
for (I i = start; i < end; i++)
what(i);
}
}
inline void set_num_threads(const int threads)
inline void set_num_threads(const std::size_t threads)
{
#if HAS_OPENMP && USE_OPENMP
omp_set_num_threads(threads);
#endif
}
inline int get_max_threads()
inline std::size_t get_max_threads()
{
#if HAS_OPENMP && USE_OPENMP
return omp_get_max_threads();

View File

@ -561,7 +561,9 @@ namespace plib
decltype(arg.c_str()) cstr = arg.c_str();
std::size_t idx(0);
auto ret = pstonum_helper<T>()(cstr, &idx);
if (ret >= std::numeric_limits<T>::lowest() && ret <= std::numeric_limits<T>::max())
typedef decltype(ret) ret_type;
if (ret >= static_cast<ret_type>(std::numeric_limits<T>::lowest())
&& ret <= static_cast<ret_type>(std::numeric_limits<T>::max()))
//&& (ret == T(0) || std::abs(ret) >= std::numeric_limits<T>::min() ))
{
if (cstr[idx] != 0)

View File

@ -74,6 +74,9 @@ namespace plib
std::vector<pstring> psplit(const pstring &str, const pstring &onstr, bool ignore_empty = false);
std::vector<pstring> psplit(const pstring &str, const std::vector<pstring> &onstrl);
std::vector<std::string> psplit_r(const std::string &stri,
const std::string &token,
const std::size_t maxsplit);
}

View File

@ -232,7 +232,7 @@ void matrix_solver_t::build_LE_A()
for (std::size_t k = 0; k < iN; k++)
{
terms_for_net_t *terms = m_terms[k].get();
nl_double * Ak = &child.A(k, 0);
nl_double * Ak = &child.A(k, 0ul);
for (std::size_t i=0; i < iN; i++)
Ak[i] = 0.0;

View File

@ -9,6 +9,7 @@
#define NLD_MS_DIRECT_H_
#include <algorithm>
#include <cmath>
#include "nld_solver.h"
#include "nld_matrix_solver.h"
@ -55,15 +56,11 @@ protected:
void LE_back_subst(T * RESTRICT x);
#if (NL_USE_DYNAMIC_ALLOCATION)
template <typename T1, typename T2>
nl_ext_double &A(const T1 &r, const T2 &c) { return m_A[r * m_pitch + c]; }
template <typename T1>
nl_ext_double &RHS(const T1 &r) { return m_A[r * m_pitch + N()]; }
nl_ext_double &A(const std::size_t r, const std::size_t c) { return m_A[r * m_pitch + c]; }
nl_ext_double &RHS(const std::size_t r) { return m_A[r * m_pitch + N()]; }
#else
template <typename T1, typename T2>
nl_ext_double &A(const T1 &r, const T2 &c) { return m_A[r][c]; }
template <typename T1>
nl_ext_double &RHS(const T1 &r) { return m_A[r][N()]; }
nl_ext_double &A(const std::size_t r, const std::size_t c) { return m_A[r][c]; }
nl_ext_double &RHS(const std::size_t r) { return m_A[r][N()]; }
#endif
nl_double m_last_RHS[storage_N]; // right hand side - contains currents

View File

@ -30,7 +30,7 @@ public:
// matrix_solver - Direct1
// ----------------------------------------------------------------------------------------
inline unsigned matrix_solver_direct1_t::vsolve_non_dynamic(ATTR_UNUSED const bool newton_raphson)
inline unsigned matrix_solver_direct1_t::vsolve_non_dynamic(const bool newton_raphson)
{
build_LE_A<matrix_solver_direct1_t>();
build_LE_RHS<matrix_solver_direct1_t>();

View File

@ -30,7 +30,7 @@ public:
// matrix_solver - Direct2
// ----------------------------------------------------------------------------------------
inline unsigned matrix_solver_direct2_t::vsolve_non_dynamic(ATTR_UNUSED const bool newton_raphson)
inline unsigned matrix_solver_direct2_t::vsolve_non_dynamic(const bool newton_raphson)
{
build_LE_A<matrix_solver_direct2_t>();
build_LE_RHS<matrix_solver_direct2_t>();

View File

@ -13,6 +13,7 @@
#define NLD_MS_GMRES_H_
#include <algorithm>
#include <cmath>
#include "mat_cr.h"
#include "nld_ms_direct.h"
@ -167,21 +168,19 @@ unsigned matrix_solver_GMRES_t<m_N, storage_N>::vsolve_non_dynamic(const bool ne
new_V[k] = this->m_nets[k]->Q_Analog();
}
mat.ia[iN] = static_cast<mattype>(mat.nz_num);
mat.ia[iN] = static_cast<mattype>(mat.nz_num);
const nl_double accuracy = this->m_params.m_accuracy;
unsigned mr = iN;
if (iN > 3 )
mr = static_cast<unsigned>(std::sqrt(iN) * 2.0);
const std::size_t mr = (iN > 3 ) ? static_cast<std::size_t>(std::sqrt(iN) * 2.0) : iN;
unsigned iter = std::max(1u, this->m_params.m_gs_loops);
unsigned gsl = solve_ilu_gmres(new_V, RHS, iter, mr, accuracy);
unsigned failed = mr * iter;
const std::size_t failed = mr * iter;
this->m_iterative_total += gsl;
this->m_stat_calculations++;
if (gsl>=failed)
if (gsl >= failed)
{
this->m_iterative_fail++;
return matrix_solver_direct_t<m_N, storage_N>::vsolve_non_dynamic(newton_raphson);

View File

@ -93,17 +93,18 @@ NETLIB_UPDATE(solver)
/* FIXME: Needs a more elegant solution */
bool force_solve = (netlist().time() < netlist_time::from_double(2 * m_params.m_max_timestep));
std::size_t nthreads = std::min(m_parallel(), plib::omp::get_max_threads());
std::size_t nthreads = std::min(static_cast<std::size_t>(m_parallel()), plib::omp::get_max_threads());
std::size_t t_cnt = 0;
int solv[128];
for (int i = 0; i < m_mat_solvers.size(); i++)
std::size_t solv[128];
for (std::size_t i = 0; i < m_mat_solvers.size(); i++)
if (m_mat_solvers[i]->has_timestep_devices() || force_solve)
solv[t_cnt++] = i;
if (nthreads > 1 && t_cnt > 1)
{
plib::omp::set_num_threads(nthreads);
plib::omp::for_static(0, t_cnt, [this, &solv](int i) { ATTR_UNUSED const netlist_time ts = this->m_mat_solvers[solv[i]]->solve(); });
plib::omp::for_static(static_cast<std::size_t>(0), t_cnt, [this, &solv](std::size_t i)
{ ATTR_UNUSED const netlist_time ts = this->m_mat_solvers[solv[i]]->solve(); });
}
else
for (auto & solver : m_mat_solvers)

View File

@ -11,6 +11,7 @@
#define VECTOR_BASE_H_
#include <algorithm>
#include <cmath>
#include "../plib/pconfig.h"
#if 0

View File

@ -408,7 +408,7 @@ nl_convert_eagle_t::tokenizer::tokenizer(nl_convert_eagle_t &convert, plib::putf
set_identifier_chars("abcdefghijklmnopqrstuvwvxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890_.-");
set_number_chars(".0123456789", "0123456789eE-."); //FIXME: processing of numbers
//set_whitespace(pstring("").cat(' ').cat(9).cat(10).cat(13));
set_whitespace(pstring("") + ' ' + (char)9 + (char)10 + (char)13);
set_whitespace(pstring("") + ' ' + static_cast<char>(9) + static_cast<char>(10) + static_cast<char>(13));
/* FIXME: gnetlist doesn't print comments */
set_comment("/*", "*/", "//");
set_string_char('\'');
@ -546,7 +546,7 @@ nl_convert_rinf_t::tokenizer::tokenizer(nl_convert_rinf_t &convert, plib::putf8_
set_identifier_chars(".abcdefghijklmnopqrstuvwvxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890_-");
set_number_chars("0123456789", "0123456789eE-."); //FIXME: processing of numbers
//set_whitespace(pstring("").cat(' ').cat(9).cat(10).cat(13));
set_whitespace(pstring("") + ' ' + (char)9 + (char)10 + (char)13);
set_whitespace(pstring("") + ' ' + static_cast<char>(9) + static_cast<char>(10) + static_cast<char>(13));
/* FIXME: gnetlist doesn't print comments */
set_comment("","","//"); // FIXME:needs to be confirmed
set_string_char('"');