diff --git a/runtime/src/kmp.h b/runtime/src/kmp.h
index 25fdb2f..c287a31 100644
--- a/runtime/src/kmp.h
+++ b/runtime/src/kmp.h
@@ -502,11 +502,6 @@
 }
 
 /* Type to keep runtime schedule set via OMP_SCHEDULE or omp_set_schedule() */
-#if KMP_COMPILER_MSVC
-#pragma warning(push)
-// warning C4201: nonstandard extension used: nameless struct/union
-#pragma warning(disable : 4201)
-#endif
 typedef union kmp_r_sched {
   struct {
     enum sched_type r_sched_type;
@@ -514,9 +509,6 @@
   };
   kmp_int64 sched;
 } kmp_r_sched_t;
-#if KMP_COMPILER_MSVC
-#pragma warning(pop)
-#endif
 
 extern enum sched_type __kmp_sch_map[]; // map OMP 3.0 schedule types with our
 // internal schedule types
@@ -610,8 +602,6 @@
 #pragma warning(push)
 #pragma warning(disable : 271 310)
 #endif
-// Don't include everything related to NT status code, we'll do that explicitely
-#define WIN32_NO_STATUS
 #include <windows.h>
 #if KMP_MSVC_COMPAT
 #pragma warning(pop)
@@ -1907,20 +1897,12 @@
   // Because of parm1-4 are used together, performance seems to be better
   // if they are on the same cache line (not measured though).
 
-#if KMP_COMPILER_MSVC
-#pragma warning(push)
-// warning C4201: nonstandard extension used: nameless struct/union
-#pragma warning(disable : 4201)
-#endif
   struct KMP_ALIGN(32) {
     kmp_int32 parm1;
     kmp_int32 parm2;
     kmp_int32 parm3;
     kmp_int32 parm4;
   };
-#if KMP_COMPILER_MSVC
-#pragma warning(pop)
-#endif
 
 #if KMP_WEIGHTED_ITERATIONS_SUPPORTED
   kmp_uint32 pchunks;
@@ -1954,20 +1936,12 @@
   //    b) all parm1-4 are in the same cache line.
   // Because of parm1-4 are used together, performance seems to be better
   // if they are in the same line (not measured though).
-#if KMP_COMPILER_MSVC
-#pragma warning(push)
-// warning C4201: nonstandard extension used: nameless struct/union
-#pragma warning(disable : 4201)
-#endif
   struct KMP_ALIGN(32) {
     kmp_int64 parm1;
     kmp_int64 parm2;
     kmp_int64 parm3;
     kmp_int64 parm4;
   };
-#if KMP_COMPILER_MSVC
-#pragma warning(pop)
-#endif
 
 #if KMP_WEIGHTED_ITERATIONS_SUPPORTED
   kmp_uint64 pchunks;
@@ -2249,11 +2223,6 @@
 
 typedef union kmp_barrier_union kmp_balign_t;
 
-#if KMP_COMPILER_MSVC
-#pragma warning(push)
-// warning C4201: nonstandard extension used: nameless struct/union
-#pragma warning(disable : 4201)
-#endif
 /* Team barrier needs only non-volatile arrived counter */
 union KMP_ALIGN_CACHE kmp_barrier_team_union {
   double b_align; /* use worst case alignment */
@@ -2270,9 +2239,6 @@
 #endif
   };
 };
-#if KMP_COMPILER_MSVC
-#pragma warning(pop)
-#endif
 
 typedef union kmp_barrier_team_union kmp_balign_team_t;
 
diff --git a/runtime/src/kmp_affinity.cpp b/runtime/src/kmp_affinity.cpp
index 673b9f5..7009730 100644
--- a/runtime/src/kmp_affinity.cpp
+++ b/runtime/src/kmp_affinity.cpp
@@ -127,9 +127,8 @@
     return ((plural) ? KMP_I18N_STR(Threads) : KMP_I18N_STR(Thread));
   case KMP_HW_PROC_GROUP:
     return ((plural) ? KMP_I18N_STR(ProcGroups) : KMP_I18N_STR(ProcGroup));
-  default:
-    return KMP_I18N_STR(Unknown);
   }
+  return KMP_I18N_STR(Unknown);
 }
 
 const char *__kmp_hw_get_keyword(kmp_hw_t type, bool plural) {
@@ -158,9 +157,8 @@
     return ((plural) ? "threads" : "thread");
   case KMP_HW_PROC_GROUP:
     return ((plural) ? "proc_groups" : "proc_group");
-  default:
-    return ((plural) ? "unknowns" : "unknown");
   }
