From 574f5cb5b2073a301c320e186ef539b655f9ac0b Mon Sep 17 00:00:00 2001 From: whitequark Date: Wed, 10 Jun 2020 15:48:40 +0000 Subject: [PATCH 1/3] Fix formatting. NFC. --- backends/cxxrtl/cxxrtl_vcd_capi.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/backends/cxxrtl/cxxrtl_vcd_capi.h b/backends/cxxrtl/cxxrtl_vcd_capi.h index 6a7fb9f47..d55afe223 100644 --- a/backends/cxxrtl/cxxrtl_vcd_capi.h +++ b/backends/cxxrtl/cxxrtl_vcd_capi.h @@ -75,8 +75,8 @@ void cxxrtl_vcd_add_from(cxxrtl_vcd vcd, cxxrtl_handle handle); // // Objects can only be scheduled before the first call to `cxxrtl_vcd_sample`. void cxxrtl_vcd_add_from_if(cxxrtl_vcd vcd, cxxrtl_handle handle, void *data, - int (*filter)(void *data, const char *name, - const struct cxxrtl_object *object)); + int (*filter)(void *data, const char *name, + const struct cxxrtl_object *object)); // Schedule all CXXRTL objects in a simulation except for memories. // From cde99e696a5d1506cbd86732eeb41fd9f1774405 Mon Sep 17 00:00:00 2001 From: whitequark Date: Wed, 10 Jun 2020 15:57:01 +0000 Subject: [PATCH 2/3] cxxrtl: fix a few gcc warnings. --- backends/cxxrtl/cxxrtl.h | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/backends/cxxrtl/cxxrtl.h b/backends/cxxrtl/cxxrtl.h index c988c9e80..c6dc0e892 100644 --- a/backends/cxxrtl/cxxrtl.h +++ b/backends/cxxrtl/cxxrtl.h @@ -608,6 +608,7 @@ struct memory { // This utterly reprehensible construct is the most reasonable way to apply a function to every element // of a parameter pack, if the elements all have different types and so cannot be cast to an initializer list. auto _ = {std::move(std::begin(init.data), std::end(init.data), data.begin() + init.offset)...}; + (void)_; } // An operator for direct memory reads. May be used at any time during the simulation. @@ -676,10 +677,8 @@ struct metadata { // In debug mode, using the wrong .as_*() function will assert. // In release mode, using the wrong .as_*() function will safely return a default value. - union { - const unsigned uint_value = 0; - const signed sint_value; - }; + const unsigned uint_value = 0; + const signed sint_value = 0; const std::string string_value = ""; const double double_value = 0.0; @@ -799,7 +798,9 @@ struct module { return deltas; } - virtual void debug_info(debug_items &items, std::string path = "") {} + virtual void debug_info(debug_items &items, std::string path = "") { + (void)items, (void)path; + } }; } // namespace cxxrtl From 6021ff727d331b04438a02675b8d9e82e6f9f1c8 Mon Sep 17 00:00:00 2001 From: whitequark Date: Wed, 10 Jun 2020 15:49:28 +0000 Subject: [PATCH 3/3] cxxrtl: restore C++11 compatibility. This is necessary to be able to build CXXRTL models via yosys-config. --- backends/cxxrtl/cxxrtl_backend.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/backends/cxxrtl/cxxrtl_backend.cc b/backends/cxxrtl/cxxrtl_backend.cc index 785625f17..ed2d3261e 100644 --- a/backends/cxxrtl/cxxrtl_backend.cc +++ b/backends/cxxrtl/cxxrtl_backend.cc @@ -1922,8 +1922,9 @@ struct CxxrtlWorker { if (top_module != nullptr && debug_info) { f << "cxxrtl_toplevel " << design_ns << "_create() {\n"; inc_indent(); + std::string top_type = design_ns + "::" + mangle(top_module); f << indent << "return new _cxxrtl_toplevel { "; - f << "std::make_unique<" << design_ns << "::" << mangle(top_module) << ">()"; + f << "std::unique_ptr<" << top_type << ">(new " + top_type + ")"; f << " };\n"; dec_indent(); f << "}\n";