[llvm-bugs] [Bug 42041] New: Assertation failure for dominator tree calculation

via llvm-bugs llvm-bugs at lists.llvm.org
Mon May 27 14:49:31 PDT 2019


https://bugs.llvm.org/show_bug.cgi?id=42041

            Bug ID: 42041
           Summary: Assertation failure for dominator tree calculation
           Product: clang
           Version: trunk
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: enhancement
          Priority: P
         Component: Static Analyzer
          Assignee: dcoughlin at apple.com
          Reporter: dkszelethus at gmail.com
                CC: dcoughlin at apple.com, llvm-bugs at lists.llvm.org

On monorepo commit ca84c4be4b443df7e49202bb6ca42f831b524245 or revision 361781:

$ cat domtest.cpp

enum Kind {
  A
};

void f() {
  switch(Kind{}) {
  case A:
    break;
  }
}

$ llvm-project/build/bin/clang -cc1 -analyze domtest.cpp
-analyzer-checker=debug.DumpDominators

Stack dump:
0.      Program arguments: llvm-project/build/bin/clang -cc1 -analyze
domtest.cpp -analyzer-checker=debug.DumpDominators 
1.      <eof> parser at end of file
 #0 0x00007f741c32fef9 llvm::sys::PrintStackTrace(llvm::raw_ostream&)
llvm-project/llvm/lib/Support/Unix/Signals.inc:494:11
 #1 0x00007f741c3300a9 PrintStackTraceSignalHandler(void*)
llvm-project/llvm/lib/Support/Unix/Signals.inc:558:1
 #2 0x00007f741c32e996 llvm::sys::RunSignalHandlers()
llvm-project/llvm/lib/Support/Signals.cpp:67:5
 #3 0x00007f741c33074b SignalHandler(int)
llvm-project/llvm/lib/Support/Unix/Signals.inc:357:1
 #4 0x00007f741b62f890 __restore_rt
(/lib/x86_64-linux-gnu/libpthread.so.0+0x12890)
 #5 0x00007f741208e3ac
clang::BumpVector<clang::CFGBlock::AdjacentBlock>::begin()
llvm-project/clang/include/clang/Analysis/Support/BumpVector.h:92:29
 #6 0x00007f741208e399 clang::CFGBlock::succ_begin()
llvm-project/clang/include/clang/Analysis/CFG.h:769:54
 #7 0x00007f741208e2f5
llvm::GraphTraits<clang::CFGBlock*>::child_begin(clang::CFGBlock*)
llvm-project/clang/include/clang/Analysis/CFG.h:1272:53
 #8 0x00007f741208dfc8
llvm::iterator_range<llvm::GraphTraits<clang::CFGBlock*>::ChildIteratorType>
llvm::children<clang::CFGBlock*>(llvm::GraphTraits<clang::CFGBlock*>::NodeRef
const&) llvm-project/llvm/include/llvm/ADT/GraphTraits.h:123:55
 #9 0x00007f741208d7c3
