From 6ac18deeff59c934a737b3cee7e319337d0e5de9 Mon Sep 17 00:00:00 2001
From: Recolic Keghart <root@recolic.net>
Date: Tue, 31 Dec 2019 00:19:05 +0800
Subject: [PATCH] >  Manual commit:  Fixed some complaints by Intel CC.
 U201614531 recolic Linux RECOLICPC 5.4.6-arch3-1 #1 SMP PREEMPT Tue, 24 Dec
 2019 04:36:53 +0000 x86_64 GNU/Linux  00:19:05 up 2 days,  5:52,  1 user, 
 load average: 1.08, 1.26, 1.17 c916e4b9f38a49ef9f92e9314f202bc2708707d3

---
 nemu/include/rlib/3rdparty/prettyprint.hpp | 20 ++++++++++----------
 nemu/include/util/util.h                   |  2 +-
 nemu/src/device/io/mmio.cc                 |  3 +--
 nemu/src/memory/memory.cc                  |  8 ++++++++
 4 files changed, 20 insertions(+), 13 deletions(-)

diff --git a/nemu/include/rlib/3rdparty/prettyprint.hpp b/nemu/include/rlib/3rdparty/prettyprint.hpp
index ce2226a..106c275 100644
--- a/nemu/include/rlib/3rdparty/prettyprint.hpp
+++ b/nemu/include/rlib/3rdparty/prettyprint.hpp
@@ -167,11 +167,11 @@ namespace pretty_print
 
     template <typename T, typename TChar, typename TCharTraits, typename TDelimiters>
     template <typename T1, typename T2>
