systemc: Fix tlm2 socket integration
authorJui-min Lee <fcrh@google.com>
Thu, 19 Dec 2019 10:10:06 +0000 (18:10 +0800)
committerJui-min Lee <fcrh@google.com>
Fri, 20 Dec 2019 13:12:57 +0000 (13:12 +0000)
This change will make the systemc extension in gem5 more compatible to
the reference implementation by Accellera.

* Remove the alias of sc_port's bind in initiator socket.
* Ignore -Woverloaded-virtual in initiator socket.

Change-Id: I229e4d493e01d26174c5662ad71d4859d546d307
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/23864
Tested-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Gabe Black <gabeblack@google.com>
Maintainer: Gabe Black <gabeblack@google.com>

src/systemc/ext/tlm_core/2/sockets/initiator_socket.hh

index 35c650bce98744a5fa71f11541266a0d6907b8cc..4f67b592379df21c944d5d0e0e694d4043829409 100644 (file)
@@ -51,6 +51,10 @@ template <unsigned int BUSWIDTH, typename FW_IF, typename BW_IF, int N,
           sc_core::sc_port_policy POL>
 class tlm_base_target_socket;
 
+// The overloaded virtual is intended in SystemC, so we'll disable the warning.
+// Please check section 9.3 of SystemC 2.3.1 release note for more details.
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Woverloaded-virtual"
 template <unsigned int BUSWIDTH=32, typename FW_IF=tlm_fw_transport_if<>,
           typename BW_IF=tlm_bw_transport_if<>, int N=1,
           sc_core::sc_port_policy POL=sc_core::SC_ONE_OR_MORE_BOUND>
@@ -120,8 +124,6 @@ class tlm_base_initiator_socket :
         (s.get_base_export())(get_base_export());
     }
 
-    using port_type::bind;
-
     void operator() (base_type &s) { bind(s); }
 
     //
@@ -172,6 +174,7 @@ class tlm_base_initiator_socket :
   protected:
     export_type m_export;
 };
+#pragma GCC diagnostic pop
 
 //
 // Convenience socket classes