[analyzer] Deprecate the unused 'analyzer-opt-analyze-nested-blocks' cc1 flag
authorBalazs Benics <balazs.benics@sigmatechnology.se>
Fri, 10 Jun 2022 11:09:37 +0000 (13:09 +0200)
committerBalazs Benics <balazs.benics@sigmatechnology.se>
Fri, 10 Jun 2022 11:09:37 +0000 (13:09 +0200)
commit07b4a6d0461fe64e10d30029ed3d598e49ca3810
tree76df219d4f68ed0ed6aab7f945b8f383713c395f
parent6403e1b12a61dd7dd2682916afdec6b0a8049c10
[analyzer] Deprecate the unused 'analyzer-opt-analyze-nested-blocks' cc1 flag

This flag was introduced by
https://github.com/llvm/llvm-project/commit/6818991d7165f68fe196922d9e5c6648dd57cc47
    commit 6818991d7165f68fe196922d9e5c6648dd57cc47
    Author: Ted Kremenek <kremenek@apple.com>
    Date:   Mon Dec 7 22:06:12 2009 +0000

  Add clang-cc option '-analyzer-opt-analyze-nested-blocks' to treat
  block literals as an entry point for analyzer checks.

The last reference was removed by this commit:
https://github.com/llvm/llvm-project/commit/5c32dfc5fb1cfcff8ae3671284e17daa8da3a188

    commit 5c32dfc5fb1cfcff8ae3671284e17daa8da3a188
    Author: Anna Zaks <ganna@apple.com>
    Date:   Fri Dec 21 01:19:15 2012 +0000

  [analyzer] Add blocks and ObjC messages to the call graph.
  This paves the road for constructing a better function dependency graph.
  If we analyze a function before the functions it calls and inlines,
  there is more opportunity for optimization.
  Note, we add call edges to the called methods that correspond to
  function definitions (declarations with bodies).

Consequently, we should remove this dead flag.
However, this arises a couple of burning questions.
 - Should the `cc1` frontend still accept this flag - to keep
   tools/users passing this flag directly to `cc1` (which is unsupported,
   unadvertised) working.
 - If we should remain backward compatible, how long?
 - How can we get rid of deprecated and obsolete flags at some point?

Reviewed By: martong

Differential Revision: https://reviews.llvm.org/D126067
17 files changed:
clang-tools-extra/clang-tidy/ClangTidy.cpp
clang/docs/ReleaseNotes.rst
clang/include/clang/Driver/Options.td
clang/include/clang/StaticAnalyzer/Core/AnalyzerOptions.h
clang/lib/Driver/ToolChains/Clang.cpp
clang/lib/Frontend/CompilerInvocation.cpp
clang/test/Analysis/OSAtomic_mac.cpp
clang/test/Analysis/analyzer-stats.c
clang/test/Analysis/blocks.m
clang/test/Analysis/blocks.mm
clang/test/Analysis/deprecated-flags-and-options.cpp
clang/test/Analysis/misc-ps-arm.m
clang/test/Analysis/misc-ps-region-store.cpp
clang/test/Analysis/misc-ps-region-store.m
clang/test/Analysis/misc-ps-region-store.mm
clang/test/Analysis/objc-arc.m
clang/test/Analysis/unreachable-code-path.c