+  return ((plural) ? "unknowns" : "unknown");
 }
 
 const char *__kmp_hw_get_core_type_string(kmp_hw_core_type_t type) {
@@ -173,9 +171,8 @@
   case KMP_HW_CORE_TYPE_CORE:
     return "Intel(R) Core(TM) processor";
 #endif
-  default:
-    return "unknown";
   }
+  return "unknown";
 }
 
 #if KMP_AFFINITY_SUPPORTED
@@ -1249,10 +1246,9 @@
 #endif
       case KMP_HW_CORE_TYPE_UNKNOWN:
         return 0;
-      default:
-        KMP_ASSERT(0);
-        return 0;
       }
+      KMP_ASSERT(0);
+      return 0;
     }
   };
   struct core_eff_indexer {
diff --git a/runtime/src/kmp_atomic.h b/runtime/src/kmp_atomic.h
index 1cf1701..4fc51ee 100644
--- a/runtime/src/kmp_atomic.h
+++ b/runtime/src/kmp_atomic.h
@@ -1029,14 +1029,6 @@
 kmp_cmplx32 __kmpc_atomic_cmplx4_rd(ident_t *id_ref, int gtid,
                                     kmp_cmplx32 *loc);
 #endif
-
-#if KMP_COMPILER_MSVC
-#pragma warning(push)
-// warning C4190: '__kmpc_atomic_cmplx8_rd' has C-linkage specified, but returns
-// UDT '__kmp_cmplx64_t' which is incompatible with C
-#pragma warning(disable : 4190)
-#endif
-
 kmp_cmplx64 __kmpc_atomic_cmplx8_rd(ident_t *id_ref, int gtid,
                                     kmp_cmplx64 *loc);
 kmp_cmplx80 __kmpc_atomic_cmplx10_rd(ident_t *id_ref, int gtid,
@@ -1597,10 +1589,6 @@
 #endif
 #endif
 
-#if KMP_COMPILER_MSVC
-#pragma warning(pop)
-#endif
-
 // Capture routines for mixed types (RHS=float16)
 #if KMP_HAVE_QUAD
 
diff --git a/runtime/src/kmp_barrier.cpp b/runtime/src/kmp_barrier.cpp
index c58eb27..281b8e9 100644
--- a/runtime/src/kmp_barrier.cpp
+++ b/runtime/src/kmp_barrier.cpp
@@ -2405,10 +2405,9 @@
 #endif /* USE_ITT_BUILD */
   if (team)
 
-#ifdef KMP_DEBUG
-    KA_TRACE(10, ("__kmp_fork_barrier: T#%d(%d:%d) has arrived\n", gtid,
-                  (team != NULL) ? team->t.t_id : -1, tid));
-#endif
+  KA_TRACE(10, ("__kmp_fork_barrier: T#%d(%d:%d) has arrived\n", gtid,
+                (team != NULL) ? team->t.t_id : -1, tid));
+
   // th_team pointer only valid for primary thread here
   if (KMP_MASTER_TID(tid)) {
 #if USE_ITT_BUILD && USE_ITT_NOTIFY
diff --git a/runtime/src/kmp_dispatch.h b/runtime/src/kmp_dispatch.h
index 340fe57..cf19eb5 100644
--- a/runtime/src/kmp_dispatch.h
+++ b/runtime/src/kmp_dispatch.h
@@ -81,11 +81,6 @@
 
   /* parm[1-4] are used in different ways by different scheduling algorithms */
 
-#if KMP_COMPILER_MSVC
-#pragma warning(push)
-// warning C4201: nonstandard extension used: nameless struct/union
-#pragma warning(disable : 4201)
-#endif
   // KMP_ALIGN(32) ensures ( if the KMP_ALIGN macro is turned on )
   //    a) parm3 is properly aligned and
   //    b) all parm1-4 are in the same cache line.
@@ -97,9 +92,6 @@
     T parm3;
     T parm4;
   };
-#if KMP_COMPILER_MSVC
-#pragma warning(pop)
-#endif
 
 #if KMP_WEIGHTED_ITERATIONS_SUPPORTED
   UT pchunks; // total number of chunks for processes with p-core
diff --git a/runtime/src/kmp_io.cpp b/runtime/src/kmp_io.cpp
index 421bfe7..578e6e6 100644
--- a/runtime/src/kmp_io.cpp
+++ b/runtime/src/kmp_io.cpp
@@ -50,7 +50,6 @@
 static int __kmp_console_exists = FALSE;
 static kmp_str_buf_t __kmp_console_buf;
 
-#if 0
 static int is_console(void) {
   char buffer[128];
   DWORD rc = 0;
@@ -68,7 +67,6 @@
   }
   return rc > 0 || err == 0;
 }
-#endif
 
 void __kmp_close_console(void) {
   /* wait until user presses return before closing window */
@@ -86,6 +84,7 @@
 static void __kmp_redirect_output(void) {
   __kmp_acquire_bootstrap_lock(&__kmp_console_lock);
 
+  (void)is_console;
   if (!__kmp_console_exists) {
     HANDLE ho;
     HANDLE he;
diff --git a/runtime/src/kmp_settings.cpp b/runtime/src/kmp_settings.cpp
index 6ee9a89..30a4c05 100644
--- a/runtime/src/kmp_settings.cpp
+++ b/runtime/src/kmp_settings.cpp
@@ -873,10 +873,6 @@
     case library_throughput: {
       value = "PASSIVE";
     } break;
-    case library_none:
-    case library_serial: {
-      value = NULL;
-    } break;
     }
   } else {
     switch (__kmp_library) {
@@ -889,9 +885,6 @@
     case library_throughput: {
       value = "throughput";
     } break;
-    case library_none: {
-      value = NULL;
-    } break;
     }
   }
   if (value != NULL) {
@@ -2010,15 +2003,16 @@
 static inline const char *
 __kmp_hw_get_core_type_keyword(kmp_hw_core_type_t type) {
   switch (type) {
+  case KMP_HW_CORE_TYPE_UNKNOWN:
+    return "unknown";
 #if KMP_ARCH_X86 || KMP_ARCH_X86_64
   case KMP_HW_CORE_TYPE_ATOM:
     return "intel_atom";
   case KMP_HW_CORE_TYPE_CORE:
     return "intel_core";
 #endif
-  default:
-    return "unknown";
   }
+  return "unknown";
 }
 
 #if KMP_AFFINITY_SUPPORTED
@@ -4434,8 +4428,6 @@
     case kmp_sch_auto:
       __kmp_str_buf_print(buffer, "%s,%d'\n", "auto", __kmp_chunk);
       break;
-    default:
-      break;
     }
   } else {
     switch (sched) {
@@ -4461,8 +4453,6 @@
     case kmp_sch_auto:
       __kmp_str_buf_print(buffer, "%s'\n", "auto");
       break;
-    default:
-      break;
     }
   }
 } // __kmp_stg_print_omp_schedule
