[all-commits] [llvm/llvm-project] 9fdcae: [analyzer] Do not cache out on some shared implici...

Gábor Horváth via All-commits all-commits at lists.llvm.org
Wed Dec 11 17:16:21 PST 2019


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 9fdcae7c81f5ff92ad694f5d993a042a525fd6bc
      https://github.com/llvm/llvm-project/commit/9fdcae7c81f5ff92ad694f5d993a042a525fd6bc
  Author: Gabor Horvath <xazax at google.com>
  Date:   2019-12-11 (Wed, 11 Dec 2019)

  Changed paths:
    M clang/include/clang/Analysis/CFG.h
    M clang/lib/Analysis/CFG.cpp
    M clang/lib/StaticAnalyzer/Core/AnalysisManager.cpp
    M clang/lib/StaticAnalyzer/Core/ExprEngine.cpp
    A clang/test/Analysis/designated-initializer-values.c
    M clang/test/Analysis/designated-initializer.c
    M clang/test/Analysis/initializers-cfg-output.cpp
    M clang/test/Analysis/temp-obj-dtors-cfg-output.cpp

  Log Message:
  -----------
  [analyzer] Do not cache out on some shared implicit AST nodes

Some AST nodes which stands for implicit initialization is shared. The analyzer
will do the same evaluation on the same nodes resulting in the same state. The
analyzer will "cache out", i.e. it thinks that it visited an already existing
node in the exploded graph. This is not true in this case and we lose coverage.
Since these nodes do not really require any processing from the analyzer
we just omit them from the CFG.

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




More information about the All-commits mailing list