git: 442295c1fe84 - main - Silence GCC warnings when using libc++ headers.

From: John Baldwin <jhb_at_FreeBSD.org>
Date: Wed, 30 Nov 2022 22:54:00 UTC
The branch main has been updated by jhb:

URL: https://cgit.FreeBSD.org/src/commit/?id=442295c1fe84b4dc3e4834acdbf4ede75affe3c4

commit 442295c1fe84b4dc3e4834acdbf4ede75affe3c4
Author:     John Baldwin <jhb@FreeBSD.org>
AuthorDate: 2022-11-30 22:50:35 +0000
Commit:     John Baldwin <jhb@FreeBSD.org>
CommitDate: 2022-11-30 22:53:29 +0000

    Silence GCC warnings when using libc++ headers.
    
    GCC 12 raises warnings about literal operator suffixes not preceded by
    '_' in libc++ headers such as <string_view> as it doesn't recognize
    libc++ headers being an implementation of the standard.
    
    GCC 12 also warns about clang-specific pragmas in <locale>.
    
    Disabling these warnings globally for all C++ code is not ideal, but
    is a better option than patching libc++ headers to ignore these
    warnings.
    
    Reviewed by:    emaste
    Differential Revision:  https://reviews.freebsd.org/D37530
---
 share/mk/bsd.sys.mk | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/share/mk/bsd.sys.mk b/share/mk/bsd.sys.mk
index 18aecfbcc110..42290e96f859 100644
--- a/share/mk/bsd.sys.mk
+++ b/share/mk/bsd.sys.mk
@@ -217,6 +217,14 @@ CWARNFLAGS+=	-Wno-error=overflow
 .endif
 .endif
 
+# GCC 12.1.0
+.if ${COMPILER_VERSION} >= 120100
+# These warnings are raised by headers in libc++ so are disabled
+# globally for all C++
+CXXWARNFLAGS+=	-Wno-literal-suffix 			\
+		-Wno-error=unknown-pragmas
+.endif
+
 # GCC produces false positives for functions that switch on an
 # enum (GCC bug 87950)
 CWARNFLAGS+=	-Wno-return-type