Prevent unused parameter warnings and unknown #pragma warnings on GCC.
diff --git a/include/array_view.h b/include/array_view.h
index 80656a4..907bf42 100644
--- a/include/array_view.h
+++ b/include/array_view.h
@@ -52,10 +52,12 @@
 
 #endif // _NOEXCEPT
 
+#if _MSC_VER
 #if _MSC_VER <= 1800
 #pragma warning(push)
 #pragma warning(disable: 4351) // warns about newly introduced aggregate initializer behavior
 #endif // _MSC_VER <= 1800
+#endif
 
 namespace Guide {
 
@@ -547,7 +549,7 @@
 		// TODO : following signature is for work around VS bug
 		template <typename OtherType>
 		BoundsRanges (const OtherType &, bool firstLevel) {}
-		BoundsRanges(const SizeType * const arr) { }
+		BoundsRanges(const SizeType * const) { }
 		BoundsRanges() = default;
 
 
@@ -2281,9 +2283,10 @@
 
 } // namespace Guide
 
+#if _MSC_VER
 #if _MSC_VER <= 1800
 #pragma warning(pop)
 #endif // _MSC_VER <= 1800
-
+#endif
 
 #pragma pop_macro("_NOEXCEPT")