diff --git a/include/etl/private/diagnostic_cxx_20_compat_push.h b/include/etl/private/diagnostic_cxx_20_compat_push.h
index 49a034667..85c864bab 100644
--- a/include/etl/private/diagnostic_cxx_20_compat_push.h
+++ b/include/etl/private/diagnostic_cxx_20_compat_push.h
@@ -33,7 +33,7 @@ SOFTWARE.
* This file is intended to evaluated multiple times by design.
*/
-#if defined(__GNUC__) && !defined(__clang__) && !defined(__llvm__)
+#if defined(__GNUC__) && (__GNUC__ >= 10) && !defined(__clang__) && !defined(__llvm__)
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wc++20-compat"
#endif
diff --git a/test/vs2022/etl.vcxproj b/test/vs2022/etl.vcxproj
index 251aca474..c0aa5d92b 100644
--- a/test/vs2022/etl.vcxproj
+++ b/test/vs2022/etl.vcxproj
@@ -3092,6 +3092,7 @@
+
diff --git a/test/vs2022/etl.vcxproj.filters b/test/vs2022/etl.vcxproj.filters
index 90556271a..37ae37e69 100644
--- a/test/vs2022/etl.vcxproj.filters
+++ b/test/vs2022/etl.vcxproj.filters
@@ -1410,6 +1410,9 @@
ETL\Codecs
+
+ ETL\Private
+