[Sema] Split off warn_impcast_integer_float_precision_constant into -Wimplicit-const...
authorFangrui Song <maskray@google.com>
Wed, 22 Apr 2020 16:53:35 +0000 (09:53 -0700)
committerFangrui Song <maskray@google.com>
Fri, 24 Apr 2020 01:26:06 +0000 (18:26 -0700)
commit14aaf4457c641bd5130072ba2a035e254b92fad3
tree24bc472829a897f452e018eef29183c1b18f7bce
parent2f9d1533d94699d943b34f1ba87f80fbd2e8c144
[Sema] Split off warn_impcast_integer_float_precision_constant into -Wimplicit-const-int-float-conversion

Currently, both `warn_impcast_integer_float_precision_constant` and
`warn_impcast_integer_float_precision` are covered by
-Wimplicit-int-float-conversion, but only the ..._constant warning is on
by default.

`warn_impcast_integer_float_precision_constant` likely flags real problems
while `warn_impcast_integer_float_precision` may flag legitimate use
cases (for example, `int` used with limited range supported by `float`).

If -Wno-implicit-int-float-conversion is used, currently there is no way
to restore the ..._constant warning. This patch adds
-Wimplicit-const-int-float-conversion to address the issue. (Similar to
the reasoning in https://reviews.llvm.org/D64666#1598194)

Adapted from a patch by Brooks Moses.

Reviewed By: nickdesaulniers

Differential Revision: https://reviews.llvm.org/D78661
clang/include/clang/Basic/DiagnosticGroups.td
clang/include/clang/Basic/DiagnosticSemaKinds.td
clang/test/Sema/implicit-int-float-conversion.c