diff --git a/runtime/src/kmp_wait_release.h b/runtime/src/kmp_wait_release.h
index 36a28e6..3fcae56 100644
--- a/runtime/src/kmp_wait_release.h
+++ b/runtime/src/kmp_wait_release.h
@@ -1038,6 +1038,7 @@
   case flag_oncore:
     __kmp_resume_oncore(gtid, RCAST(kmp_flag_oncore *, flag));
     break;
+#ifdef KMP_DEBUG
   case flag_unset:
     KF_TRACE(100, ("__kmp_null_resume_wrapper: flag type %d is unset\n", type));
     break;
@@ -1045,6 +1046,7 @@
     KF_TRACE(100, ("__kmp_null_resume_wrapper: flag type %d does not match any "
                    "known flag type\n",
                    type));
+#endif
   }
 }
 
diff --git a/runtime/src/z_Windows_NT_util.cpp b/runtime/src/z_Windows_NT_util.cpp
index d75b48b..9e264ab 100644
--- a/runtime/src/z_Windows_NT_util.cpp
+++ b/runtime/src/z_Windows_NT_util.cpp
@@ -22,7 +22,6 @@
    number of running threads in the system. */
 
 #include <ntsecapi.h> // UNICODE_STRING
-#undef WIN32_NO_STATUS
 #include <ntstatus.h>
 #include <psapi.h>
 #ifdef _MSC_VER
@@ -1636,7 +1635,7 @@
     // threads on all cores. So, we don't consider the running threads of this
     // process.
     if (pid != 0) {
-      for (ULONG i = 0; i < num; ++i) {
+      for (int i = 0; i < num; ++i) {
         THREAD_STATE state = spi->Threads[i].State;
         // Count threads that have Ready or Running state.
         // !!! TODO: Why comment does not match the code???
