This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [patch] Clarify interaction of -Wnarrowing with -std
- From: Gerald Pfeifer <gerald at pfeifer dot com>
- To: Jonathan Wakely <jwakely at redhat dot com>, Sandra Loosemore <sandra at codesourcery dot com>
- Cc: Jason Merrill <jason at redhat dot com>, gcc-patches at gcc dot gnu dot org, Joseph Myers <joseph at codesourcery dot com>
- Date: Sun, 26 Mar 2017 22:13:32 +0200 (CEST)
- Subject: Re: [patch] Clarify interaction of -Wnarrowing with -std
- Authentication-results: sourceware.org; auth=none
- References: <20160219124235.GF3171@redhat.com> <56C7666F.30601@redhat.com> <56C7783D.2040504@codesourcery.com> <20160223183853.GK3171@redhat.com>
Hi Jonathan,
On Tue, 23 Feb 2016, Jonathan Wakely wrote:
On 19/02/16 13:17 -0700, Sandra Loosemore wrote:
I suppose the patch is OK as it stands, but I was going to suggest
restructuring it so that it talks about the default behavior first and what
it does with non-default -std= options after that, instead of vice-versa.
Unfortunately I am backlogged on other things right now and it might take me
a day or two before I have time to come up with some alternate wording. If
we are in a rush, go ahead and commit the existing patch meanwhile, I guess.
Is this better?
I believe your follow-up patch did not get committed, nor did I
see any response from anyone.
To me it looks fine. Did you hold of intentionally, or did this
get lost for lack of responses?
Sandra, what do you think?
Gerald
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index 490df93..8d56efa 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -2753,10 +2753,17 @@ During the link-time optimization warn about type mismatches in
global declarations from different compilation units.
Requires @option{-flto} to be enabled. Enabled by default.
-@item -Wnarrowing @r{(C++ and Objective-C++ only)}
+@item -Wno-narrowing @r{(C++ and Objective-C++ only)}
@opindex Wnarrowing
@opindex Wno-narrowing
-With @option{-std=gnu++98} or @option{-std=c++98}, warn when a narrowing
+For C++11 and later standards, narrowing conversions are diagnosed by default,
+as required by the standard. A narrowing conversion from a constant produces
+an error, and a narrowing conversion from a non-constant produces a warning,
+but @option{-Wno-narrowing} suppresses the diagnostic.
+Note that this does not affect the meaning of well-formed code;
+narrowing conversions are still considered ill-formed in SFINAE contexts.
+
+With @option{-Wnarrowing} in C++98, warn when a narrowing
conversion prohibited by C++11 occurs within
@samp{@{ @}}, e.g.
@@ -2766,14 +2773,6 @@ int i = @{ 2.2 @}; // error: narrowing from double to int
This flag is included in @option{-Wall} and @option{-Wc++11-compat}.
-When a later standard is in effect, e.g. when using @option{-std=c++11},
-narrowing conversions are diagnosed by default, as required by the standard.
-A narrowing conversion from a constant produces an error,
-and a narrowing conversion from a non-constant produces a warning,
-but @option{-Wno-narrowing} suppresses the diagnostic.
-Note that this does not affect the meaning of well-formed code;
-narrowing conversions are still considered ill-formed in SFINAE contexts.
-
@item -Wnoexcept @r{(C++ and Objective-C++ only)}
@opindex Wnoexcept
@opindex Wno-noexcept