llvm::DomTreeBuilder::SemiNCAInfo<llvm::DominatorTreeBase<clang::CFGBlock,
false> >::ChildrenGetter<false>::Get(clang::CFGBlock*,
std::integral_constant<bool, false>)
llvm-project/llvm/include/llvm/Support/GenericDomTreeConstruction.h:0:32
#10 0x00007f741208b721
llvm::DomTreeBuilder::SemiNCAInfo<llvm::DominatorTreeBase<clang::CFGBlock,
false> >::ChildrenGetter<false>::Get(clang::CFGBlock*,
llvm::DomTreeBuilder::SemiNCAInfo<llvm::DominatorTreeBase<clang::CFGBlock,
false> >::BatchUpdateInfo*)
llvm-project/llvm/include/llvm/Support/GenericDomTreeConstruction.h:131:12
#11 0x00007f741208b2b4 unsigned int
llvm::DomTreeBuilder::SemiNCAInfo<llvm::DominatorTreeBase<clang::CFGBlock,
false> >::runDFS<false, bool (*)(clang::CFGBlock*,
clang::CFGBlock*)>(clang::CFGBlock*, unsigned int, bool (*)(clang::CFGBlock*,
clang::CFGBlock*), unsigned int)
llvm-project/llvm/include/llvm/Support/GenericDomTreeConstruction.h:237:12
#12 0x00007f7412089112 void
llvm::DomTreeBuilder::SemiNCAInfo<llvm::DominatorTreeBase<clang::CFGBlock,
false> >::doFullDFSWalk<bool (*)(clang::CFGBlock*,
clang::CFGBlock*)>(llvm::DominatorTreeBase<clang::CFGBlock, false> const&, bool
(*)(clang::CFGBlock*, clang::CFGBlock*))
llvm-project/llvm/include/llvm/Support/GenericDomTreeConstruction.h:554:7
#13 0x00007f7412088cb3
llvm::DomTreeBuilder::SemiNCAInfo<llvm::DominatorTreeBase<clang::CFGBlock,
false> >::CalculateFromScratch(llvm::DominatorTreeBase<clang::CFGBlock,
false>&,
llvm::DomTreeBuilder::SemiNCAInfo<llvm::DominatorTreeBase<clang::CFGBlock,
false> >::BatchUpdateInfo*)
llvm-project/llvm/include/llvm/Support/GenericDomTreeConstruction.h:572:10
#14 0x00007f7412088c29 void
llvm::DomTreeBuilder::Calculate<llvm::DominatorTreeBase<clang::CFGBlock, false>
>(llvm::DominatorTreeBase<clang::CFGBlock, false>&)
llvm-project/llvm/include/llvm/Support/GenericDomTreeConstruction.h:1601:1
#15 0x00007f7412088c04 llvm::DominatorTreeBase<clang::CFGBlock,
false>::recalculate(clang::CFG&)
llvm-project/llvm/include/llvm/Support/GenericDomTree.h:732:3
#16 0x00007f7412088446
clang::DominatorTree::buildDominatorTree(clang::AnalysisDeclContext&)
llvm-project/clang/include/clang/Analysis/Analyses/Dominators.h:88:3
#17 0x00007f7412086d5a (anonymous
namespace)::DominatorsTreeDumper::checkASTCodeBody(clang::Decl const*,
clang::ento::AnalysisManager&, clang::ento::BugReporter&) const
llvm-project/clang/lib/StaticAnalyzer/Checkers/DebugCheckers.cpp:39:11
#18 0x00007f7412086d08 void
clang::ento::check::ASTCodeBody::_checkBody<(anonymous
namespace)::DominatorsTreeDumper>(void*, clang::Decl const*,
clang::ento::AnalysisManager&, clang::ento::BugReporter&)
llvm-project/clang/include/clang/StaticAnalyzer/Core/Checker.h:53:3
#19 0x00007f74119b1a4a clang::ento::CheckerFn<void (clang::Decl const*,
clang::ento::AnalysisManager&,
clang::ento::BugReporter&)>::operator()(clang::Decl const*,
clang::ento::AnalysisManager&, clang::ento::BugReporter&) const
llvm-project/clang/include/clang/StaticAnalyzer/Core/CheckerManager.h:69:5
#20 0x00007f74119abe07
clang::ento::CheckerManager::runCheckersOnASTBody(clang::Decl const*,
clang::ento::AnalysisManager&, clang::ento::BugReporter&)
llvm-project/clang/lib/StaticAnalyzer/Core/CheckerManager.cpp:0:5
#21 0x00007f7412d98b65 (anonymous
namespace)::AnalysisConsumer::HandleCode(clang::Decl*, unsigned int,
clang::ento::ExprEngine::InliningModes, llvm::DenseSet<clang::Decl const*,
llvm::DenseMapInfo<clang::Decl const*> >*)
llvm-project/clang/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp:743:8
#22 0x00007f7412de15e4 (anonymous
namespace)::AnalysisConsumer::VisitFunctionDecl(clang::FunctionDecl*)
llvm-project/clang/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp:386:5
#23 0x00007f7412de0ff5 clang::RecursiveASTVisitor<(anonymous
namespace)::AnalysisConsumer>::WalkUpFromFunctionDecl(clang::FunctionDecl*)
llvm-project/build/tools/clang/include/clang/AST/DeclNodes.inc:389:1
#24 0x00007f7412d90582 clang::RecursiveASTVisitor<(anonymous
namespace)::AnalysisConsumer>::TraverseFunctionDecl(clang::FunctionDecl*)
llvm-project/clang/include/clang/AST/RecursiveASTVisitor.h:2031:1
#25 0x00007f7412d8a823 clang::RecursiveASTVisitor<(anonymous
namespace)::AnalysisConsumer>::TraverseDecl(clang::Decl*)
llvm-project/build/tools/clang/include/clang/AST/DeclNodes.inc:389:1
#26 0x00007f7412d89bf2 (anonymous
namespace)::AnalysisConsumer::runAnalysisOnTranslationUnit(clang::ASTContext&)
llvm-project/clang/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp:578:5
#27 0x00007f7412d88fbb (anonymous
namespace)::AnalysisConsumer::HandleTranslationUnit(clang::ASTContext&)
llvm-project/clang/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp:0:5
#28 0x00007f7415378572 clang::ParseAST(clang::Sema&, bool, bool)
llvm-project/clang/lib/Parse/ParseAST.cpp:178:12
#29 0x00007f741a05c57c clang::ASTFrontendAction::ExecuteAction()
llvm-project/clang/lib/Frontend/FrontendAction.cpp:1037:1
#30 0x00007f741a05bfb0 clang::FrontendAction::Execute()
llvm-project/clang/lib/Frontend/FrontendAction.cpp:938:7
#31 0x00007f7419fd86b2
clang::CompilerInstance::ExecuteAction(clang::FrontendAction&)
llvm-project/clang/lib/Frontend/CompilerInstance.cpp:945:7
#32 0x00007f7419c5856c
clang::ExecuteCompilerInvocation(clang::CompilerInstance*)
llvm-project/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp:285:8
#33 0x0000000000240850 cc1_main(llvm::ArrayRef<char const*>, char const*,
void*) llvm-project/clang/tools/driver/cc1_main.cpp:225:15
#34 0x00000000002344b7 ExecuteCC1Tool(llvm::ArrayRef<char const*>,
llvm::StringRef) llvm-project/clang/tools/driver/driver.cpp:309:5
#35 0x000000000023384c main llvm-project/clang/tools/driver/driver.cpp:381:5
#36 0x00007f74189a5b97 __libc_start_main
/build/glibc-OTsEL5/glibc-2.27/csu/../csu/libc-start.c:344:0
#37 0x000000000023302a _start (llvm-project/build/bin/clang+0x23302a)
Segmentation fault (core dumped)

-- 
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20190527/7582e0ba/attachment.html>


More information about the llvm-bugs mailing list