[all-commits] [llvm/llvm-project] 32f189: [analyzer] Implement assumeInclusiveRange in terms...

Gabor Marton via All-commits all-commits at lists.llvm.org
Mon May 23 00:47:40 PDT 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 32f189b0d9a881341e19e17a459f5b9cac4b0484
      https://github.com/llvm/llvm-project/commit/32f189b0d9a881341e19e17a459f5b9cac4b0484
  Author: Gabor Marton <gabor.marton at ericsson.com>
  Date:   2022-05-23 (Mon, 23 May 2022)

  Changed paths:
    M clang/include/clang/StaticAnalyzer/Core/PathSensitive/ConstraintManager.h
    M clang/include/clang/StaticAnalyzer/Core/PathSensitive/SimpleConstraintManager.h
    M clang/lib/StaticAnalyzer/Core/ConstraintManager.cpp
    M clang/lib/StaticAnalyzer/Core/SimpleConstraintManager.cpp

  Log Message:
  -----------
  [analyzer] Implement assumeInclusiveRange in terms of assumeInclusiveRangeDual

Depends on D124758. This is the very same thing we have done for
assumeDual, but this time we do it for assumeInclusiveRange. This patch
is basically a no-brainer copy of that previous patch.

Differential Revision:
https://reviews.llvm.org/D125892


  Commit: 96fba640cf58402b1015924f6582b14c6ac8cc32
      https://github.com/llvm/llvm-project/commit/96fba640cf58402b1015924f6582b14c6ac8cc32
  Author: Gabor Marton <gabor.marton at ericsson.com>
  Date:   2022-05-23 (Mon, 23 May 2022)

  Changed paths:
    M clang/include/clang/StaticAnalyzer/Core/PathSensitive/ConstraintManager.h
    M clang/lib/StaticAnalyzer/Core/ConstraintManager.cpp

  Log Message:
  -----------
  [analyzer][NFC] Factor out the copy-paste code repetition of assumeDual and assumeInclusiveRangeDual

Depends on D125892. There might be efficiency and performance
implications by using a lambda. Thus, I am going to conduct measurements
to see if there is any noticeable impact.
I've been thinking about two more alternatives:
1) Make `assumeDualImpl` a variadic template and (perfect) forward the
   arguments for the used `assume` function.
2) Use a macros.
I have concerns though, whether these alternatives would deteriorate the
readability of the code.

Differential Revision: https://reviews.llvm.org/D125954


Compare: https://github.com/llvm/llvm-project/compare/b876c23604c7...96fba640cf58


More information about the All-commits mailing list