[all-commits] [llvm/llvm-project] 9198d0: Allow disabling integer to floating-point narrowin...

paulaltin via All-commits all-commits at lists.llvm.org
Thu Dec 16 05:25:26 PST 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 9198d04c06b561cd78d9407cedd50f7b995ee6d8
      https://github.com/llvm/llvm-project/commit/9198d04c06b561cd78d9407cedd50f7b995ee6d8
  Author: Paul Altin <paul at liquidinstruments.com>
  Date:   2021-12-16 (Thu, 16 Dec 2021)

  Changed paths:
    M clang-tools-extra/clang-tidy/cppcoreguidelines/NarrowingConversionsCheck.cpp
    M clang-tools-extra/clang-tidy/cppcoreguidelines/NarrowingConversionsCheck.h
    M clang-tools-extra/docs/ReleaseNotes.rst
    M clang-tools-extra/docs/clang-tidy/checks/cppcoreguidelines-narrowing-conversions.rst
    A clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines-narrowing-conversions-narrowingintegertofloatingpoint-option.cpp

  Log Message:
  -----------
  Allow disabling integer to floating-point narrowing conversions for cppcoreguidelines-narrowing-conversions

This change adds an option to disable warnings from the
cppcoreguidelines-narrowing-conversions check on integer to floating-
point conversions which may be narrowing.

An example of a case where this might be useful:
```
std::vector<double> v = {1, 2, 3, 4};
double mean = std::accumulate(v.cbegin(), v.cend(), 0.0) / v.size();
```
The conversion from std::size_t to double is technically narrowing on
64-bit systems, but v almost certainly does not have enough elements
for this to be a problem.

This option would allow the cppcoreguidelines-narrowing-conversions
check to be enabled on codebases which might otherwise turn it off
because of cases like the above.




More information about the All-commits mailing list