diff --git a/.cproject b/.cproject
index 5484523..f7efdd6 100644
--- a/.cproject
+++ b/.cproject
@@ -14,7 +14,7 @@
-
+
@@ -64,10 +64,9 @@
-
-
+
+
-
@@ -99,10 +98,9 @@
-
-
+
+
-
@@ -121,6 +119,7 @@
+
diff --git a/.gitmodules b/.gitmodules
index 6211793..1ddda03 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -1,3 +1,6 @@
[submodule "scc"]
path = scc
url = https://github.com/Minres/SystemC-Components.git
+[submodule "cmake-conan"]
+ path = cmake-conan
+ url = https://github.com/conan-io/cmake-conan.git
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 808a583..9f923b6 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -8,11 +8,9 @@ option(FULL_TEST_SUITE "enable also long-running tests" OFF)
option(ENABLE_SCV "Enable use of SCV" OFF)
option(ENABLE_CLANG_TIDY "Enable clang-tidy checks" OFF)
-include(ConanInline)
include(GNUInstallDirs)
include(BuildType)
-set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
@@ -20,14 +18,6 @@ set(CMAKE_POSITION_INDEPENDENT_CODE ON)
include(CheckCXXCompilerFlag)
CHECK_CXX_COMPILER_FLAG("-march=native" COMPILER_SUPPORTS_MARCH_NATIVE)
-if(COMPILER_SUPPORTS_MARCH_NATIVE)
- if("${CMAKE_BUILD_TYPE}" STREQUAL "")
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=native")
- elseif(NOT(${CMAKE_BUILD_TYPE} STREQUAL "RelWithDebInfo"))
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=native")
- endif()
-endif()
-
if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
set(warnings "-Wall -Wextra -Werror")
set(CMAKE_CXX_FLAG_RELEASE "-O3 -DNDEBUG")
@@ -39,11 +29,10 @@ endif()
if(ENABLE_COVERAGE)
include(CodeCoverage)
append_coverage_compiler_flags()
- set(COVERAGE_EXCLUDES "osci-lib/scc/*" "/engr/dev/tools/*")
endif()
-find_program(CLANG_TIDY_EXE NAMES "clang-tidy")
if(ENABLE_CLANG_TIDY)
+ find_program(CLANG_TIDY_EXE NAMES "clang-tidy")
if(CLANG_TIDY_EXE)
message(STATUS "clang-tidy found: ${CLANG_TIDY_EXE}")
#set(CLANG_TIDY_CHECKS "-*,modernize-*,-modernize-use-trailing-return-type,clang-analyzer-core.*,clang-analyzer-cplusplus.*")
@@ -56,15 +45,6 @@ endif()
set(CLANG_FORMAT_EXCLUDE_PATTERNS "/third_party/")
find_package(ClangFormat)
-
-set(CONAN_CMAKE_SILENT_OUTPUT ON)
-conan_check()
-conan_configure(REQUIRES jsoncpp/1.9.5 yaml-cpp/0.6.3 spdlog/1.9.2 fmt/8.0.1 boost/1.85.0 gsl-lite/0.37.0 systemc/2.3.4 catch2/3.1.0 zlib/1.2.11 lz4/1.9.4
- GENERATORS cmake_find_package
- OPTIONS fmt:header_only=True spdlog:header_only=True
- )
-conan_install()
-
find_package(ZLIB)
find_package(lz4)
# This line finds the boost lib and headers.
diff --git a/CMakePresets.json b/CMakePresets.json
new file mode 100644
index 0000000..7db4d33
--- /dev/null
+++ b/CMakePresets.json
@@ -0,0 +1,40 @@
+{
+ "version": 3,
+ "vendor": {
+ "conan": {}
+ },
+ "cmakeMinimumRequired": {
+ "major": 3,
+ "minor": 24,
+ "patch": 0
+ },
+ "configurePresets": [
+ {
+ "name": "Debug",
+ "cacheVariables": {
+ "CMAKE_POLICY_DEFAULT_CMP0091": "NEW",
+ "CMAKE_BUILD_TYPE": "Debug",
+ "CMAKE_CXX_STANDARD": "17",
+ "CMAKE_PROJECT_TOP_LEVEL_INCLUDES":"cmake-conan/conan_provider.cmake"
+ }
+ },
+ {
+ "name": "RelWithDebInfo",
+ "cacheVariables": {
+ "CMAKE_POLICY_DEFAULT_CMP0091": "NEW",
+ "CMAKE_BUILD_TYPE": "RelWithDebInfo",
+ "CMAKE_CXX_STANDARD": "17",
+ "CMAKE_PROJECT_TOP_LEVEL_INCLUDES":"cmake-conan/conan_provider.cmake"
+ }
+ },
+ {
+ "name": "Release",
+ "cacheVariables": {
+ "CMAKE_POLICY_DEFAULT_CMP0091": "NEW",
+ "CMAKE_BUILD_TYPE": "Release",
+ "CMAKE_CXX_STANDARD": "17",
+ "CMAKE_PROJECT_TOP_LEVEL_INCLUDES":"cmake-conan/conan_provider.cmake"
+ }
+ }
+ ]
+}
\ No newline at end of file
diff --git a/CMakeUserPresets.json b/CMakeUserPresets.json
new file mode 100644
index 0000000..3b9486d
--- /dev/null
+++ b/CMakeUserPresets.json
@@ -0,0 +1,9 @@
+{
+ "version": 4,
+ "vendor": {
+ "conan": {}
+ },
+ "include": [
+ "build/Debug/conan/build/Debug/generators/CMakePresets.json"
+ ]
+}
\ No newline at end of file
diff --git a/Jenkinsfile b/Jenkinsfile
index fa67378..39e8875 100644
--- a/Jenkinsfile
+++ b/Jenkinsfile
@@ -31,16 +31,17 @@ void checkout_project() {
void setup_conan() {
sh'''
- pip3 install --user "conan<2.0" pyucis
+ python3 -mvenv .venv
+ . .venv/bin/activate
+ pip3 install -r requirements.txt
conan profile new default --detect --force
- conan remote list | grep minres > /dev/null
- [ $? ] || conan remote add minres https://git.minres.com/api/packages/Tooling/conan
'''
}
void build_n_test_project() {
sh'''
- cmake -S . -B build
+ . .venv/bin/activate
+ cmake -S . -B build --preset Release
cmake --build build -j12
cmake --build build --target test
'''
@@ -97,7 +98,7 @@ pipeline {
stage('Setup') { steps { setup_conan() }}
stage('Build & check format') { steps {
sh'''
- cmake -S . -B build
+ cmake -S . -B build --preset Release
cmake --build build --target format-check
'''
}}
diff --git a/Modulefile b/Modulefile
index 5d602fb..4891e78 100644
--- a/Modulefile
+++ b/Modulefile
@@ -13,5 +13,5 @@ if { $distro == "CentOS" && ![info exists ::env(PROJECT)] && ![info exists ::env
}
module load tools/utilities
-module load tools/cmake
+module load tools/cmake/3.28
module load tools/clang/14.0
diff --git a/README.md b/README.md
index 171f11e..98bb81b 100644
--- a/README.md
+++ b/README.md
@@ -12,9 +12,10 @@ In Console:
module load ./Modulefile
python3 -mvenv .venv
. .venv/bin/activate
- pip3 install conan==1.59.0
- cmake -S . -B build
+ pip3 install -r requirements.txt
+ cmake -S . -B build --preset Release
cmake --build build -j30
+ cmake --build build --target test
\ No newline at end of file
diff --git a/build.log b/build.log
new file mode 100644
index 0000000..978a142
--- /dev/null
+++ b/build.log
@@ -0,0 +1,490 @@
+[ 1%] Building CXX object scc/third_party/scv-tr/src/CMakeFiles/scv-tr.dir/scv-tr/scv_introspection.cpp.o
+[ 2%] Building CXX object scc/third_party/scv-tr/src/CMakeFiles/scv-tr.dir/scv-tr/scv_tr_text.cpp.o
+[ 3%] Building CXX object scc/third_party/scv-tr/src/CMakeFiles/scv-tr.dir/scv-tr/scv_tr.cpp.o
+[ 3%] Building CXX object scc/src/common/CMakeFiles/scc-util.dir/util/io-redirector.cpp.o
+[ 4%] Building CXX object scc/third_party/scv-tr/src/CMakeFiles/scv-tr.dir/scv-tr/scv_report.cpp.o
+[ 5%] Building C object scc/third_party/fst/CMakeFiles/fstapi.dir/fstapi.c.o
+[ 6%] Building CXX object scc/src/common/CMakeFiles/scc-util.dir/util/watchdog.cpp.o
+[ 8%] Building CXX object scc/src/common/CMakeFiles/scc-util.dir/util/lz4_streambuf.cpp.o
+[ 9%] Building C object scc/third_party/fst/CMakeFiles/fstapi.dir/fastlz.c.o
+[ 9%] Building CXX object scc/third_party/lwtr4sc/src/CMakeFiles/lwtr.dir/lwtr/util/lz4_streambuf.cpp.o
+[ 9%] Building CXX object scc/third_party/lwtr4sc/src/CMakeFiles/lwtr.dir/lwtr/lwtr.cpp.o
+[ 10%] Building CXX object scc/third_party/lwtr4sc/src/CMakeFiles/lwtr.dir/lwtr/lwtr_text.cpp.o
+[ 11%] Building CXX object scc/third_party/cci-1.0.0/CMakeFiles/cciapi.dir/cci_cfg/cci_broker_manager.cpp.o
+[ 12%] Building CXX object scc/third_party/lwtr4sc/src/CMakeFiles/lwtr.dir/lwtr/lwtr_ftr.cpp.o
+[ 13%] Building CXX object scc/third_party/cci-1.0.0/CMakeFiles/cciapi.dir/cci_cfg/cci_originator.cpp.o
+[ 14%] Building CXX object scc/third_party/cci-1.0.0/CMakeFiles/cciapi.dir/cci_cfg/cci_param_if.cpp.o
+[ 15%] Building CXX object scc/third_party/cci-1.0.0/CMakeFiles/cciapi.dir/cci_cfg/cci_param_untyped_handle.cpp.o
+[ 15%] Building CXX object scc/third_party/cci-1.0.0/CMakeFiles/cciapi.dir/cci_cfg/cci_param_untyped.cpp.o
+[ 16%] Building CXX object scc/third_party/cci-1.0.0/CMakeFiles/cciapi.dir/cci_core/cci_value.cpp.o
+[ 17%] Building CXX object scc/third_party/cci-1.0.0/CMakeFiles/cciapi.dir/cci_core/cci_name_gen.cpp.o
+[ 18%] Building CXX object scc/third_party/cci-1.0.0/CMakeFiles/cciapi.dir/cci_cfg/cci_report_handler.cpp.o
+[ 19%] Building CXX object scc/third_party/cci-1.0.0/CMakeFiles/cciapi.dir/cci_core/cci_value_converter.cpp.o
+[ 20%] Building CXX object scc/third_party/cci-1.0.0/CMakeFiles/cciapi.dir/cci_utils/broker.cpp.o
+[ 21%] Building CXX object scc/third_party/cci-1.0.0/CMakeFiles/cciapi.dir/cci_cfg/cci_broker_handle.cpp.o
+[ 22%] Building CXX object scc/third_party/cci-1.0.0/CMakeFiles/cciapi.dir/cci_utils/consuming_broker.cpp.o
+[ 23%] Linking C static library libfstapi.a
+[ 23%] Built target fstapi
+[ 24%] Linking CXX static library libcciapi.a
+[ 24%] Built target cciapi
+[ 25%] Linking CXX static library libscc-util.a
+[ 25%] Built target scc-util
+[ 26%] Building CXX object tests/io-redirector/CMakeFiles/io_redirector.dir/test.cpp.o
+[ 26%] Linking CXX static library libscv-tr.a
+[ 26%] Built target scv-tr
+[ 27%] Linking CXX executable io_redirector
+[ 27%] Built target io_redirector
+[ 28%] Linking CXX static library liblwtr.a
+[ 28%] Built target lwtr
+[ 29%] Building CXX object scc/src/sysc/CMakeFiles/scc-sysc.dir/scc/utilities.cpp.o
+[ 30%] Building CXX object scc/src/sysc/CMakeFiles/scc-sysc.dir/scc/sc_logic_7.cpp.o
+[ 31%] Building CXX object scc/src/sysc/CMakeFiles/scc-sysc.dir/scc/tracer_base.cpp.o
+[ 31%] Building CXX object scc/src/sysc/CMakeFiles/scc-sysc.dir/scc/tracer.cpp.o
+[ 32%] Building CXX object scc/src/sysc/CMakeFiles/scc-sysc.dir/scc/perf_estimator.cpp.o
+[ 33%] Building CXX object scc/src/sysc/CMakeFiles/scc-sysc.dir/scc/time_n_tick.cpp.o
+[ 34%] Building CXX object scc/src/sysc/CMakeFiles/scc-sysc.dir/scc/report.cpp.o
+[ 35%] Building CXX object scc/src/sysc/CMakeFiles/scc-sysc.dir/scc/scv/scv_tr_mtc.cpp.o
+[ 36%] Building CXX object scc/src/sysc/CMakeFiles/scc-sysc.dir/scc/value_registry.cpp.o
+[ 37%] Building CXX object scc/src/sysc/CMakeFiles/scc-sysc.dir/scc/mt19937_rng.cpp.o
+[ 39%] Building CXX object scc/src/sysc/CMakeFiles/scc-sysc.dir/scc/scv/scv_tr_ftr.cpp.o
+[ 39%] Building CXX object scc/src/sysc/CMakeFiles/scc-sysc.dir/scc/ordered_semaphore.cpp.o
+[ 39%] Building CXX object scc/src/sysc/CMakeFiles/scc-sysc.dir/scc/scv/scv_tr_lz4.cpp.o
+[ 40%] Building CXX object scc/src/sysc/CMakeFiles/scc-sysc.dir/scc/vcd_push_trace.cpp.o
+[ 41%] Building CXX object scc/src/sysc/CMakeFiles/scc-sysc.dir/tlm/scc/scv/tlm_recorder.cpp.o
+[ 42%] Building CXX object scc/src/sysc/CMakeFiles/scc-sysc.dir/tlm/scc/pe/parallel_pe.cpp.o
+[ 43%] Building CXX object scc/src/sysc/CMakeFiles/scc-sysc.dir/scc/vcd_pull_trace.cpp.o
+[ 44%] Building CXX object scc/src/sysc/CMakeFiles/scc-sysc.dir/scc/hierarchy_dumper.cpp.o
+[ 45%] Building CXX object scc/src/sysc/CMakeFiles/scc-sysc.dir/scc/cci_broker.cpp.o
+[ 46%] Building CXX object scc/src/sysc/CMakeFiles/scc-sysc.dir/scc/configurer.cpp.o
+[ 46%] Building CXX object scc/src/sysc/CMakeFiles/scc-sysc.dir/scc/configurable_tracer.cpp.o
+[ 47%] Building CXX object scc/src/sysc/CMakeFiles/scc-sysc.dir/scc/sc_thread_pool.cpp.o
+[ 48%] Building CXX object scc/src/sysc/CMakeFiles/scc-sysc.dir/tlm/scc/lwtr/tlm2_lwtr.cpp.o
+[ 50%] Building CXX object scc/src/sysc/CMakeFiles/scc-sysc.dir/scc/signal_opt_ports.cpp.o
+[ 51%] Building CXX object scc/src/sysc/CMakeFiles/scc-sysc.dir/scc/scv/scv_tr_compressed.cpp.o
+[ 52%] Building CXX object scc/src/sysc/CMakeFiles/scc-sysc.dir/scc/fst_trace.cpp.o
+[ 53%] Building CXX object scc/src/sysc/CMakeFiles/scc-sysc.dir/scc/vcd_mt_trace.cpp.o
+[ 54%] Building CXX object scc/src/sysc/CMakeFiles/scc-sysc.dir/scc/scv/scv_tr_sqlite.cpp.o
+[ 55%] Building C object scc/src/sysc/CMakeFiles/scc-sysc.dir/__/__/third_party/sqlite3/sqlite3.c.o
+/scratch/eyck/workarea/MINRES/SystemC-Components-Test/scc/third_party/cci-1.0.0/cci_core/cci_callback.h:147:7: warning: Use of memory after it is freed [clang-analyzer-cplusplus.NewDelete]
+ m_cb->release();
+ ^
+/scratch/eyck/workarea/MINRES/SystemC-Components-Test/scc/src/sysc/scc/configurer.cpp:524:13: note: Assuming 'attr' is non-null
+ if(auto attr = dynamic_cast*>(base_attr)) {
+ ^~~~
+/scratch/eyck/workarea/MINRES/SystemC-Components-Test/scc/src/sysc/scc/configurer.cpp:524:5: note: Taking true branch
+ if(auto attr = dynamic_cast*>(base_attr)) {
+ ^
+/scratch/eyck/workarea/MINRES/SystemC-Components-Test/scc/src/sysc/scc/configurer.cpp:532:9: note: Calling 'cci_param_typed::register_post_write_callback'
+ par->register_post_write_callback(params.back().first);
+ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+/scratch/eyck/workarea/MINRES/SystemC-Components-Test/scc/third_party/cci-1.0.0/cci_cfg/cci_param_typed.h:874:1: note: Calling '~cci_callback_untyped_handle'
+CCI_PARAM_TYPED_CALLBACK_IMPL_(post_write)
+^
+/scratch/eyck/workarea/MINRES/SystemC-Components-Test/scc/third_party/cci-1.0.0/cci_cfg/cci_param_typed.h:855:58: note: expanded from macro 'CCI_PARAM_TYPED_CALLBACK_IMPL_'
+ return cci_param_untyped::register_##name##_callback(cb, get_originator());\
+ ^
+/scratch/eyck/workarea/MINRES/SystemC-Components-Test/scc/third_party/cci-1.0.0/cci_core/cci_callback.h:220:9: note: Field 'm_cb' is non-null
+ if (m_cb)
+ ^
+/scratch/eyck/workarea/MINRES/SystemC-Components-Test/scc/third_party/cci-1.0.0/cci_core/cci_callback.h:220:5: note: Taking true branch
+ if (m_cb)
+ ^
+/scratch/eyck/workarea/MINRES/SystemC-Components-Test/scc/third_party/cci-1.0.0/cci_core/cci_callback.h:221:7: note: Calling 'callback_generic_adapt::release'
+ m_cb->release();
+ ^~~~~~~~~~~~~~~
+/scratch/eyck/workarea/MINRES/SystemC-Components-Test/scc/third_party/cci-1.0.0/cci_core/cci_callback_impl.h:218:32: note: Assuming the condition is true
+ virtual void release() { if (!--m_refcnt) delete this; }
+ ^~~~~~~~~~~
+/scratch/eyck/workarea/MINRES/SystemC-Components-Test/scc/third_party/cci-1.0.0/cci_core/cci_callback_impl.h:218:28: note: Taking true branch
+ virtual void release() { if (!--m_refcnt) delete this; }
+ ^
+/scratch/eyck/workarea/MINRES/SystemC-Components-Test/scc/third_party/cci-1.0.0/cci_core/cci_callback_impl.h:218:45: note: Memory is released
+ virtual void release() { if (!--m_refcnt) delete this; }
+ ^~~~~~~~~~~
+/scratch/eyck/workarea/MINRES/SystemC-Components-Test/scc/third_party/cci-1.0.0/cci_core/cci_callback.h:221:7: note: Returning; memory was released
+ m_cb->release();
+ ^~~~~~~~~~~~~~~
+/scratch/eyck/workarea/MINRES/SystemC-Components-Test/scc/third_party/cci-1.0.0/cci_cfg/cci_param_typed.h:874:1: note: Returning from '~cci_callback_untyped_handle'
+CCI_PARAM_TYPED_CALLBACK_IMPL_(post_write)
+^
+/scratch/eyck/workarea/MINRES/SystemC-Components-Test/scc/third_party/cci-1.0.0/cci_cfg/cci_param_typed.h:855:58: note: expanded from macro 'CCI_PARAM_TYPED_CALLBACK_IMPL_'
+ return cci_param_untyped::register_##name##_callback(cb, get_originator());\
+ ^
+/scratch/eyck/workarea/MINRES/SystemC-Components-Test/scc/src/sysc/scc/configurer.cpp:532:9: note: Returning; memory was released
+ par->register_post_write_callback(params.back().first);
+ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+/scratch/eyck/workarea/MINRES/SystemC-Components-Test/scc/src/sysc/scc/configurer.cpp:532:57: note: Calling '~cci_callback'
+ par->register_post_write_callback(params.back().first);
+ ^
+/scratch/eyck/workarea/MINRES/SystemC-Components-Test/scc/third_party/cci-1.0.0/cci_core/cci_callback.h:146:9: note: Field 'm_cb' is non-null
+ if (m_cb)
+ ^
+/scratch/eyck/workarea/MINRES/SystemC-Components-Test/scc/third_party/cci-1.0.0/cci_core/cci_callback.h:146:5: note: Taking true branch
+ if (m_cb)
+ ^
+/scratch/eyck/workarea/MINRES/SystemC-Components-Test/scc/third_party/cci-1.0.0/cci_core/cci_callback.h:147:7: note: Use of memory after it is freed
+ m_cb->release();
+ ^~~~
+/scratch/eyck/workarea/MINRES/SystemC-Components-Test/scc/third_party/rapidjson-1.1/include/rapidjson/internal/dtoa.h:39:9: warning: The expression is an uninitialized value. The computed value will also be garbage [clang-analyzer-core.uninitialized.Assign]
+ buffer[len - 1]--;
+ ^
+/scratch/eyck/workarea/MINRES/SystemC-Components-Test/scc/src/sysc/scc/configurer.cpp:134:1: note: Calling 'PrettyWriter::Double'
+FDECL(float, Double)
+^
+/scratch/eyck/workarea/MINRES/SystemC-Components-Test/scc/src/sysc/scc/configurer.cpp:125:9: note: expanded from macro 'FDECL'
+ writer.FUNC(value); \
+ ^~~~~~~~~~~~~~~~~~
+/scratch/eyck/workarea/MINRES/SystemC-Components-Test/scc/third_party/rapidjson-1.1/include/rapidjson/prettywriter.h:101:84: note: Calling 'Writer::WriteDouble'
+ bool Double(double d) { PrettyPrefix(kNumberType); return Base::EndValue(Base::WriteDouble(d)); }
+ ^~~~~~~~~~~~~~~~~~~~
+/scratch/eyck/workarea/MINRES/SystemC-Components-Test/scc/third_party/rapidjson-1.1/include/rapidjson/writer.h:350:13: note: Assuming the condition is false
+ if (internal::Double(d).IsNanOrInf()) {
+ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+/scratch/eyck/workarea/MINRES/SystemC-Components-Test/scc/third_party/rapidjson-1.1/include/rapidjson/writer.h:350:9: note: Taking false branch
+ if (internal::Double(d).IsNanOrInf()) {
+ ^
+/scratch/eyck/workarea/MINRES/SystemC-Components-Test/scc/third_party/rapidjson-1.1/include/rapidjson/writer.h:370:21: note: Calling 'dtoa'
+ char* end = internal::dtoa(d, buffer, maxDecimalPlaces_);
+ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+/scratch/eyck/workarea/MINRES/SystemC-Components-Test/scc/third_party/rapidjson-1.1/include/rapidjson/internal/dtoa.h:221:22: note: Assuming 'maxDecimalPlaces' is >= 1
+ RAPIDJSON_ASSERT(maxDecimalPlaces >= 1);
+ ^
+/scratch/eyck/workarea/MINRES/SystemC-Components-Test/scc/third_party/rapidjson-1.1/include/rapidjson/error/../rapidjson.h:437:36: note: expanded from macro 'RAPIDJSON_ASSERT'
+#define RAPIDJSON_ASSERT(x) assert(x)
+ ^
+/usr/include/assert.h:90:27: note: expanded from macro 'assert'
+ (static_cast (expr) \
+ ^~~~
+/scratch/eyck/workarea/MINRES/SystemC-Components-Test/scc/third_party/rapidjson-1.1/include/rapidjson/internal/dtoa.h:221:5: note: '?' condition is true
+ RAPIDJSON_ASSERT(maxDecimalPlaces >= 1);
+ ^
+/scratch/eyck/workarea/MINRES/SystemC-Components-Test/scc/third_party/rapidjson-1.1/include/rapidjson/error/../rapidjson.h:437:29: note: expanded from macro 'RAPIDJSON_ASSERT'
+#define RAPIDJSON_ASSERT(x) assert(x)
+ ^
+/usr/include/assert.h:90:7: note: expanded from macro 'assert'
+ (static_cast (expr) \
+ ^
+/scratch/eyck/workarea/MINRES/SystemC-Components-Test/scc/third_party/rapidjson-1.1/include/rapidjson/internal/dtoa.h:223:9: note: Assuming the condition is false
+ if (d.IsZero()) {
+ ^~~~~~~~~~
+/scratch/eyck/workarea/MINRES/SystemC-Components-Test/scc/third_party/rapidjson-1.1/include/rapidjson/internal/dtoa.h:223:5: note: Taking false branch
+ if (d.IsZero()) {
+ ^
+/scratch/eyck/workarea/MINRES/SystemC-Components-Test/scc/third_party/rapidjson-1.1/include/rapidjson/internal/dtoa.h:232:13: note: Assuming 'value' is >= 0
+ if (value < 0) {
+ ^~~~~~~~~
+/scratch/eyck/workarea/MINRES/SystemC-Components-Test/scc/third_party/rapidjson-1.1/include/rapidjson/internal/dtoa.h:232:9: note: Taking false branch
+ if (value < 0) {
+ ^
+/scratch/eyck/workarea/MINRES/SystemC-Components-Test/scc/third_party/rapidjson-1.1/include/rapidjson/internal/dtoa.h:237:9: note: Calling 'Grisu2'
+ Grisu2(value, buffer, &length, &K);
+ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+/scratch/eyck/workarea/MINRES/SystemC-Components-Test/scc/third_party/rapidjson-1.1/include/rapidjson/internal/dtoa.h:127:5: note: Calling 'DigitGen'
+ DigitGen(W, Wp, Wp.f - Wm.f, buffer, length, K);
+ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+/scratch/eyck/workarea/MINRES/SystemC-Components-Test/scc/third_party/rapidjson-1.1/include/rapidjson/internal/dtoa.h:73:5: note: Loop condition is true. Entering loop body
+ while (kappa > 0) {
+ ^
+/scratch/eyck/workarea/MINRES/SystemC-Components-Test/scc/third_party/rapidjson-1.1/include/rapidjson/internal/dtoa.h:75:9: note: Control jumps to 'case 1:' at line 84
+ switch (kappa) {
+ ^
+/scratch/eyck/workarea/MINRES/SystemC-Components-Test/scc/third_party/rapidjson-1.1/include/rapidjson/internal/dtoa.h:84:61: note: Execution continues on line 87
+ case 1: d = p1; p1 = 0; break;
+ ^
+/scratch/eyck/workarea/MINRES/SystemC-Components-Test/scc/third_party/rapidjson-1.1/include/rapidjson/internal/dtoa.h:87:13: note: Assuming 'd' is 0
+ if (d || *len)
+ ^
+/scratch/eyck/workarea/MINRES/SystemC-Components-Test/scc/third_party/rapidjson-1.1/include/rapidjson/internal/dtoa.h:87:13: note: Left side of '||' is false
+/scratch/eyck/workarea/MINRES/SystemC-Components-Test/scc/third_party/rapidjson-1.1/include/rapidjson/internal/dtoa.h:87:9: note: Taking false branch
+ if (d || *len)
+ ^
+/scratch/eyck/workarea/MINRES/SystemC-Components-Test/scc/third_party/rapidjson-1.1/include/rapidjson/internal/dtoa.h:91:13: note: Assuming 'tmp' is <= 'delta'
+ if (tmp <= delta) {
+ ^~~~~~~~~~~~
+/scratch/eyck/workarea/MINRES/SystemC-Components-Test/scc/third_party/rapidjson-1.1/include/rapidjson/internal/dtoa.h:91:9: note: Taking true branch
+ if (tmp <= delta) {
+ ^
+/scratch/eyck/workarea/MINRES/SystemC-Components-Test/scc/third_party/rapidjson-1.1/include/rapidjson/internal/dtoa.h:93:13: note: Calling 'GrisuRound'
+ GrisuRound(buffer, *len, delta, tmp, kPow10[kappa] << -one.e, wp_w.f);
+ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+/scratch/eyck/workarea/MINRES/SystemC-Components-Test/scc/third_party/rapidjson-1.1/include/rapidjson/internal/dtoa.h:36:12: note: Assuming 'rest' is < 'wp_w'
+ while (rest < wp_w && delta - rest >= ten_kappa &&
+ ^~~~~~~~~~~
+/scratch/eyck/workarea/MINRES/SystemC-Components-Test/scc/third_party/rapidjson-1.1/include/rapidjson/internal/dtoa.h:36:12: note: Left side of '&&' is true
+/scratch/eyck/workarea/MINRES/SystemC-Components-Test/scc/third_party/rapidjson-1.1/include/rapidjson/internal/dtoa.h:36:27: note: Assuming the condition is true
+ while (rest < wp_w && delta - rest >= ten_kappa &&
+ ^~~~~~~~~~~~~~~~~~~~~~~~~
+/scratch/eyck/workarea/MINRES/SystemC-Components-Test/scc/third_party/rapidjson-1.1/include/rapidjson/internal/dtoa.h:36:12: note: Left side of '&&' is true
+ while (rest < wp_w && delta - rest >= ten_kappa &&
+ ^
+/scratch/eyck/workarea/MINRES/SystemC-Components-Test/scc/third_party/rapidjson-1.1/include/rapidjson/internal/dtoa.h:37:13: note: Assuming the condition is true
+ (rest + ten_kappa < wp_w || /// closer
+ ^~~~~~~~~~~~~~~~~~~~~~~
+/scratch/eyck/workarea/MINRES/SystemC-Components-Test/scc/third_party/rapidjson-1.1/include/rapidjson/internal/dtoa.h:37:37: note: Left side of '||' is true
+ (rest + ten_kappa < wp_w || /// closer
+ ^
+/scratch/eyck/workarea/MINRES/SystemC-Components-Test/scc/third_party/rapidjson-1.1/include/rapidjson/internal/dtoa.h:39:9: note: The expression is an uninitialized value. The computed value will also be garbage
+ buffer[len - 1]--;
+ ^~~~~~~~~~~~~~~
+/scratch/eyck/workarea/MINRES/SystemC-Components-Test/scc/third_party/rapidjson-1.1/include/rapidjson/writer.h:373:13: warning: 2nd function call argument is an uninitialized value [clang-analyzer-core.CallAndMessage]
+ PutUnsafe(*os_, static_cast(*p));
+ ^
+/scratch/eyck/workarea/MINRES/SystemC-Components-Test/scc/src/sysc/scc/configurer.cpp:134:1: note: Calling 'PrettyWriter::Double'
+FDECL(float, Double)
+^
+/scratch/eyck/workarea/MINRES/SystemC-Components-Test/scc/src/sysc/scc/configurer.cpp:125:9: note: expanded from macro 'FDECL'
+ writer.FUNC(value); \
+ ^~~~~~~~~~~~~~~~~~
+/scratch/eyck/workarea/MINRES/SystemC-Components-Test/scc/third_party/rapidjson-1.1/include/rapidjson/prettywriter.h:101:84: note: Calling 'Writer::WriteDouble'
+ bool Double(double d) { PrettyPrefix(kNumberType); return Base::EndValue(Base::WriteDouble(d)); }
+ ^~~~~~~~~~~~~~~~~~~~
+/scratch/eyck/workarea/MINRES/SystemC-Components-Test/scc/third_party/rapidjson-1.1/include/rapidjson/writer.h:350:13: note: Assuming the condition is false
+ if (internal::Double(d).IsNanOrInf()) {
+ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+/scratch/eyck/workarea/MINRES/SystemC-Components-Test/scc/third_party/rapidjson-1.1/include/rapidjson/writer.h:350:9: note: Taking false branch
+ if (internal::Double(d).IsNanOrInf()) {
+ ^
+/scratch/eyck/workarea/MINRES/SystemC-Components-Test/scc/third_party/rapidjson-1.1/include/rapidjson/writer.h:370:21: note: Calling 'dtoa'
+ char* end = internal::dtoa(d, buffer, maxDecimalPlaces_);
+ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+/scratch/eyck/workarea/MINRES/SystemC-Components-Test/scc/third_party/rapidjson-1.1/include/rapidjson/internal/dtoa.h:221:22: note: Assuming 'maxDecimalPlaces' is >= 1
+ RAPIDJSON_ASSERT(maxDecimalPlaces >= 1);
+ ^
+/scratch/eyck/workarea/MINRES/SystemC-Components-Test/scc/third_party/rapidjson-1.1/include/rapidjson/error/../rapidjson.h:437:36: note: expanded from macro 'RAPIDJSON_ASSERT'
+#define RAPIDJSON_ASSERT(x) assert(x)
+ ^
+/usr/include/assert.h:90:27: note: expanded from macro 'assert'
+ (static_cast (expr) \
+ ^~~~
+/scratch/eyck/workarea/MINRES/SystemC-Components-Test/scc/third_party/rapidjson-1.1/include/rapidjson/internal/dtoa.h:221:5: note: '?' condition is true
+ RAPIDJSON_ASSERT(maxDecimalPlaces >= 1);
+ ^
+/scratch/eyck/workarea/MINRES/SystemC-Components-Test/scc/third_party/rapidjson-1.1/include/rapidjson/error/../rapidjson.h:437:29: note: expanded from macro 'RAPIDJSON_ASSERT'
+#define RAPIDJSON_ASSERT(x) assert(x)
+ ^
+/usr/include/assert.h:90:7: note: expanded from macro 'assert'
+ (static_cast (expr) \
+ ^
+/scratch/eyck/workarea/MINRES/SystemC-Components-Test/scc/third_party/rapidjson-1.1/include/rapidjson/internal/dtoa.h:223:9: note: Assuming the condition is false
+ if (d.IsZero()) {
+ ^~~~~~~~~~
+/scratch/eyck/workarea/MINRES/SystemC-Components-Test/scc/third_party/rapidjson-1.1/include/rapidjson/internal/dtoa.h:223:5: note: Taking false branch
+ if (d.IsZero()) {
+ ^
+/scratch/eyck/workarea/MINRES/SystemC-Components-Test/scc/third_party/rapidjson-1.1/include/rapidjson/internal/dtoa.h:232:13: note: Assuming 'value' is >= 0
+ if (value < 0) {
+ ^~~~~~~~~
+/scratch/eyck/workarea/MINRES/SystemC-Components-Test/scc/third_party/rapidjson-1.1/include/rapidjson/internal/dtoa.h:232:9: note: Taking false branch
+ if (value < 0) {
+ ^
+/scratch/eyck/workarea/MINRES/SystemC-Components-Test/scc/third_party/rapidjson-1.1/include/rapidjson/internal/dtoa.h:237:9: note: Calling 'Grisu2'
+ Grisu2(value, buffer, &length, &K);
+ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+/scratch/eyck/workarea/MINRES/SystemC-Components-Test/scc/third_party/rapidjson-1.1/include/rapidjson/internal/dtoa.h:127:5: note: Calling 'DigitGen'
+ DigitGen(W, Wp, Wp.f - Wm.f, buffer, length, K);
+ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+/scratch/eyck/workarea/MINRES/SystemC-Components-Test/scc/third_party/rapidjson-1.1/include/rapidjson/internal/dtoa.h:73:5: note: Loop condition is true. Entering loop body
+ while (kappa > 0) {
+ ^
+/scratch/eyck/workarea/MINRES/SystemC-Components-Test/scc/third_party/rapidjson-1.1/include/rapidjson/internal/dtoa.h:75:9: note: Control jumps to 'case 9:' at line 76
+ switch (kappa) {
+ ^
+/scratch/eyck/workarea/MINRES/SystemC-Components-Test/scc/third_party/rapidjson-1.1/include/rapidjson/internal/dtoa.h:76:61: note: Execution continues on line 87
+ case 9: d = p1 / 100000000; p1 %= 100000000; break;
+ ^
+/scratch/eyck/workarea/MINRES/SystemC-Components-Test/scc/third_party/rapidjson-1.1/include/rapidjson/internal/dtoa.h:87:13: note: Assuming 'd' is 0
+ if (d || *len)
+ ^
+/scratch/eyck/workarea/MINRES/SystemC-Components-Test/scc/third_party/rapidjson-1.1/include/rapidjson/internal/dtoa.h:87:13: note: Left side of '||' is false
+/scratch/eyck/workarea/MINRES/SystemC-Components-Test/scc/third_party/rapidjson-1.1/include/rapidjson/internal/dtoa.h:87:9: note: Taking false branch
+ if (d || *len)
+ ^
+/scratch/eyck/workarea/MINRES/SystemC-Components-Test/scc/third_party/rapidjson-1.1/include/rapidjson/internal/dtoa.h:91:13: note: Assuming 'tmp' is <= 'delta'
+ if (tmp <= delta) {
+ ^~~~~~~~~~~~
+/scratch/eyck/workarea/MINRES/SystemC-Components-Test/scc/third_party/rapidjson-1.1/include/rapidjson/internal/dtoa.h:91:9: note: Taking true branch
+ if (tmp <= delta) {
+ ^
+/scratch/eyck/workarea/MINRES/SystemC-Components-Test/scc/third_party/rapidjson-1.1/include/rapidjson/internal/dtoa.h:93:13: note: Calling 'GrisuRound'
+ GrisuRound(buffer, *len, delta, tmp, kPow10[kappa] << -one.e, wp_w.f);
+ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+/scratch/eyck/workarea/MINRES/SystemC-Components-Test/scc/third_party/rapidjson-1.1/include/rapidjson/internal/dtoa.h:36:12: note: Assuming 'rest' is >= 'wp_w'
+ while (rest < wp_w && delta - rest >= ten_kappa &&
+ ^~~~~~~~~~~
+/scratch/eyck/workarea/MINRES/SystemC-Components-Test/scc/third_party/rapidjson-1.1/include/rapidjson/internal/dtoa.h:36:24: note: Left side of '&&' is false
+ while (rest < wp_w && delta - rest >= ten_kappa &&
+ ^
+/scratch/eyck/workarea/MINRES/SystemC-Components-Test/scc/third_party/rapidjson-1.1/include/rapidjson/internal/dtoa.h:93:13: note: Returning from 'GrisuRound'
+ GrisuRound(buffer, *len, delta, tmp, kPow10[kappa] << -one.e, wp_w.f);
+ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+/scratch/eyck/workarea/MINRES/SystemC-Components-Test/scc/third_party/rapidjson-1.1/include/rapidjson/internal/dtoa.h:127:5: note: Returning from 'DigitGen'
+ DigitGen(W, Wp, Wp.f - Wm.f, buffer, length, K);
+ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+/scratch/eyck/workarea/MINRES/SystemC-Components-Test/scc/third_party/rapidjson-1.1/include/rapidjson/internal/dtoa.h:237:9: note: Returning from 'Grisu2'
+ Grisu2(value, buffer, &length, &K);
+ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+/scratch/eyck/workarea/MINRES/SystemC-Components-Test/scc/third_party/rapidjson-1.1/include/rapidjson/internal/dtoa.h:238:16: note: Calling 'Prettify'
+ return Prettify(buffer, length, K, maxDecimalPlaces);
+ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+/scratch/eyck/workarea/MINRES/SystemC-Components-Test/scc/third_party/rapidjson-1.1/include/rapidjson/internal/dtoa.h:157:9: note: Assuming 'k' is < 0
+ if (0 <= k && kk <= 21) {
+ ^~~~~~
+/scratch/eyck/workarea/MINRES/SystemC-Components-Test/scc/third_party/rapidjson-1.1/include/rapidjson/internal/dtoa.h:157:16: note: Left side of '&&' is false
+ if (0 <= k && kk <= 21) {
+ ^
+/scratch/eyck/workarea/MINRES/SystemC-Components-Test/scc/third_party/rapidjson-1.1/include/rapidjson/internal/dtoa.h:165:18: note: 'kk' is <= 0
+ else if (0 < kk && kk <= 21) {
+ ^~
+/scratch/eyck/workarea/MINRES/SystemC-Components-Test/scc/third_party/rapidjson-1.1/include/rapidjson/internal/dtoa.h:165:21: note: Left side of '&&' is false
+ else if (0 < kk && kk <= 21) {
+ ^
+/scratch/eyck/workarea/MINRES/SystemC-Components-Test/scc/third_party/rapidjson-1.1/include/rapidjson/internal/dtoa.h:180:14: note: Assuming the condition is true
+ else if (-6 < kk && kk <= 0) {
+ ^~~~~~~
+/scratch/eyck/workarea/MINRES/SystemC-Components-Test/scc/third_party/rapidjson-1.1/include/rapidjson/internal/dtoa.h:180:14: note: Left side of '&&' is true
+/scratch/eyck/workarea/MINRES/SystemC-Components-Test/scc/third_party/rapidjson-1.1/include/rapidjson/internal/dtoa.h:180:25: note: 'kk' is <= 0
+ else if (-6 < kk && kk <= 0) {
+ ^~
+/scratch/eyck/workarea/MINRES/SystemC-Components-Test/scc/third_party/rapidjson-1.1/include/rapidjson/internal/dtoa.h:180:10: note: Taking true branch
+ else if (-6 < kk && kk <= 0) {
+ ^
+/scratch/eyck/workarea/MINRES/SystemC-Components-Test/scc/third_party/rapidjson-1.1/include/rapidjson/internal/dtoa.h:186:25: note: Assuming 'i' is >= 'offset'
+ for (int i = 2; i < offset; i++)
+ ^~~~~~~~~~
+/scratch/eyck/workarea/MINRES/SystemC-Components-Test/scc/third_party/rapidjson-1.1/include/rapidjson/internal/dtoa.h:186:9: note: Loop condition is false. Execution continues on line 188
+ for (int i = 2; i < offset; i++)
+ ^
+/scratch/eyck/workarea/MINRES/SystemC-Components-Test/scc/third_party/rapidjson-1.1/include/rapidjson/internal/dtoa.h:188:13: note: Assuming the condition is false
+ if (length - kk > maxDecimalPlaces) {
+ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+/scratch/eyck/workarea/MINRES/SystemC-Components-Test/scc/third_party/rapidjson-1.1/include/rapidjson/internal/dtoa.h:188:9: note: Taking false branch
+ if (length - kk > maxDecimalPlaces) {
+ ^
+/scratch/eyck/workarea/MINRES/SystemC-Components-Test/scc/third_party/rapidjson-1.1/include/rapidjson/internal/dtoa.h:238:16: note: Returning from 'Prettify'
+ return Prettify(buffer, length, K, maxDecimalPlaces);
+ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+/scratch/eyck/workarea/MINRES/SystemC-Components-Test/scc/third_party/rapidjson-1.1/include/rapidjson/writer.h:370:21: note: Returning from 'dtoa'
+ char* end = internal::dtoa(d, buffer, maxDecimalPlaces_);
+ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+/scratch/eyck/workarea/MINRES/SystemC-Components-Test/scc/third_party/rapidjson-1.1/include/rapidjson/writer.h:372:32: note: Assuming 'p' is not equal to 'end'
+ for (char* p = buffer; p != end; ++p)
+ ^~~~~~~~
+/scratch/eyck/workarea/MINRES/SystemC-Components-Test/scc/third_party/rapidjson-1.1/include/rapidjson/writer.h:372:9: note: Loop condition is true. Entering loop body
+ for (char* p = buffer; p != end; ++p)
+ ^
+/scratch/eyck/workarea/MINRES/SystemC-Components-Test/scc/third_party/rapidjson-1.1/include/rapidjson/writer.h:372:32: note: Assuming 'p' is not equal to 'end'
+ for (char* p = buffer; p != end; ++p)
+ ^~~~~~~~
+/scratch/eyck/workarea/MINRES/SystemC-Components-Test/scc/third_party/rapidjson-1.1/include/rapidjson/writer.h:372:9: note: Loop condition is true. Entering loop body
+ for (char* p = buffer; p != end; ++p)
+ ^
+/scratch/eyck/workarea/MINRES/SystemC-Components-Test/scc/third_party/rapidjson-1.1/include/rapidjson/writer.h:372:32: note: Assuming 'p' is not equal to 'end'
+ for (char* p = buffer; p != end; ++p)
+ ^~~~~~~~
+/scratch/eyck/workarea/MINRES/SystemC-Components-Test/scc/third_party/rapidjson-1.1/include/rapidjson/writer.h:372:9: note: Loop condition is true. Entering loop body
+ for (char* p = buffer; p != end; ++p)
+ ^
+/scratch/eyck/workarea/MINRES/SystemC-Components-Test/scc/third_party/rapidjson-1.1/include/rapidjson/writer.h:373:13: note: 2nd function call argument is an uninitialized value
+ PutUnsafe(*os_, static_cast(*p));
+ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+[ 56%] Linking CXX static library libscc-sysc.a
+[ 56%] Built target scc-sysc
+[ 57%] Building CXX object tests/configuration/CMakeFiles/cci-example.dir/sc_main.cpp.o
+[ 57%] Building CXX object tests/configurer/CMakeFiles/configurer.dir/sc_main.cpp.o
+[ 59%] Building CXX object scc/third_party/axi_chi/CMakeFiles/tlm-interfaces.dir/chi/pe/chi_rn_initiator.cpp.o
+[ 59%] Building CXX object scc/third_party/axi_chi/CMakeFiles/tlm-interfaces.dir/chi/chi_tlm.cpp.o
+[ 60%] Building CXX object scc/third_party/axi_chi/CMakeFiles/tlm-interfaces.dir/chi/lwtr/chi_lwtr.cpp.o
+[ 61%] Building CXX object scc/third_party/axi_chi/CMakeFiles/tlm-interfaces.dir/axi/fsm/base.cpp.o
+[ 62%] Building CXX object scc/third_party/axi_chi/CMakeFiles/tlm-interfaces.dir/axi/axi_tlm.cpp.o
+[ 63%] Building CXX object scc/third_party/axi_chi/CMakeFiles/tlm-interfaces.dir/axi/pe/ace_target_pe.cpp.o
+[ 63%] Building CXX object scc/third_party/axi_chi/CMakeFiles/tlm-interfaces.dir/axi/pe/axi_target_pe.cpp.o
+[ 64%] Building CXX object scc/third_party/axi_chi/CMakeFiles/tlm-interfaces.dir/axi/pe/axi_initiator.cpp.o
+[ 65%] Building CXX object scc/third_party/axi_chi/CMakeFiles/tlm-interfaces.dir/axi/pe/reordering_target.cpp.o
+[ 66%] Building CXX object scc/third_party/axi_chi/CMakeFiles/tlm-interfaces.dir/axi/pe/simple_initiator.cpp.o
+[ 67%] Building CXX object scc/third_party/axi_chi/CMakeFiles/tlm-interfaces.dir/axi/scv/axi_ace_scv.cpp.o
+[ 70%] Building CXX object scc/third_party/axi_chi/CMakeFiles/tlm-interfaces.dir/axi/checker/ace_protocol.cpp.o
+[ 70%] Building CXX object scc/third_party/axi_chi/CMakeFiles/tlm-interfaces.dir/axi/checker/axi_protocol.cpp.o
+[ 70%] Building CXX object scc/third_party/axi_chi/CMakeFiles/tlm-interfaces.dir/axi/lwtr/axi_ace_lwtr.cpp.o
+[ 71%] Building CXX object scc/third_party/axi_chi/CMakeFiles/tlm-interfaces.dir/axi/pe/ordered_target.cpp.o
+[ 72%] Linking CXX executable configurer
+[ 72%] Built target configurer
+[ 73%] Linking CXX executable cci-example
+[ 73%] Built target cci-example
+[ 74%] Linking CXX static library libtlm-interfaces.a
+[ 74%] Built target tlm-interfaces
+[ 74%] Building CXX object scc/src/bus_interfaces/CMakeFiles/busses.dir/ahb/ahb_tlm.cpp.o
+[ 75%] Building CXX object scc/src/bus_interfaces/CMakeFiles/busses.dir/ahb/pin/initiator.cpp.o
+[ 76%] Building CXX object scc/src/bus_interfaces/CMakeFiles/busses.dir/ahb/pe/ahb_initiator.cpp.o
+[ 77%] Building CXX object scc/src/bus_interfaces/CMakeFiles/busses.dir/apb/pe/apb_initiator.cpp.o
+[ 78%] Building CXX object scc/src/bus_interfaces/CMakeFiles/busses.dir/apb/pe/apb_target.cpp.o
+[ 79%] Building CXX object scc/src/bus_interfaces/CMakeFiles/busses.dir/axi/axi_initiator.cpp.o
+[ 80%] Building CXX object scc/src/bus_interfaces/CMakeFiles/busses.dir/axi/axi_target.cpp.o
+[ 81%] Building CXX object scc/src/bus_interfaces/CMakeFiles/busses.dir/ahb/pe/ahb_target.cpp.o
+[ 82%] Building CXX object scc/src/bus_interfaces/CMakeFiles/busses.dir/ahb/pin/target.cpp.o
+[ 82%] Linking CXX static library libbusses.a
+[ 82%] Built target busses
+[ 83%] Linking CXX shared library libscc_shared.so
+[ 84%] Building CXX object src/CMakeFiles/test_util.dir/factory.cpp.o
+[ 85%] Linking CXX static library libtest_util.a
+[ 85%] Built target test_util
+[ 86%] Building CXX object tests/ahb_pin_level/CMakeFiles/ahb_pin_level.dir/bus_test.cpp.o
+[ 87%] Building CXX object tests/cci_param_restricted/CMakeFiles/cci_param_restricted.dir/test.cpp.o
+[ 88%] Building CXX object tests/ahb_pin_level/CMakeFiles/ahb_pin_level.dir/__/__/src/sc_main.cpp.o
+[ 89%] Building CXX object tests/cci_param_restricted/CMakeFiles/cci_param_restricted.dir/__/__/src/sc_main.cpp.o
+[ 90%] Building CXX object tests/ordered_semaphore/CMakeFiles/ordered_semaphore.dir/test.cpp.o
+[ 91%] Building CXX object tests/ordered_semaphore/CMakeFiles/ordered_semaphore.dir/__/__/src/sc_main.cpp.o
+[ 92%] Building CXX object tests/axi4_pin_level/CMakeFiles/axi4_pin_level.dir/narrow_burst_test.cpp.o
+[ 92%] Building CXX object tests/ace_pin_level/CMakeFiles/ace_pin_level.dir/ace_narrow_burst_test.cpp.o
+[ 93%] Building CXX object tests/axi4_pin_level/CMakeFiles/axi4_pin_level.dir/__/__/src/sc_main.cpp.o
+[ 94%] Building CXX object tests/ace_pin_level/CMakeFiles/ace_pin_level.dir/__/__/src/sc_main.cpp.o
+[ 94%] Built target scc_shared
+[ 95%] Linking CXX executable ordered_semaphore
+
+ SystemC 2.3.4-Accellera --- Jul 5 2024 07:23:11
+ Copyright (c) 1996-2022 by all Contributors,
+ ALL RIGHTS RESERVED
+
+ SystemC 2.3.4-Accellera --- Jul 5 2024 07:23:11
+ Copyright (c) 1996-2022 by all Contributors,
+ ALL RIGHTS RESERVED
+[ 95%] Built target ordered_semaphore
+[ 96%] Linking CXX executable cci_param_restricted
+
+ SystemC 2.3.4-Accellera --- Jul 5 2024 07:23:11
+ Copyright (c) 1996-2022 by all Contributors,
+ ALL RIGHTS RESERVED
+
+ SystemC 2.3.4-Accellera --- Jul 5 2024 07:23:11
+ Copyright (c) 1996-2022 by all Contributors,
+ ALL RIGHTS RESERVED
+[ 96%] Built target cci_param_restricted
+[ 97%] Linking CXX executable axi4_pin_level
+[ 98%] Linking CXX executable ace_pin_level
+
+ SystemC 2.3.4-Accellera --- Jul 5 2024 07:23:11
+ Copyright (c) 1996-2022 by all Contributors,
+ ALL RIGHTS RESERVED
+
+ SystemC 2.3.4-Accellera --- Jul 5 2024 07:23:11
+ Copyright (c) 1996-2022 by all Contributors,
+ ALL RIGHTS RESERVED
+[ 98%] Built target axi4_pin_level
+[100%] Linking CXX executable ahb_pin_level
+
+ SystemC 2.3.4-Accellera --- Jul 5 2024 07:23:11
+ Copyright (c) 1996-2022 by all Contributors,
+ ALL RIGHTS RESERVED
+
+ SystemC 2.3.4-Accellera --- Jul 5 2024 07:23:11
+ Copyright (c) 1996-2022 by all Contributors,
+ ALL RIGHTS RESERVED
+[100%] Built target ace_pin_level
+
+ SystemC 2.3.4-Accellera --- Jul 5 2024 07:23:11
+ Copyright (c) 1996-2022 by all Contributors,
+ ALL RIGHTS RESERVED
+
+ SystemC 2.3.4-Accellera --- Jul 5 2024 07:23:11
+ Copyright (c) 1996-2022 by all Contributors,
+ ALL RIGHTS RESERVED
+[100%] Built target ahb_pin_level
diff --git a/cmake-conan b/cmake-conan
new file mode 160000
index 0000000..eba63de
--- /dev/null
+++ b/cmake-conan
@@ -0,0 +1 @@
+Subproject commit eba63de908a994299731b49e8c84dc3d1da7896e
diff --git a/conanfile.txt b/conanfile.txt
new file mode 100644
index 0000000..b402279
--- /dev/null
+++ b/conanfile.txt
@@ -0,0 +1,43 @@
+[requires]
+jsoncpp/1.9.5
+yaml-cpp/0.6.3
+spdlog/1.9.2
+fmt/8.0.1
+boost/1.85.0
+gsl-lite/0.37.0
+systemc/2.3.4
+catch2/3.1.0
+zlib/1.2.11
+lz4/1.9.4
+
+[options]
+boost/*:fPIC=True
+boost/*:header_only=False
+boost/*:without_contract=True
+boost/*:without_fiber=True
+boost/*:without_graph=True
+boost/*:without_graph_parallel=True
+boost/*:without_iostreams=True
+boost/*:without_json=True
+boost/*:without_locale=True
+boost/*:without_log=True
+boost/*:without_math=True
+boost/*:without_mpi=True
+boost/*:without_nowide=True
+boost/*:without_python=True
+boost/*:without_random=True
+boost/*:without_regex=True
+boost/*:without_stacktrace=True
+boost/*:without_test=True
+boost/*:without_timer=True
+boost/*:without_type_erasure=True
+boost/*:without_wave=True
+systemc/*:shared=False
+systemc/*:disable_virtual_bind=False
+
+[generators]
+CMakeDeps
+CMakeToolchain
+
+[layout]
+cmake_layout
diff --git a/requirements.txt b/requirements.txt
index f5ad00c..a646a0e 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1 +1 @@
-conan<2.0
+conan>=2.0
diff --git a/scc b/scc
index 803a6bb..d10d5f6 160000
--- a/scc
+++ b/scc
@@ -1 +1 @@
-Subproject commit 803a6bba4d979dad70e797236f8951080648df54
+Subproject commit d10d5f6e079f7583afbc72a8d214bddd2665f13a