Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

🚨 Fix new warnings revealed by clang-tidy 18 #462

Open
wants to merge 3 commits into
base: main
Choose a base branch
from

Conversation

burgholzer
Copy link
Member

Description

This PR aims to fix all the new warnings that were introduced in clang-tidy versions 18, which have been enabled with the switch to the mqt-workflows@v1.0.0.

The first commit, which will later be reverted, just triggers a full clang-tidy run on the whole codebase.

Checklist:

  • The pull request only contains commits that are related to it.
  • I have added appropriate tests and documentation.
  • I have made sure that all CI jobs on GitHub pass.
  • The pull request introduces no new warnings and follows the project's style guidelines.

@burgholzer burgholzer self-assigned this May 29, 2024
.github/workflows/ci.yml Outdated Show resolved Hide resolved
Copy link
Contributor

github-actions bot commented May 29, 2024

Cpp-Linter Report ⚠️

Some files did not pass the configured checks!

clang-tidy reports: 390 concern(s)
  • src/Mapper.cpp:19:43: warning: [misc-include-cleaner]

    no header providing "std::uint16_t" is directly included

       14 | #include <utility>
       15 | 
       16 | void Mapper::initResults() {
       17 |   countGates(qc, results.input);
       18 |   results.input.name = qc.getName();
       19 |   results.input.qubits = static_cast<std::uint16_t>(qc.getNqubits());
          |                                           ^
  • src/Mapper.cpp:23:31: warning: [misc-include-cleaner]

    no header providing "std::numeric_limits" is directly included

       14 | #include <utility>
       15 | 
       16 | void Mapper::initResults() {
       17 |   countGates(qc, results.input);
       18 |   results.input.name = qc.getName();
       19 |   results.input.qubits = static_cast<std::uint16_t>(qc.getNqubits());
       20 |   results.architecture = architecture->getName();
       21 |   results.output.name = qc.getName() + "_mapped";
       22 |   results.output.qubits = architecture->getNqubits();
       23 |   results.output.gates = std::numeric_limits<std::size_t>::max();
          |                               ^
  • src/Mapper.cpp:23:51: warning: [misc-include-cleaner]

    no header providing "std::size_t" is directly included

       14 | #include <utility>
       15 | 
       16 | void Mapper::initResults() {
       17 |   countGates(qc, results.input);
       18 |   results.input.name = qc.getName();
       19 |   results.input.qubits = static_cast<std::uint16_t>(qc.getNqubits());
       20 |   results.architecture = architecture->getName();
       21 |   results.output.name = qc.getName() + "_mapped";
       22 |   results.output.qubits = architecture->getNqubits();
       23 |   results.output.gates = std::numeric_limits<std::size_t>::max();
          |                                                   ^
  • src/Mapper.cpp:39:10: warning: [misc-include-cleaner]

    no header providing "std::array" is directly included

       12 |     std::array<std::optional<std::size_t>, MAX_DEVICE_QUBITS>& lastLayer,
          |          ^
  • src/Mapper.cpp:39:21: warning: [misc-include-cleaner]

    no header providing "std::optional" is directly included

       14 |     std::array<std::optional<std::size_t>, MAX_DEVICE_QUBITS>& lastLayer,
          |                     ^
  • src/Mapper.cpp:39:44: warning: [misc-include-cleaner]

    no header providing "MAX_DEVICE_QUBITS" is directly included

        8 |     std::array<std::optional<std::size_t>, MAX_DEVICE_QUBITS>& lastLayer,
          |                                            ^
  • src/Mapper.cpp:57:20: warning: [misc-include-cleaner]

    no header providing "std::max" is directly included

       12 |       layer = std::max(*lastLayer.at(*control), *lastLayer.at(target)) + 1;
          |                    ^
  • src/Mapper.cpp:125:29: warning: [misc-include-cleaner]

    no header providing "std::set" is directly included

       14 |   auto qubitsInLayer = std::set<std::uint16_t>{};
          |                             ^
  • src/Mapper.cpp:130:32: warning: [misc-include-cleaner]

    no header providing "qc::Barrier" is directly included

       11 |     if (gate->getType() == qc::Barrier || gate->getType() == qc::Measure) {
          |                                ^
  • src/Mapper.cpp:130:66: warning: [misc-include-cleaner]

    no header providing "qc::Measure" is directly included

      130 |     if (gate->getType() == qc::Barrier || gate->getType() == qc::Measure) {
          |                                                                  ^
  • src/Mapper.cpp:135:13: warning: [misc-include-cleaner]

    no header providing "QMAPException" is directly included

       11 |       throw QMAPException(
          |             ^
  • src/Mapper.cpp:147:49: warning: [misc-include-cleaner]

    no header providing "std::nullopt" is directly included

      147 |     std::optional<std::uint16_t> control = std::nullopt;
          |                                                 ^
  • src/Mapper.cpp:158:10: warning: [misc-include-cleaner]

    no header providing "Layering" is directly included

       10 |     case Layering::IndividualGates:
          |          ^
  • src/Mapper.cpp:219:36: warning: [misc-include-cleaner]

    no header providing "std::vector" is directly included

       15 |   singleQubitMultiplicities = std::vector<SingleQubitMultiplicity>(
          |                                    ^
  • src/Mapper.cpp:276:15: warning: [misc-include-cleaner]

    no header providing "std::any_of" is directly included

      276 |   return std::any_of(activeQubits1QGates.at(index).begin(),
          |               ^
  • src/Mapper.cpp:493:47: warning: [misc-include-cleaner]

    no header providing "std::int16_t" is directly included

      493 |       qubits.at(*physical) = static_cast<std::int16_t>(logical);
          |                                               ^
  • src/Mapper.cpp:526:29: warning: [misc-include-cleaner]

    no header providing "qc::Teleportation" is directly included

      526 |     if (g->getType() == qc::Teleportation) {
          |                             ^
  • src/Mapper.cpp:527:21: warning: [misc-include-cleaner]

    no header providing "GATES_OF_TELEPORTATION" is directly included

      527 |       info.gates += GATES_OF_TELEPORTATION;
          |                     ^
  • src/Mapper.cpp:532:31: warning: [misc-include-cleaner]

    no header providing "qc::SWAP" is directly included

      532 |       if (g->getType() == qc::SWAP) {
          |                               ^
  • src/Mapper.cpp:543:25: warning: [misc-include-cleaner]

    no header providing "GATES_OF_BIDIRECTIONAL_SWAP" is directly included

      543 |           info.gates += GATES_OF_BIDIRECTIONAL_SWAP;
          |                         ^
  • src/Mapper.cpp:547:25: warning: [misc-include-cleaner]

    no header providing "GATES_OF_UNIDIRECTIONAL_SWAP" is directly included

      547 |           info.gates += GATES_OF_UNIDIRECTIONAL_SWAP;
          |                         ^
  • src/Mapper.cpp:549:36: warning: [misc-include-cleaner]

    no header providing "GATES_OF_DIRECTION_REVERSE" is directly included

      549 |           info.singleQubitGates += GATES_OF_DIRECTION_REVERSE;
          |                                    ^
  • src/Mapper.cpp:559:36: warning: [misc-include-cleaner]

    no header providing "qc::X" is directly included

      559 |         assert(g->getType() == qc::X);
          |                                    ^
  • src/logicblocks/LogicTerm.cpp:403:8: warning: [misc-include-cleaner]

    no header providing "size_t" is directly included

        6 |   for (size_t i = 0U; i < getNodes().size(); ++i) {
          |        ^
  • src/logicblocks/LogicTerm.cpp:658:16: warning: [misc-include-cleaner]

    no header providing "std::max" is directly included

        5 |     ret = std::max(ret, it.getDepth());
          |                ^
  • src/logicblocks/LogicTerm.cpp:671:6: warning: [misc-include-cleaner]

    no header providing "std::size_t" is directly included

      671 | std::size_t TermHash::operator()(const LogicTerm& t) const {
          |      ^
  • src/logicblocks/Z3Model.cpp:9:34: warning: [misc-include-cleaner]

    no header providing "logicbase::LogicTerm" is directly included

        3 | #include "Z3Logic.hpp"
        4 | 
        5 | #include <z3++.h>
        6 | 
        7 | namespace z3logic {
        8 | 
        9 | bool Z3Model::getBoolValue(const LogicTerm& a, LogicBlock* lb) {
          |                                  ^
  • src/logicblocks/Z3Model.cpp:9:48: warning: [misc-include-cleaner]

    no header providing "logicbase::LogicBlock" is directly included

        3 | #include "Z3Logic.hpp"
        4 | 
        5 | #include <z3++.h>
        6 | 
        7 | namespace z3logic {
        8 | 
        9 | bool Z3Model::getBoolValue(const LogicTerm& a, LogicBlock* lb) {
          |                                                ^
  • src/logicblocks/Z3Model.cpp:15:1: warning: [misc-include-cleaner]

    no header providing "int32_t" is directly included

        5 | #include <z3++.h>
        6 | 
        7 | namespace z3logic {
        8 | 
        9 | bool Z3Model::getBoolValue(const LogicTerm& a, LogicBlock* lb) {
       10 |   auto* llb = dynamic_cast<Z3Base*>(lb);
       11 |   return z3::eq(model->eval(Z3Base::getExprTerm(a.getID(), a.getCType(), llb)),
       12 |                 ctx->bool_val(true));
       13 | }
       14 | 
       15 | int32_t Z3Model::getIntValue(const LogicTerm& a, LogicBlock* lb) {
          | ^
  • src/logicblocks/Z3Model.cpp:24:15: warning: [misc-include-cleaner]

    no header providing "std::stod" is directly included

        5 |   return std::stod(
          |               ^
  • src/logicblocks/Z3Model.cpp:29:1: warning: [misc-include-cleaner]

    no header providing "uint64_t" is directly included

       29 | uint64_t Z3Model::getBitvectorValue(const LogicTerm& a, LogicBlock* lb) {
          | ^
  • src/logicblocks/Z3Logic.cpp:213:5: warning: [cppcoreguidelines-owning-memory]

    assigning newly created 'gsl::owner<>' to non-owner 'Model *'

      213 |     model = new Z3Model(ctx, std::make_shared<z3::model>(solver->get_model()));
          |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  • src/logicblocks/Z3Logic.cpp:444:5: warning: [cppcoreguidelines-owning-memory]

    assigning newly created 'gsl::owner<>' to non-owner 'Model *'

      444 |     model =
          |     ^~~~~~~
      445 |         new Z3Model(ctx, std::make_shared<z3::model>(optimizer->get_model()));
          |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  • src/logicblocks/Encodings.cpp:7:1: warning: [misc-include-cleaner]

    included header set is not used directly

        7 | #include <set>
          | ^~~~~~~~~~~~~~
        8 | #include <string>
  • src/logicblocks/Encodings.cpp:27:13: warning: [misc-include-cleaner]

    no header providing "std::size_t" is directly included

        7 |   for (std::size_t i = 0U; i < clauseVars.size() - 1; i++) {
          |             ^
  • src/logicblocks/Encodings.cpp:41:34: warning: [misc-include-cleaner]

    no header providing "size_t" is directly included

       41 |   binaryVars.reserve(static_cast<size_t>(std::ceil(std::log2(m))));
          |                                  ^
  • src/logicblocks/Encodings.cpp:41:47: warning: [misc-include-cleaner]

    no header providing "std::ceil" is directly included

        7 |   binaryVars.reserve(static_cast<size_t>(std::ceil(std::log2(m))));
          |                                               ^
  • src/logicblocks/Encodings.cpp:41:57: warning: [misc-include-cleaner]

    no header providing "std::log2" is directly included

       41 |   binaryVars.reserve(static_cast<size_t>(std::ceil(std::log2(m))));
          |                                                         ^
  • src/logicblocks/Encodings.cpp:42:8: warning: [misc-include-cleaner]

    no header providing "int32_t" is directly included

        7 |   for (int32_t j = 0; j < std::ceil(std::log2(m)); j++) {
          |        ^
  • src/logicblocks/Encodings.cpp:133:12: warning: [misc-include-cleaner]

    no header providing "std::advance" is directly included

        7 |       std::advance(to, maxSize);
          |            ^
  • src/logicblocks/Encodings.cpp:147:36: warning: [misc-include-cleaner]

    no header providing "int64_t" is directly included

      147 |     std::advance(from, static_cast<int64_t>(i));
          |                                    ^
  • src/logicblocks/Encodings.cpp:149:21: warning: [misc-include-cleaner]

    no header providing "std::min" is directly included

        7 |     auto end = std::min(vars.size(), i + chunkSize);
          |                     ^
  • src/logicblocks/LogicBlock.cpp:5:1: warning: [misc-include-cleaner]

    included header Z3Model.hpp is not used directly

        5 | #include "Z3Model.hpp"
          | ^~~~~~~~~~~~~~~~~~~~~~
        6 | 
  • src/na/Configuration.cpp:14:24: warning: [misc-include-cleaner]

    no header providing "nlohmann::json" is directly included

       12 | #include <sstream>
       13 | 
       14 | using json = nlohmann::json;
          |                        ^
  • src/na/Configuration.cpp:18:41: warning: [misc-include-cleaner]

    no header providing "std::string" is directly included

       13 | 
       14 | using json = nlohmann::json;
       15 | 
       16 | namespace na {
       17 | 
       18 | Configuration::Configuration(const std::string& filename) {
          |                                         ^
  • src/na/Configuration.cpp:23:16: warning: [misc-include-cleaner]

    no header providing "std::runtime_error" is directly included

       13 | 
       14 | using json = nlohmann::json;
       15 | 
       16 | namespace na {
       17 | 
       18 | Configuration::Configuration(const std::string& filename) {
       19 |   std::ifstream fs(filename);
       20 |   if (!fs.good()) {
       21 |     std::stringstream ss;
       22 |     ss << "Could not open JSON file " << filename << ".";
       23 |     throw std::runtime_error(ss.str());
          |                ^
  • src/na/Configuration.cpp:32:23: warning: [misc-include-cleaner]

    no header providing "std::exception" is directly included

        9 |   } catch (const std::exception& e) {
          |                       ^
  • src/na/Configuration.cpp:34:49: warning: [performance-avoid-endl]

    do not use 'std::endl' with streams; use '\n' instead

       34 |     ss << "Error parsing JSON: " << e.what() << std::endl;
          |                                                 ^~~~~~~~~
          |                                                 '\n'
  • cmake/try_z3.cpp:2:1: warning: [misc-include-cleaner]

    included header z3.h is not used directly

        2 | #include <z3.h>
          | ^~~~~~~~~~~~~~~
        3 | 
  • cmake/try_z3.cpp:5:16: warning: [misc-include-cleaner]

    no header providing "Z3_get_full_version" is directly included

        3 | 
        4 | int main() {
        5 |   std::cout << Z3_get_full_version();
          |                ^
  • test/test_architecture.cpp:11:45: warning: [misc-include-cleaner]

    no header providing "Matrix" is directly included

        7 | 
        8 | #include <gtest/gtest.h>
        9 | #include <random>
       10 | 
       11 | ::testing::AssertionResult matrixNear(const Matrix& a, const Matrix& b,
          |                                             ^
  • test/test_architecture.cpp:17:13: warning: [misc-include-cleaner]

    no header providing "std::size_t" is directly included

        8 | #include <gtest/gtest.h>
        9 | #include <random>
       10 | 
       11 | ::testing::AssertionResult matrixNear(const Matrix& a, const Matrix& b,
       12 |                                       double delta) {
       13 |   if (a.size() != b.size()) {
       14 |     return ::testing::AssertionFailure()
       15 |            << "Matrices differ in size: " << a.size() << " != " << b.size();
       16 |   }
       17 |   for (std::size_t i = 0; i < a.size(); ++i) {
          |             ^
  • test/test_architecture.cpp:24:16: warning: [misc-include-cleaner]

    no header providing "std::abs" is directly included

        8 |       if (std::abs(a.at(i).at(j) - b.at(i).at(j)) > delta) {
          |                ^
  • test/test_architecture.cpp:35:61: warning: [misc-include-cleaner]

    no header providing "std::string" is directly included

       10 | class TestArchitecture : public testing::TestWithParam<std::string> {
          |                                                             ^
  • test/test_architecture.cpp:49:8: warning: [misc-include-cleaner]

    no header providing "std::stringstream" is directly included

       10 |   std::stringstream ss{};
          |        ^
  • test/test_architecture.cpp:87:3: warning: [misc-include-cleaner]

    no header providing "CouplingMap" is directly included

       87 |   CouplingMap cm{};
          |   ^
  • test/test_architecture.cpp:107:8: warning: [misc-include-cleaner]

    no header providing "std::vector" is directly included

       10 |   std::vector<CouplingMap> cms;
          |        ^
  • test/test_architecture.cpp:118:19: warning: [misc-include-cleaner]

    no header providing "std::make_pair" is directly included

       10 |   cm.emplace(std::make_pair(0, 1));
          |                   ^
  • test/test_architecture.cpp:124:43: warning: [misc-include-cleaner]

    no header providing "std::cout" is directly included

        9 |   Architecture::printCouplingMap(cm, std::cout);
          |                                           ^
  • test/test_architecture.cpp:160:26: warning: [misc-include-cleaner]

    no header providing "std::uint16_t" is directly included

        8 |   const std::vector<std::uint16_t> highestFidelity{2, 3};
          |                          ^
  • test/test_architecture.cpp:167:19: warning: [misc-include-cleaner]

    no header providing "getFullyConnectedMap" is directly included

      167 |   const auto cm = getFullyConnectedMap(3);
          |                   ^
  • test/test_architecture.cpp:175:3: warning: [misc-include-cleaner]

    no header providing "printPi" is directly included

      175 |   printPi(permutation);
          |   ^
  • test/test_architecture.cpp:176:15: warning: [misc-include-cleaner]

    no header providing "Edge" is directly included

      176 |   std::vector<Edge> swaps{};
          |               ^
  • test/test_architecture.cpp:178:21: warning: [misc-include-cleaner]

    no header providing "std::runtime_error" is directly included

       10 |                std::runtime_error);
          |                     ^
  • test/test_architecture.cpp:197:26: warning: [misc-include-cleaner]

    no header providing "std::pair" is directly included

      197 |   const std::vector<std::pair<std::string, qc::OpType>> singleQubitGates = {
          |                          ^
  • test/test_architecture.cpp:197:48: warning: [misc-include-cleaner]

    no header providing "qc::OpType" is directly included

        7 |   const std::vector<std::pair<std::string, qc::OpType>> singleQubitGates = {
          |                                                ^
  • test/test_architecture.cpp:303:22: warning: [misc-include-cleaner]

    no header providing "std::log2" is directly included

        8 |        0., -3 * std::log2(1 - 0.9),
          |                      ^
  • test/test_architecture.cpp:485:16: warning: [misc-include-cleaner]

    no header providing "QMAPException" is directly included

      485 |                QMAPException);
          |                ^
  • test/test_architecture.cpp:916:14: warning: [misc-include-cleaner]

    no header providing "std::uint8_t" is directly included

      916 |   const std::uint8_t nrEdges =
          |              ^
  • test/test_architecture.cpp:918:20: warning: [misc-include-cleaner]

    no header providing "std::ceil" is directly included

      918 |               std::ceil(static_cast<double>(COST_BIDIRECTIONAL_SWAP) /
          |                    ^
  • test/test_exact.cpp:396:9: warning: [misc-include-cleaner]

    no header providing "CouplingMap" is directly included

       20 |   const CouplingMap cm{{0, 1}, {1, 0}, {1, 2}, {2, 1},
          |         ^
  • test/test_heuristic.cpp:45:36: warning: [misc-include-cleaner]

    no header providing "nlohmann::json" is directly included

       22 |   const auto layerJson = nlohmann::json::parse(layerFile);
          |                                    ^
  • test/test_heuristic.cpp:83:10: warning: [misc-include-cleaner]

    no header providing "std::stringstream" is directly included

       22 |     std::stringstream lineStream(line);
          |          ^
  • test/test_heuristic.cpp:449:34: warning: [misc-include-cleaner]

    no header providing "AvailableArchitecture" is directly included

        7 |     ibmqYorktown.loadCouplingMap(AvailableArchitecture::IbmqYorktown);
          |                                  ^
  • test/test_heuristic.cpp:458:30: warning: [misc-include-cleaner]

    no header providing "InitialLayout" is directly included

        8 |     settings.initialLayout = InitialLayout::Identity;
          |                              ^
  • test/test_heuristic.cpp:897:24: warning: [misc-include-cleaner]

    no header providing "std::back_inserter" is directly included

       21 |                   std::back_inserter(finalLayout));
          |                        ^
  • test/test_heuristic.cpp:977:32: warning: [misc-include-cleaner]

    no header providing "qc::Qubit" is directly included

        7 |     qc.measure(static_cast<qc::Qubit>(i), i);
          |                                ^
  • test/test_heuristic.cpp:1086:19: warning: [misc-include-cleaner]

    no header providing "Method" is directly included

       10 |   config.method = Method::Heuristic;
          |                   ^
  • test/test_heuristic.cpp:1111:10: warning: [misc-include-cleaner]

    no header providing "qc::operator""_pc" is directly included

       12 |   qc.cx(0_pc, 1);
          |          ^
  • test/test_heuristic.cpp:1132:31: warning: [misc-include-cleaner]

    no header providing "qc::Format" is directly included

     1132 |   mapper.dumpResult(qasm, qc::Format::OpenQASM3);
          |                               ^
  • test/test_heuristic.cpp:1164:38: warning: [misc-include-cleaner]

    no header providing "DataLogger" is directly included

        7 |   auto dataLogger = std::make_unique<DataLogger>(dataLoggingPath, arch, qc);
          |                                      ^
  • test/test_heuristic.cpp:1165:13: warning: [misc-include-cleaner]

    no header providing "qc::CompoundOperation" is directly included

       12 |   const qc::CompoundOperation compOp{};
          |             ^
  • test/test_heuristic.cpp:1243:28: warning: [misc-include-cleaner]

    no header providing "std::cout" is directly included

       21 |   mapper->printResult(std::cout);
          |                            ^
  • test/test_heuristic.cpp:1270:14: warning: [misc-include-cleaner]

    no header providing "std::isinf" is directly included

       16 |     if (std::isinf(singleQubitFidelityCosts[i])) {
          |              ^
  • test/test_heuristic.cpp:1314:35: warning: [misc-include-cleaner]

    no header providing "toString" is directly included

     1314 |   EXPECT_EQ(configJson["method"], toString(settings.method));
          |                                   ^
  • test/test_heuristic.cpp:1322:13: warning: [misc-include-cleaner]

    no header providing "toString" is directly included

     1322 |             toString(settings.initialLayout));
          |             ^
  • test/test_heuristic.cpp:1354:31: warning: [misc-include-cleaner]

    no header providing "std::make_signed_t" is directly included

       25 |             (static_cast<std::make_signed_t<decltype(results.output.gates)>>(
          |                               ^
  • test/test_heuristic.cpp:1452:22: warning: [misc-include-cleaner]

    no header providing "std::pair" is directly included

       26 |     std::vector<std::pair<std::uint16_t, std::uint16_t>> swaps{};
          |                      ^
  • test/test_heuristic.cpp:1507:44: warning: [misc-include-cleaner]

    no header providing "EarlyTermination" is directly included

        7 |   const std::vector<std::pair<std::string, EarlyTermination>>
          |                                            ^
  • test/test_heuristic.cpp:1520:15: warning: [misc-include-cleaner]

    no header providing "earlyTerminationFromString" is directly included

     1520 |     EXPECT_EQ(earlyTerminationFromString(str), termination);
          |               ^
  • test/test_heuristic.cpp:1683:18: warning: [misc-include-cleaner]

    no header providing "std::set" is directly included

       22 |       const std::set<std::uint32_t> qubitSet(qubits.begin(), qubits.end());
          |                  ^
  • test/test_heuristic.cpp:1698:28: warning: [readability-redundant-member-init]

    initializer for member 'qc' is redundant

     1698 |   qc::QuantumComputation qc{};
          |                            ^~
  • test/test_heuristic.cpp:1699:20: warning: [readability-redundant-member-init]

    initializer for member 'arch' is redundant

     1699 |   Architecture arch{};
          |                    ^~
  • test/test_heuristic.cpp:1795:28: warning: [readability-redundant-member-init]

    initializer for member 'qc' is redundant

     1795 |   qc::QuantumComputation qc{};
          |                            ^~
  • test/test_heuristic.cpp:1796:28: warning: [readability-redundant-member-init]

    initializer for member 'ibmqYorktown' is redundant

     1796 |   Architecture ibmqYorktown{};
          |                            ^~
  • test/test_heuristic.cpp:1797:26: warning: [readability-redundant-member-init]

    initializer for member 'ibmqLondon' is redundant

     1797 |   Architecture ibmqLondon{};
          |                          ^~
  • test/test_heuristic.cpp:1868:28: warning: [readability-redundant-member-init]

    initializer for member 'qc' is redundant

     1868 |   qc::QuantumComputation qc{};
          |                            ^~
  • test/test_heuristic.cpp:1869:22: warning: [readability-redundant-member-init]

    initializer for member 'ibmQX5' is redundant

     1869 |   Architecture ibmQX5{};
          |                      ^~
  • test/test_heuristic.cpp:1919:28: warning: [readability-redundant-member-init]

    initializer for member 'qc' is redundant

     1919 |   qc::QuantumComputation qc{};
          |                            ^~
  • test/test_heuristic.cpp:1920:20: warning: [readability-redundant-member-init]

    initializer for member 'arch' is redundant

     1920 |   Architecture arch{};
          |                    ^~
  • test/test_heuristic.cpp:1956:28: warning: [readability-redundant-member-init]

    initializer for member 'qc' is redundant

     1956 |   qc::QuantumComputation qc{};
          |                            ^~
  • test/test_heuristic.cpp:1957:20: warning: [readability-redundant-member-init]

    initializer for member 'arch' is redundant

     1957 |   Architecture arch{};
          |                    ^~
  • test/test_heuristic.cpp:2000:28: warning: [readability-redundant-member-init]

    initializer for member 'qc' is redundant

     2000 |   qc::QuantumComputation qc{};
          |                            ^~
  • test/test_heuristic.cpp:2001:20: warning: [readability-redundant-member-init]

    initializer for member 'arch' is redundant

     2001 |   Architecture arch{};
          |                    ^~
  • test/test_heuristic.cpp:2002:31: warning: [readability-redundant-member-init]

    initializer for member 'nonFidelityArch' is redundant

     2002 |   Architecture nonFidelityArch{};
          |                               ^~
  • test/test_heuristic.cpp:2146:27: warning: [misc-include-cleaner]

    no header providing "std::log2" is directly included

     2146 |   const double c3 = -std::log2(1 - e3);
          |                           ^
  • test/test_heuristic.cpp:2461:14: warning: [misc-include-cleaner]

    no header providing "std::array" is directly included

       16 |   const std::array<std::string, 4> layerNodeFilePaths = {
          |              ^
  • test/cliffordsynthesis/test_synthesis.cpp:16:8: warning: [misc-include-cleaner]

    no header providing "std::string" is directly included

        9 | 
       10 | using namespace qc::literals;
       11 | 
       12 | namespace cs {
       13 | 
       14 | struct TestConfiguration {
       15 |   // given input (either as tableau or as circuit)
       16 |   std::string description;
          |        ^
  • test/cliffordsynthesis/test_synthesis.cpp:22:8: warning: [misc-include-cleaner]

    no header providing "std::size_t" is directly included

        8 | #include <gtest/gtest.h>
        9 | 
       10 | using namespace qc::literals;
       11 | 
       12 | namespace cs {
       13 | 
       14 | struct TestConfiguration {
       15 |   // given input (either as tableau or as circuit)
       16 |   std::string description;
       17 |   std::string initialTableau;
       18 |   std::string targetTableau;
       19 |   std::string initialCircuit;
       20 | 
       21 |   // expected output
       22 |   std::size_t expectedMinimalGates{};
          |        ^
  • test/cliffordsynthesis/test_synthesis.cpp:54:6: warning: [misc-include-cleaner]

    no header providing "std::vector" is directly included

        9 | std::vector<TestConfiguration> getTests(const std::string& path) {
          |      ^
  • test/cliffordsynthesis/test_synthesis.cpp:55:8: warning: [misc-include-cleaner]

    no header providing "std::ifstream" is directly included

        8 |   std::ifstream input(path);
          |        ^
  • test/cliffordsynthesis/test_synthesis.cpp:68:12: warning: [misc-include-cleaner]

    no header providing "std::stringstream" is directly included

        9 |       std::stringstream ss(test.initialCircuit);
          |            ^
  • test/cliffordsynthesis/test_synthesis.cpp:69:11: warning: [misc-include-cleaner]

    no header providing "qc::QuantumComputation" is directly included

        6 |       qc::QuantumComputation qc{};
          |           ^
  • test/cliffordsynthesis/test_synthesis.cpp:70:25: warning: [misc-include-cleaner]

    no header providing "qc::Format" is directly included

        6 |       qc.import(ss, qc::Format::OpenQASM3);
          |                         ^
  • test/cliffordsynthesis/test_synthesis.cpp:71:12: warning: [misc-include-cleaner]

    no header providing "std::cout" is directly included

        9 |       std::cout << "Initial circuit:\n" << qc;
          |            ^
  • test/cliffordsynthesis/test_synthesis.cpp:74:31: warning: [misc-include-cleaner]

    no header providing "std::numeric_limits" is directly included

        9 |           Tableau(qc, 0, std::numeric_limits<std::size_t>::max(), true);
          |                               ^
  • test/cliffordsynthesis/test_synthesis.cpp:99:30: warning: [misc-include-cleaner]

    no header providing "plog::Severity" is directly included

        7 |     config.verbosity = plog::Severity::verbose;
          |                              ^
  • test/cliffordsynthesis/test_synthesis.cpp:131:3: warning: [misc-include-cleaner]

    no header providing "cs::Results" is directly included

        7 |   Results results;
          |   ^
  • test/cliffordsynthesis/test_synthesis.cpp:153:19: warning: [misc-include-cleaner]

    no header providing "cs::TargetMetric" is directly included

        7 |   config.target = TargetMetric::Gates;
          |                   ^
  • test/cliffordsynthesis/test_synthesis.cpp:291:49: warning: [performance-avoid-endl]

    do not use 'std::endl' with streams; use '\n' instead

      291 |     std::cout << "Testing with destabilizer" << std::endl;
          |                                                 ^~~~~~~~~
          |                                                 '\n'
  • test/cliffordsynthesis/test_synthesis.cpp:291:54: warning: [misc-include-cleaner]

    no header providing "std::endl" is directly included

        9 |     std::cout << "Testing with destabilizer" << std::endl;
          |                                                      ^
  • test/cliffordsynthesis/test_synthesis.cpp:302:52: warning: [performance-avoid-endl]

    do not use 'std::endl' with streams; use '\n' instead

      302 |     std::cout << "Testing without destabilizer" << std::endl;
          |                                                    ^~~~~~~~~
          |                                                    '\n'
  • test/cliffordsynthesis/test_synthesis.cpp:313:49: warning: [performance-avoid-endl]

    do not use 'std::endl' with streams; use '\n' instead

      313 |     std::cout << "Testing with destabilizer" << std::endl;
          |                                                 ^~~~~~~~~
          |                                                 '\n'
  • test/cliffordsynthesis/test_synthesis.cpp:324:52: warning: [performance-avoid-endl]

    do not use 'std::endl' with streams; use '\n' instead

      324 |     std::cout << "Testing without destabilizer" << std::endl;
          |                                                    ^~~~~~~~~
          |                                                    '\n'
  • test/cliffordsynthesis/test_synthesis.cpp:335:49: warning: [performance-avoid-endl]

    do not use 'std::endl' with streams; use '\n' instead

      335 |     std::cout << "Testing with destabilizer" << std::endl;
          |                                                 ^~~~~~~~~
          |                                                 '\n'
  • test/cliffordsynthesis/test_synthesis.cpp:347:52: warning: [performance-avoid-endl]

    do not use 'std::endl' with streams; use '\n' instead

      347 |     std::cout << "Testing without destabilizer" << std::endl;
          |                                                    ^~~~~~~~~
          |                                                    '\n'
  • test/cliffordsynthesis/test_synthesis.cpp:391:10: warning: [misc-include-cleaner]

    no header providing "qc::operator""_pc" is directly included

        7 |   qc.cx(0_pc, 1);
          |          ^
  • test/na/test_architecture.cpp:21:10: warning: [misc-include-cleaner]

    no header providing "std::istringstream" is directly included

       14 | #include <string>
       15 | 
       16 | class NAArchitecture : public testing::Test {
       17 | protected:
       18 |   na::Architecture arch;
       19 |   void SetUp() override {
       20 |     // write content to a file
       21 |     std::istringstream archIS(R"({
          |          ^
  • test/na/test_architecture.cpp:124:10: warning: [misc-include-cleaner]

    no header providing "std::stringstream" is directly included

      124 |     std::stringstream gridSS;
          |          ^
  • test/na/test_architecture.cpp:152:47: warning: [misc-include-cleaner]

    no header providing "std::invalid_argument" is directly included

       14 |   EXPECT_THROW(na::getScopeOfString(""), std::invalid_argument);
          |                                               ^
  • test/na/test_architecture.cpp:193:21: warning: [misc-include-cleaner]

    no header providing "std::ignore" is directly included

       15 |   EXPECT_THROW(std::ignore = arch.getPropertiesOfOperation({qc::OpType::RX, 0}),
          |                     ^
  • test/na/test_architecture.cpp:301:35: warning: [misc-include-cleaner]

    no header providing "std::int64_t" is directly included

       11 |   const auto d = static_cast<std::int64_t>(arch.getNoInteractionRadius());
          |                                   ^
  • test/na/test_nagraphalgorithms.cpp:14:1: warning: [misc-include-cleaner]

    included header memory is not used directly

       14 | #include <memory>
          | ^~~~~~~~~~~~~~~~~
       15 | #include <numeric>
  • test/na/test_nagraphalgorithms.cpp:48:21: warning: [misc-include-cleaner]

    no header providing "std::ignore" is directly included

       16 |   EXPECT_THROW(std::ignore = graph.getDegree(0), std::invalid_argument);
          |                     ^
  • test/na/test_nagraphalgorithms.cpp:48:55: warning: [misc-include-cleaner]

    no header providing "std::invalid_argument" is directly included

       16 |   EXPECT_THROW(std::ignore = graph.getDegree(0), std::invalid_argument);
          |                                                       ^
  • test/na/test_nagraphalgorithms.cpp:103:32: warning: [misc-include-cleaner]

    no header providing "std::unordered_set" is directly included

       16 |                    graph, std::unordered_set<qc::Qubit>{8}),
          |                                ^
  • test/na/test_nagraphalgorithms.cpp:103:50: warning: [misc-include-cleaner]

    no header providing "qc::Qubit" is directly included

        6 |                    graph, std::unordered_set<qc::Qubit>{8}),
          |                                                  ^
  • test/na/test_nagraphalgorithms.cpp:109:8: warning: [misc-include-cleaner]

    no header providing "std::vector" is directly included

       16 |   std::vector queue(maxIndepSet.cbegin(), maxIndepSet.cend());
          |        ^
  • test/na/test_nagraphalgorithms.cpp:167:28: warning: [misc-include-cleaner]

    no header providing "std::vector" is directly included

      167 |                       std::vector<qc::Qubit>{}, [](auto& acc, const auto& p) {
          |                            ^
  • test/na/test_nagraphalgorithms.cpp:176:15: warning: [misc-include-cleaner]

    no header providing "std::size_t" is directly included

       13 |     for (std::size_t i = 1; i < order.size(); ++i) {
          |               ^
  • test/na/test_configuration.cpp:6:1: warning: [misc-include-cleaner]

    included header Configuration.hpp is not used directly

        6 | #include "../../include/configuration/Configuration.hpp"
          | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        7 | #include "Configuration.hpp"
  • test/na/test_configuration.cpp:18:21: warning: [misc-include-cleaner]

    no header providing "std::ignore" is directly included

       10 | 
       11 | TEST(Configuration, MethodOfString) {
       12 |   EXPECT_EQ(na::getMethodOfString("naive"), na::NAMappingMethod::Naive);
       13 |   EXPECT_EQ(na::getMethodOfString("maximize parallelism"),
       14 |             na::NAMappingMethod::MaximizeParallelismHeuristic);
       15 |   EXPECT_EQ(na::getMethodOfString("NaIvE"), na::NAMappingMethod::Naive);
       16 |   EXPECT_EQ(na::getMethodOfString("mAxImIzE pArAllElIsm"),
       17 |             na::NAMappingMethod::MaximizeParallelismHeuristic);
       18 |   EXPECT_THROW(std::ignore = na::getMethodOfString("unsupported"),
          |                     ^
  • test/na/test_configuration.cpp:19:21: warning: [misc-include-cleaner]

    no header providing "std::invalid_argument" is directly included

       10 | 
       11 | TEST(Configuration, MethodOfString) {
       12 |   EXPECT_EQ(na::getMethodOfString("naive"), na::NAMappingMethod::Naive);
       13 |   EXPECT_EQ(na::getMethodOfString("maximize parallelism"),
       14 |             na::NAMappingMethod::MaximizeParallelismHeuristic);
       15 |   EXPECT_EQ(na::getMethodOfString("NaIvE"), na::NAMappingMethod::Naive);
       16 |   EXPECT_EQ(na::getMethodOfString("mAxImIzE pArAllElIsm"),
       17 |             na::NAMappingMethod::MaximizeParallelismHeuristic);
       18 |   EXPECT_THROW(std::ignore = na::getMethodOfString("unsupported"),
       19 |                std::invalid_argument);
          |                     ^
  • test/na/test_configuration.cpp:23:60: warning: [misc-include-cleaner]

    no header providing "std::runtime_error" is directly included

       23 |   EXPECT_THROW(na::Configuration("nonexistent.json"), std::runtime_error);
          |                                                            ^
  • test/na/test_configuration.cpp:24:8: warning: [misc-include-cleaner]

    no header providing "std::istringstream" is directly included

       10 | 
       11 | TEST(Configuration, MethodOfString) {
       12 |   EXPECT_EQ(na::getMethodOfString("naive"), na::NAMappingMethod::Naive);
       13 |   EXPECT_EQ(na::getMethodOfString("maximize parallelism"),
       14 |             na::NAMappingMethod::MaximizeParallelismHeuristic);
       15 |   EXPECT_EQ(na::getMethodOfString("NaIvE"), na::NAMappingMethod::Naive);
       16 |   EXPECT_EQ(na::getMethodOfString("mAxImIzE pArAllElIsm"),
       17 |             na::NAMappingMethod::MaximizeParallelismHeuristic);
       18 |   EXPECT_THROW(std::ignore = na::getMethodOfString("unsupported"),
       19 |                std::invalid_argument);
       20 | }
       21 | 
       22 | TEST(Configuration, Import) {
       23 |   EXPECT_THROW(na::Configuration("nonexistent.json"), std::runtime_error);
       24 |   std::istringstream configIS(R"(
          |        ^
  • include/utils.hpp:8:1: warning: [misc-include-cleaner]

    included header Operation.hpp is not used directly

        8 | #include "operations/Operation.hpp"
          | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        9 | 
  • include/utils.hpp:12:1: warning: [misc-include-cleaner]

    included header iostream is not used directly

       12 | #include <iostream>
          | ^~~~~~~~~~~~~~~~~~~
       13 | #include <limits>
  • include/utils.hpp:15:1: warning: [misc-include-cleaner]

    included header queue is not used directly

       15 | #include <queue>
          | ^~~~~~~~~~~~~~~~
       16 | #include <set>
  • include/utils.hpp:17:1: warning: [misc-include-cleaner]

    included header sstream is not used directly

       17 | #include <sstream>
          | ^~~~~~~~~~~~~~~~~~
       18 | #include <stdexcept>
  • include/utils.hpp:23:19: warning: [misc-include-cleaner]

    no header providing "std::pair" is directly included

       20 | #include <vector>
       21 | 
       22 | using Matrix = std::vector<std::vector<double>>;
       23 | using Edge = std::pair<std::uint16_t, std::uint16_t>;
          |                   ^
  • include/utils.hpp:23:29: warning: [misc-include-cleaner]

    no header providing "std::uint16_t" is directly included

       11 | #include <functional>
       12 | #include <iostream>
       13 | #include <limits>
       14 | #include <optional>
       15 | #include <queue>
       16 | #include <set>
       17 | #include <sstream>
       18 | #include <stdexcept>
       19 | #include <string>
       20 | #include <vector>
       21 | 
       22 | using Matrix = std::vector<std::vector<double>>;
       23 | using Edge = std::pair<std::uint16_t, std::uint16_t>;
          |                             ^
  • include/utils.hpp:28:68: warning: [misc-include-cleaner]

    no header providing "qc::OpType" is directly included

        8 |   Exchange(const std::uint16_t f, const std::uint16_t s, const qc::OpType type)
          |                                                                    ^
  • include/utils.hpp:46:56: warning: [misc-include-cleaner]

    no header providing "std::move" is directly included

       46 |       : std::runtime_error("QMAP Exception"), msg(std::move(m)) {}
          |                                                        ^
  • include/utils.hpp:194:65: warning: [misc-include-cleaner]

    no header providing "std::size_t" is directly included

       11 | std::vector<QubitSubset> subsets(const QubitSubset& input, std::size_t size,
          |                                                                 ^
  • include/MappingResults.hpp:6:1: warning: [misc-include-cleaner]

    included header Architecture.hpp is not used directly

        6 | #include "Architecture.hpp"
          | ^~~~~~~~~~~~~~~~~~~~~~~~~~~
        7 | #include "configuration/Configuration.hpp"
  • include/MappingResults.hpp:18:21: warning: [readability-redundant-member-init]

    initializer for member 'name' is redundant

       18 |     std::string name{};
          |                     ^~
  • include/MappingResults.hpp:19:10: warning: [misc-include-cleaner]

    no header providing "std::uint16_t" is directly included

        9 | #include <iostream>
       10 | #include <sstream>
       11 | #include <string>
       12 | 
       13 | #pragma once
       14 | 
       15 | struct MappingResults {
       16 |   struct CircuitInfo {
       17 |     // general info
       18 |     std::string name{};
       19 |     std::uint16_t qubits = 0;
          |          ^
  • include/MappingResults.hpp:20:10: warning: [misc-include-cleaner]

    no header providing "std::size_t" is directly included

        9 | #include <iostream>
       10 | #include <sstream>
       11 | #include <string>
       12 | 
       13 | #pragma once
       14 | 
       15 | struct MappingResults {
       16 |   struct CircuitInfo {
       17 |     // general info
       18 |     std::string name{};
       19 |     std::uint16_t qubits = 0;
       20 |     std::size_t gates = 0;
          |          ^
  • include/MappingResults.hpp:42:29: warning: [misc-include-cleaner]

    no header providing "nlohmann::json" is directly included

       10 |     [[nodiscard]] nlohmann::json json() const {
          |                             ^
  • include/MappingResults.hpp:88:27: warning: [readability-redundant-member-init]

    initializer for member 'architecture' is redundant

       88 |   std::string architecture{};
          |                           ^~
  • include/MappingResults.hpp:95:28: warning: [readability-redundant-member-init]

    initializer for member 'mappedCircuit' is redundant

       95 |   std::string mappedCircuit{};
          |                            ^~
  • include/MappingResults.hpp:97:19: warning: [readability-redundant-member-init]

    initializer for member 'wcnf' is redundant

       97 |   std::string wcnf{};
          |                   ^~
  • include/MappingResults.hpp:100:8: warning: [misc-include-cleaner]

    no header providing "std::vector" is directly included

       12 |   std::vector<LayerHeuristicBenchmarkInfo> layerHeuristicBenchmark{};
          |        ^
  • include/MappingResults.hpp:100:67: warning: [readability-redundant-member-init]

    initializer for member 'layerHeuristicBenchmark' is redundant

      100 |   std::vector<LayerHeuristicBenchmarkInfo> layerHeuristicBenchmark{};
          |                                                                   ^~
  • include/MappingResults.hpp:147:26: warning: [misc-include-cleaner]

    no header providing "Method" is directly included

        8 |     if (config.method == Method::Exact) {
          |                          ^
  • include/MappingResults.hpp:157:26: warning: [misc-include-cleaner]

    no header providing "std::make_signed_t" is directly included

       12 |         static_cast<std::make_signed_t<decltype(output.gates)>>(output.gates) -
          |                          ^
  • include/DataLogger.hpp:9:1: warning: [misc-include-cleaner]

    included header Mapper.hpp is not used directly

        9 | #include "Mapper.hpp"
          | ^~~~~~~~~~~~~~~~~~~~~
       10 | #include "MappingResults.hpp"
  • include/DataLogger.hpp:19:30: warning: [misc-include-cleaner]

    no header providing "std::move" is directly included

       15 | 
       16 | class DataLogger {
       17 | public:
       18 |   DataLogger(std::string path, Architecture& arch, qc::QuantumComputation qc)
       19 |       : dataLoggingPath(std::move(path)), architecture(&arch),
          |                              ^
  • include/DataLogger.hpp:24:15: warning: [misc-include-cleaner]

    no header providing "std::size_t" is directly included

       13 | #include <fstream>
       14 | #include <string>
       15 | 
       16 | class DataLogger {
       17 | public:
       18 |   DataLogger(std::string path, Architecture& arch, qc::QuantumComputation qc)
       19 |       : dataLoggingPath(std::move(path)), architecture(&arch),
       20 |         nqubits(arch.getNqubits()), inputCircuit(std::move(qc)) {
       21 |     initLog();
       22 |     logArchitecture();
       23 |     logInputCircuit(inputCircuit);
       24 |     for (std::size_t i = 0; i < inputCircuit.getNqubits(); ++i) {
          |               ^
  • include/DataLogger.hpp:38:33: warning: [misc-include-cleaner]

    no header providing "std::array" is directly included

       13 |                      const std::array<std::int16_t, MAX_DEVICE_QUBITS>& qubits,
          |                                 ^
  • include/DataLogger.hpp:38:44: warning: [misc-include-cleaner]

    no header providing "std::int16_t" is directly included

       13 |                      const std::array<std::int16_t, MAX_DEVICE_QUBITS>& qubits,
          |                                            ^
  • include/DataLogger.hpp:39:52: warning: [misc-include-cleaner]

    no header providing "std::vector" is directly included

       15 |                      bool validMapping, const std::vector<Exchange>& swaps,
          |                                                    ^
  • include/DataLogger.hpp:39:59: warning: [misc-include-cleaner]

    no header providing "Exchange" is directly included

       12 |                      bool validMapping, const std::vector<Exchange>& swaps,
          |                                                           ^

Have any feedback or feature suggestions? Share it here.

@burgholzer burgholzer added c++ Anything related to C++ code code quality Anything related to code quality and code style. labels May 30, 2024
@burgholzer burgholzer added help wanted Extra attention is needed good first issue Good for newcomers labels Jun 20, 2024
@burgholzer burgholzer force-pushed the fix-clang-tidy-17-18-warnings branch from e3f6579 to 6fc94f2 Compare June 20, 2024 18:46
Copy link

codecov bot commented Jun 20, 2024

Codecov Report

Attention: Patch coverage is 97.76715% with 14 lines in your changes missing coverage. Please review.

Project coverage is 90.4%. Comparing base (677b643) to head (11893a4).
Report is 1 commits behind head on main.

Additional details and impacted files

Impacted file tree graph

@@           Coverage Diff           @@
##            main    #462     +/-   ##
=======================================
- Coverage   90.4%   90.4%   -0.1%     
=======================================
  Files         86      86             
  Lines       9982    9976      -6     
  Branches    1696    1695      -1     
=======================================
- Hits        9027    9019      -8     
- Misses       955     957      +2     
Flag Coverage Δ
cpp 90.1% <97.7%> (-0.1%) ⬇️
python 95.9% <ø> (ø)
Files Coverage Δ
include/DataLogger.hpp 100.0% <ø> (ø)
include/Mapper.hpp 85.2% <100.0%> (ø)
include/MappingResults.hpp 83.3% <100.0%> (ø)
include/cliffordsynthesis/CliffordSynthesizer.hpp 88.1% <ø> (ø)
include/cliffordsynthesis/Configuration.hpp 100.0% <ø> (ø)
include/cliffordsynthesis/Results.hpp 100.0% <100.0%> (ø)
include/cliffordsynthesis/Tableau.hpp 86.6% <ø> (ø)
include/cliffordsynthesis/encoding/GateEncoder.hpp 88.8% <ø> (ø)
...de/cliffordsynthesis/encoding/ObjectiveEncoder.hpp 100.0% <ø> (ø)
include/cliffordsynthesis/encoding/SATEncoder.hpp 100.0% <ø> (ø)
... and 53 more

... and 1 file with indirect coverage changes

@burgholzer burgholzer force-pushed the fix-clang-tidy-17-18-warnings branch from 6fc94f2 to 1155f57 Compare June 21, 2024 08:55
Signed-off-by: burgholzer <burgholzer@me.com>
@burgholzer burgholzer force-pushed the fix-clang-tidy-17-18-warnings branch from 1155f57 to 11893a4 Compare June 21, 2024 11:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
c++ Anything related to C++ code code quality Anything related to code quality and code style. good first issue Good for newcomers help wanted Extra attention is needed
Projects
Status: In Progress
Status: In Progress
Development

Successfully merging this pull request may close these issues.

None yet

1 participant