Ping: https://gcc.gnu.org/ml/gcc-patches/2017-05/msg01428.html
On 05/17/2017 06:04 PM, Martin Sebor wrote:
While working on a new warning for unsafe conversion I noticed that the existing warnings that diagnose these kinds of problems are missing some useful detail. For example, given declarations of an integer Type and an integer Constant defined in some header, a C programmer who writes this declaration: Type x = Constant; might see the following: warning: overflow in implicit constant conversion [-Woverflow] To help the programmer better understand the problem and its impact it would be helpful to mention the types of the operands, and if available, also the values of the expressions. For instance, like so: warning: overflow in conversion from ‘int’ to ‘T {aka signed char}’ changes value from ‘123456789’ to ‘21’ [-Woverflow] The attached simple patch does just that. In making the changes I tried to make the text of all the warnings follow the same consistent wording pattern without losing any essential information (e.g., I dropped "implicit" or "constant" because the implicit part is evident from the code (no cast) and explicit conversions aren't diagnosed, and because constant is apparent from the rest of the diagnostic that includes its value. Besides adding more detail and tweaking the wording the patch makes no functional changes (i.e., doesn't add new or remove existing warnings). Martin PS While adjusting the tests (a painstaking process) it occurred to me that these kinds of changes would be a whole lot easier if dg-warning directives simply checked for "-Woption-name" rather than some (often arbitrary) part of the warning text. It might even be more accurate if the pattern happens to match the text of two or more warnings controlled by different options. It's of course important to also exercise the full text of the warnings, especially where additional detail is included (like in this patch), but that can be done in a small subset of tests. All the others that just verify the presence of a warning controlled by a given option could use the simpler approach.