-    struct print_container_helper<T, TChar, TCharTraits, TDelimiters>::printer<std::pair<T1, T2>>
+    struct print_container_helper<T, TChar, TCharTraits, TDelimiters>::printer<::std::pair<T1, T2>>
     {
         using ostream_type = typename print_container_helper<T, TChar, TCharTraits, TDelimiters>::ostream_type;
 
-        static void print_body(const std::pair<T1, T2> & c, ostream_type & stream)
+        static void print_body(const ::std::pair<T1, T2> & c, ostream_type & stream)
         {
             stream << c.first;
             if (print_container_helper<T, TChar, TCharTraits, TDelimiters>::delimiters_type::values.delimiter != NULL)
@@ -184,10 +184,10 @@ namespace pretty_print
 
     template <typename T, typename TChar, typename TCharTraits, typename TDelimiters>
     template <typename ...Args>
-    struct print_container_helper<T, TChar, TCharTraits, TDelimiters>::printer<std::tuple<Args...>>
+    struct print_container_helper<T, TChar, TCharTraits, TDelimiters>::printer<::std::tuple<Args...>>
     {
         using ostream_type = typename print_container_helper<T, TChar, TCharTraits, TDelimiters>::ostream_type;
-        using element_type = std::tuple<Args...>;
+        using element_type = ::std::tuple<Args...>;
 
         template <std::size_t I> struct Int { };
 
@@ -249,10 +249,10 @@ namespace pretty_print
     struct is_container<std::valarray<T>> : std::true_type { };
 
     template <typename T1, typename T2>
-    struct is_container<std::pair<T1, T2>> : std::true_type { };
+    struct is_container<::std::pair<T1, T2>> : std::true_type { };
 
     template <typename ...Args>
-    struct is_container<std::tuple<Args...>> : std::true_type { };
+    struct is_container<::std::tuple<Args...>> : std::true_type { };
 
 
     // Default delimiters
@@ -316,13 +316,13 @@ namespace pretty_print
 
     // Delimiters for pair and tuple
 
-    template <typename T1, typename T2> struct delimiters<std::pair<T1, T2>, char> { static const delimiters_values<char> values; };
-    template <typename T1, typename T2> const delimiters_values<char> delimiters<std::pair<T1, T2>, char>::values = { "(", ", ", ")" };
+    template <typename T1, typename T2> struct delimiters<::std::pair<T1, T2>, char> { static const delimiters_values<char> values; };
+    template <typename T1, typename T2> const delimiters_values<char> delimiters<::std::pair<T1, T2>, char>::values = { "(", ", ", ")" };
     template <typename T1, typename T2> struct delimiters< ::std::pair<T1, T2>, wchar_t> { static const delimiters_values<wchar_t> values; };
     template <typename T1, typename T2> const delimiters_values<wchar_t> delimiters< ::std::pair<T1, T2>, wchar_t>::values = { L"(", L", ", L")" };
 
-    template <typename ...Args> struct delimiters<std::tuple<Args...>, char> { static const delimiters_values<char> values; };
-    template <typename ...Args> const delimiters_values<char> delimiters<std::tuple<Args...>, char>::values = { "(", ", ", ")" };
+    template <typename ...Args> struct delimiters<::std::tuple<Args...>, char> { static const delimiters_values<char> values; };
+    template <typename ...Args> const delimiters_values<char> delimiters<::std::tuple<Args...>, char>::values = { "(", ", ", ")" };
     template <typename ...Args> struct delimiters< ::std::tuple<Args...>, wchar_t> { static const delimiters_values<wchar_t> values; };
     template <typename ...Args> const delimiters_values<wchar_t> delimiters< ::std::tuple<Args...>, wchar_t>::values = { L"(", L", ", L")" };
 
diff --git a/nemu/include/util/util.h b/nemu/include/util/util.h
index 330a1d9..2fe5675 100644
--- a/nemu/include/util/util.h
+++ b/nemu/include/util/util.h
@@ -11,7 +11,7 @@ namespace rlib {
       return (int8_t)val;
     else if constexpr(BytesCount == 2)
       return (int16_t)val;
-    else return val;
+    return val;
   }
 }
 
diff --git a/nemu/src/device/io/mmio.cc b/nemu/src/device/io/mmio.cc
index 396f0ed..50feaab 100644
--- a/nemu/src/device/io/mmio.cc
+++ b/nemu/src/device/io/mmio.cc
@@ -34,8 +34,7 @@ void* add_mmio_map(paddr_t addr, int len, mmio_callback_t callback) {
 
 /* bus interface */
 __attribute__((hot)) int is_mmio(paddr_t addr) {
-  int i;
-  for (i = 0; i < nr_map; i ++) {
+  for (int i = 0; i < nr_map; i ++) {
     if (addr >= maps[i].low && addr <= maps[i].high) {
       return i;
     }
diff --git a/nemu/src/memory/memory.cc b/nemu/src/memory/memory.cc
index f510a8a..46be639 100644
--- a/nemu/src/memory/memory.cc
+++ b/nemu/src/memory/memory.cc
@@ -15,21 +15,29 @@ uint8_t pmem[PMEM_SIZE];
 __attribute__((hot)) uint32_t paddr_read(paddr_t addr, int len) {
     static const uint32_t niddle[] = {0, 0xff, 0xffff, 0xffffff, 0xffffffff};
 
+#ifndef DISABLE_MMIO
     if(const auto mmio_id = is_mmio(addr); RLIB_MACRO_LIKELY(-1 == mmio_id)) {
+#endif
       return pmem_rw(addr, uint32_t) & niddle[len];
+#ifndef DISABLE_MMIO
     }
     else {
       return mmio_read(addr, len, mmio_id);
     }
+#endif
 }
 
 void paddr_write(paddr_t addr, uint32_t data, int len) {
+#ifndef DISABLE_MMIO
   if(const auto mmio_id = is_mmio(addr); RLIB_MACRO_LIKELY(-1 == mmio_id)) {
+#endif
     memcpy(guest_to_host(addr), &data, len);
+#ifndef DISABLE_MMIO
   }
   else {
     mmio_write(addr, len, data, mmio_id);
   }
+#endif
 }
 
 
-- 
GitLab