From 7916ae3c494ebd83e8de783461063e42388bac8a Mon Sep 17 00:00:00 2001 From: Cary R Date: Sun, 25 Jan 2026 12:10:14 -0800 Subject: [PATCH] Make blif cppcheck clean --- tgt-blif/logic_gate.cc | 5 +++-- tgt-blif/lpm_add.cc | 20 +++++++++++++------- tgt-blif/lpm_cmp_eq.cc | 20 +++++++++++++------- tgt-blif/lpm_cmp_gt.cc | 20 +++++++++++++------- tgt-blif/lpm_mux.cc | 14 +++++++++----- tgt-blif/lpm_part_vp.cc | 11 +++++++---- tgt-blif/lpm_re_logic.cc | 32 +++++++++++++++++--------------- tgt-blif/lpm_shift.cc | 8 +++++--- tgt-blif/lpm_sign_ext.cc | 5 +++-- 9 files changed, 83 insertions(+), 52 deletions(-) diff --git a/tgt-blif/logic_gate.cc b/tgt-blif/logic_gate.cc index 7088febfa..451cf8d56 100644 --- a/tgt-blif/logic_gate.cc +++ b/tgt-blif/logic_gate.cc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013 Stephen Williams (steve@icarus.com) + * Copyright (c) 2013-2026 Stephen Williams (steve@icarus.com) * * This source code is free software; you can redistribute it * and/or modify it in source code form under the terms of the GNU @@ -42,7 +42,8 @@ static int do_print_logic_gate(FILE*fd, ivl_net_logic_t net, unsigned bit) ivl_nexus_t nex_out = ivl_logic_pin(net,0); blif_nex_data_t*ned_out = blif_nex_data_t::get_nex_data(nex_out); - assert(ned_out->get_width() > bit); + size_t o_wid = ned_out->get_width(); + assert(o_wid > bit); fprintf(fd, ".names"); for (unsigned idx = 1 ; idx < ivl_logic_pins(net) ; idx += 1) { diff --git a/tgt-blif/lpm_add.cc b/tgt-blif/lpm_add.cc index 522a6780d..2c0a9ddf4 100644 --- a/tgt-blif/lpm_add.cc +++ b/tgt-blif/lpm_add.cc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013 Stephen Williams (steve@icarus.com) + * Copyright (c) 2013-2026 Stephen Williams (steve@icarus.com) * * This source code is free software; you can redistribute it * and/or modify it in source code form under the terms of the GNU @@ -38,9 +38,12 @@ int print_lpm_add(FILE*fd, ivl_lpm_t net) blif_nex_data_t*a_ned = blif_nex_data_t::get_nex_data(a_nex); blif_nex_data_t*b_ned = blif_nex_data_t::get_nex_data(b_nex); - assert(ivl_lpm_width(net) == q_ned->get_width()); - assert(ivl_lpm_width(net) == a_ned->get_width()); - assert(ivl_lpm_width(net) == b_ned->get_width()); + size_t q_wid = q_ned->get_width(); + size_t a_wid = a_ned->get_width(); + size_t b_wid = b_ned->get_width(); + assert(ivl_lpm_width(net) == q_wid); + assert(ivl_lpm_width(net) == a_wid); + assert(ivl_lpm_width(net) == b_wid); // Q[0] = A[0] ^ B[0] fprintf(fd, ".names %s%s %s%s %s%s\n" @@ -114,9 +117,12 @@ int print_lpm_sub(FILE*fd, ivl_lpm_t net) blif_nex_data_t*a_ned = blif_nex_data_t::get_nex_data(a_nex); blif_nex_data_t*b_ned = blif_nex_data_t::get_nex_data(b_nex); - assert(ivl_lpm_width(net) == q_ned->get_width()); - assert(ivl_lpm_width(net) == a_ned->get_width()); - assert(ivl_lpm_width(net) == b_ned->get_width()); + size_t q_wid = q_ned->get_width(); + size_t a_wid = a_ned->get_width(); + size_t b_wid = b_ned->get_width(); + assert(ivl_lpm_width(net) == q_wid); + assert(ivl_lpm_width(net) == a_wid); + assert(ivl_lpm_width(net) == b_wid); // Q[0] = A[0] ^ ~B[0] ^ 1 fprintf(fd, ".names %s%s %s%s %s%s\n" diff --git a/tgt-blif/lpm_cmp_eq.cc b/tgt-blif/lpm_cmp_eq.cc index 358c5e5f8..25307bd32 100644 --- a/tgt-blif/lpm_cmp_eq.cc +++ b/tgt-blif/lpm_cmp_eq.cc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013 Stephen Williams (steve@icarus.com) + * Copyright (c) 2013-2026 Stephen Williams (steve@icarus.com) * * This source code is free software; you can redistribute it * and/or modify it in source code form under the terms of the GNU @@ -38,9 +38,12 @@ int print_lpm_cmp_eq(FILE*fd, ivl_lpm_t net) blif_nex_data_t*a_ned = blif_nex_data_t::get_nex_data(a_nex); blif_nex_data_t*b_ned = blif_nex_data_t::get_nex_data(b_nex); - assert(1 == q_ned->get_width()); - assert(ivl_lpm_width(net) == a_ned->get_width()); - assert(ivl_lpm_width(net) == b_ned->get_width()); + size_t q_wid = q_ned->get_width(); + size_t a_wid = a_ned->get_width(); + size_t b_wid = b_ned->get_width(); + assert(1 == q_wid); + assert(ivl_lpm_width(net) == a_wid); + assert(ivl_lpm_width(net) == b_wid); if (ivl_lpm_width(net) == 1) { fprintf(fd, ".names %s%s %s%s %s%s\n" @@ -89,9 +92,12 @@ int print_lpm_cmp_ne(FILE*fd, ivl_lpm_t net) blif_nex_data_t*a_ned = blif_nex_data_t::get_nex_data(a_nex); blif_nex_data_t*b_ned = blif_nex_data_t::get_nex_data(b_nex); - assert(1 == q_ned->get_width()); - assert(ivl_lpm_width(net) == a_ned->get_width()); - assert(ivl_lpm_width(net) == b_ned->get_width()); + size_t q_wid = q_ned->get_width(); + size_t a_wid = a_ned->get_width(); + size_t b_wid = b_ned->get_width(); + assert(1 == q_wid); + assert(ivl_lpm_width(net) == a_wid); + assert(ivl_lpm_width(net) == b_wid); if (ivl_lpm_width(net) == 1) { fprintf(fd, ".names %s%s %s%s %s%s\n" diff --git a/tgt-blif/lpm_cmp_gt.cc b/tgt-blif/lpm_cmp_gt.cc index 831c9a1c9..fa1fd1261 100644 --- a/tgt-blif/lpm_cmp_gt.cc +++ b/tgt-blif/lpm_cmp_gt.cc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013 Stephen Williams (steve@icarus.com) + * Copyright (c) 2013-2026 Stephen Williams (steve@icarus.com) * * This source code is free software; you can redistribute it * and/or modify it in source code form under the terms of the GNU @@ -31,9 +31,12 @@ static int print_lpm_cmp_gt_s(FILE*fd, ivl_lpm_t net) blif_nex_data_t*a_ned = blif_nex_data_t::get_nex_data(a_nex); blif_nex_data_t*b_ned = blif_nex_data_t::get_nex_data(b_nex); - assert(1 == q_ned->get_width()); - assert(ivl_lpm_width(net) == a_ned->get_width()); - assert(ivl_lpm_width(net) == b_ned->get_width()); + size_t q_wid = q_ned->get_width(); + size_t a_wid = a_ned->get_width(); + size_t b_wid = b_ned->get_width(); + assert(1 == q_wid); + assert(ivl_lpm_width(net) == a_wid); + assert(ivl_lpm_width(net) == b_wid); // This is true if the operator is GE instead of just GT. bool ge_flag = ivl_lpm_type(net)==IVL_LPM_CMP_GE; @@ -67,9 +70,12 @@ static int print_lpm_cmp_gt_u(FILE*fd, ivl_lpm_t net) blif_nex_data_t*a_ned = blif_nex_data_t::get_nex_data(a_nex); blif_nex_data_t*b_ned = blif_nex_data_t::get_nex_data(b_nex); - assert(1 == q_ned->get_width()); - assert(ivl_lpm_width(net) == a_ned->get_width()); - assert(ivl_lpm_width(net) == b_ned->get_width()); + size_t q_wid = q_ned->get_width(); + size_t a_wid = a_ned->get_width(); + size_t b_wid = b_ned->get_width(); + assert(1 == q_wid); + assert(ivl_lpm_width(net) == a_wid); + assert(ivl_lpm_width(net) == b_wid); // This is true if the operator is GE instead of just GT. bool ge_flag = ivl_lpm_type(net)==IVL_LPM_CMP_GE; diff --git a/tgt-blif/lpm_mux.cc b/tgt-blif/lpm_mux.cc index ac6428d86..ab3cfb9e1 100644 --- a/tgt-blif/lpm_mux.cc +++ b/tgt-blif/lpm_mux.cc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013 Stephen Williams (steve@icarus.com) + * Copyright (c) 2013-2026 Stephen Williams (steve@icarus.com) * * This source code is free software; you can redistribute it * and/or modify it in source code form under the terms of the GNU @@ -46,12 +46,16 @@ static int print_lpm_mux_s1(FILE*fd, ivl_lpm_t net) fprintf(fd, "# IVL_LPM_MUX ivl_lpm_width(net)=%u, Q=%s, D0=%s, D1=%s\n", ivl_lpm_width(net), ned_out->get_name(), ned_d0->get_name(), ned_d1->get_name()); - assert(ivl_lpm_width(net) == ned_out->get_width()); - assert(ivl_lpm_width(net) == ned_d0->get_width()); - assert(ivl_lpm_width(net) == ned_d1->get_width()); + size_t o_wid = ned_out->get_width(); + size_t d0_wid = ned_d0->get_width(); + size_t d1_wid = ned_d1->get_width(); + assert(ivl_lpm_width(net) == o_wid); + assert(ivl_lpm_width(net) == d0_wid); + assert(ivl_lpm_width(net) == d1_wid); // Only support single-bit select - assert(ned_sel->get_width() == 1); + size_t s_wid = ned_sel->get_width(); + assert(1 == s_wid); for (unsigned idx = 0 ; idx < ivl_lpm_width(net) ; idx += 1) { fprintf(fd, ".names %s%s %s%s %s%s %s%s\n" diff --git a/tgt-blif/lpm_part_vp.cc b/tgt-blif/lpm_part_vp.cc index d0dfc1bfa..528143057 100644 --- a/tgt-blif/lpm_part_vp.cc +++ b/tgt-blif/lpm_part_vp.cc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013 Stephen Williams (steve@icarus.com) + * Copyright (c) 2013-2026 Stephen Williams (steve@icarus.com) * * This source code is free software; you can redistribute it * and/or modify it in source code form under the terms of the GNU @@ -40,7 +40,8 @@ int print_lpm_part_vp(FILE*fd, ivl_lpm_t net) ivl_nexus_t nex_out = ivl_lpm_q(net); blif_nex_data_t*ned_out = blif_nex_data_t::get_nex_data(nex_out); - assert(ivl_lpm_width(net) == ned_out->get_width()); + size_t o_wid = ned_out->get_width(); + assert(ivl_lpm_width(net) == o_wid); // Only handle constant part select base. assert(ivl_lpm_data(net,1) == 0); @@ -49,7 +50,8 @@ int print_lpm_part_vp(FILE*fd, ivl_lpm_t net) ivl_nexus_t nex_in = ivl_lpm_data(net,0); blif_nex_data_t*ned_in = blif_nex_data_t::get_nex_data(nex_in); - assert(bit_sel < ned_in->get_width()); + size_t i_wid = ned_in->get_width(); + assert(bit_sel < i_wid); for (unsigned idx = 0 ; idx < ivl_lpm_width(net) ; idx += 1) { fprintf(fd, ".names %s%s %s%s # %s:%u\n1 1\n", @@ -70,7 +72,8 @@ static int print_part_vp_mux(FILE*fd, ivl_lpm_t net) blif_nex_data_t*ned_out = blif_nex_data_t::get_nex_data(nex_out); // Only handle bit selects. - assert(ned_out->get_width() == 1); + size_t o_wid = ned_out->get_width(); + assert(1 == o_wid); ivl_nexus_t nex_in = ivl_lpm_data(net,0); blif_nex_data_t*ned_in = blif_nex_data_t::get_nex_data(nex_in); diff --git a/tgt-blif/lpm_re_logic.cc b/tgt-blif/lpm_re_logic.cc index d3903388a..077358e33 100644 --- a/tgt-blif/lpm_re_logic.cc +++ b/tgt-blif/lpm_re_logic.cc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013 Stephen Williams (steve@icarus.com) + * Copyright (c) 2013-2026 Stephen Williams (steve@icarus.com) * * This source code is free software; you can redistribute it * and/or modify it in source code form under the terms of the GNU @@ -40,24 +40,26 @@ int print_lpm_re_logic(FILE*fd, ivl_lpm_t net) ivl_nexus_t nex_d = ivl_lpm_data(net,0); blif_nex_data_t*ned_d = blif_nex_data_t::get_nex_data(nex_d); - assert(ned_q->get_width() == 1); + size_t q_wid = ned_q->get_width(); + assert(1 == q_wid); + size_t d_wid = ned_d->get_width(); fprintf(fd, ".names"); - for (size_t idx = 0 ; idx < ned_d->get_width() ; idx += 1) { + for (size_t idx = 0 ; idx < d_wid ; idx += 1) { fprintf(fd, " %s%s", ned_d->get_name(), ned_d->get_name_index(idx)); } fprintf(fd, " %s%s\n", ned_q->get_name(), ned_q->get_name_index(0)); switch (ivl_lpm_type(net)) { case IVL_LPM_RE_AND: - for (size_t idx = 0 ; idx < ned_d->get_width() ; idx += 1) + for (size_t idx = 0 ; idx < d_wid ; idx += 1) fputc('1', fd); fprintf(fd, " 1\n"); break; case IVL_LPM_RE_OR: - for (size_t idx = 0 ; idx < ned_d->get_width() ; idx += 1) { - for (size_t wid = 0 ; wid < ned_d->get_width() ; wid += 1) { + for (size_t idx = 0 ; idx < d_wid ; idx += 1) { + for (size_t wid = 0 ; wid < d_wid ; wid += 1) { if (wid==idx) fputc('1', fd); else @@ -68,12 +70,12 @@ int print_lpm_re_logic(FILE*fd, ivl_lpm_t net) break; case IVL_LPM_RE_XOR: - assert(ned_d->get_width() < 8*sizeof(unsigned)); - for (unsigned val = 0; val < (1U<get_width()); val += 1) { + assert(d_wid < 8*sizeof(unsigned)); + for (unsigned val = 0; val < (1U << d_wid) ; val += 1) { if (! re_xor(val)) continue; - for (size_t idx = 0 ; idx < ned_d->get_width() ; idx += 1) { + for (size_t idx = 0 ; idx < d_wid ; idx += 1) { if (val & (1<get_width() ; idx += 1) { - for (size_t wid = 0 ; wid < ned_d->get_width() ; wid += 1) { + for (size_t idx = 0 ; idx < d_wid ; idx += 1) { + for (size_t wid = 0 ; wid < d_wid ; wid += 1) { if (wid==idx) fputc('0', fd); else @@ -96,18 +98,18 @@ int print_lpm_re_logic(FILE*fd, ivl_lpm_t net) break; case IVL_LPM_RE_NOR: - for (size_t idx = 0 ; idx < ned_d->get_width() ; idx += 1) + for (size_t idx = 0 ; idx < d_wid ; idx += 1) fputc('0', fd); fprintf(fd, " 1\n"); break; case IVL_LPM_RE_XNOR: - assert(ned_d->get_width() < 8*sizeof(unsigned)); - for (unsigned val = 0; val < (1U<get_width()); val += 1) { + assert(d_wid < 8*sizeof(unsigned)); + for (unsigned val = 0; val < (1U << d_wid) ; val += 1) { if (re_xor(val)) continue; - for (size_t idx = 0 ; idx < ned_d->get_width() ; idx += 1) { + for (size_t idx = 0 ; idx < d_wid ; idx += 1) { if (val & (1<get_width(); bool signed_ = ivl_lpm_signed(net); - assert(dataw == q_ned->get_width()); - assert(dataw == d_ned->get_width()); + size_t q_wid = q_ned->get_width(); + size_t d_wid = d_ned->get_width(); + assert(dataw == q_wid); + assert(dataw == d_wid); // TODO: output width can be larger than data diff --git a/tgt-blif/lpm_sign_ext.cc b/tgt-blif/lpm_sign_ext.cc index 311eddee6..4a9f18bee 100644 --- a/tgt-blif/lpm_sign_ext.cc +++ b/tgt-blif/lpm_sign_ext.cc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016 Yury Gribov (tetra2005@gmail.com) + * Copyright (c) 2016-2026 Yury Gribov (tetra2005@gmail.com) * * This source code is free software; you can redistribute it * and/or modify it in source code form under the terms of the GNU @@ -41,7 +41,8 @@ int print_lpm_sign_ext(FILE*fd, ivl_lpm_t net) //printf("Shift: LPM width = %u, output width = %zd, input width = %u\n", outw, q_ned->get_width(), inw); - assert(outw == q_ned->get_width()); + size_t q_wid = q_ned->get_width(); + assert(outw == q_wid); assert(inw < outw); for (unsigned idx = 0 ; idx < outw ; idx += 1) {