On Mon, Jun 17, 2019 at 01:26:37PM -0400, Matthew Beliveau wrote:
> 2019-06-14 Matthew Beliveau <[email protected]>
>
> PR c++/90875 - added -Wswitch-outside-range option
> * doc/invoke.texi (Wswitch-outside-range): Document.
>
> * c-warn.c (c_do_switch_warnings): Implemented new Wswitch-outside-range
> warning option.
>
> * c.opt (Wswitch-outside-range): Added new option.
>
> * g++.dg/warn/Wswitch-outside-range-1.C: New test.
> * g++.dg/warn/Wswitch-outside-range-2.C: New test.
> * g++.dg/warn/Wswitch-outside-range-3.C: New test.
> * g++.dg/warn/Wswitch-outside-range-4.C: New test.
>
> diff --git gcc/c-family/c-warn.c gcc/c-family/c-warn.c
> index 5941c10cddb..b61694af638 100644
> --- gcc/c-family/c-warn.c
> +++ gcc/c-family/c-warn.c
> @@ -1460,8 +1460,9 @@ c_do_switch_warnings (splay_tree cases, location_t
> switch_location,
> min_value) >= 0)
> {
> location_t loc = EXPR_LOCATION ((tree) node->value);
> - warning_at (loc, 0, "lower value in case label range"
> - " less than minimum value for type");
> + warning_at (loc, OPT_Wswitch_outside_range, "lower value in case"
> + " label range less than minimum value"
> + " for type");
Just a formatting nit, not a review. Previously the indentation of the
second part of the string literal made sense, now it doesn't, it shouldn't
start at a location that is not related in any way to the previous line.
Best move the whole string literal to the second line, like:
warning_at (loc, OPT_Wswitch_outside_range,
"lower value in case label range less than minimum"
" value for type");
Happens multiple times in the patch.
Jakub