Charusso added a comment.

In D64374#1577266 <https://reviews.llvm.org/D64374#1577266>, @NoQ wrote:

> Can you provide more info, eg. the full backtrace?


Well, `unique_dyn_cast<>` and `unique_dyn_cast_or_null<>` is used like 20 times 
in the LLVM codebase, whoops. We want to model it.

Full info:

  clang++: 
/home/username/llvm-project/clang/lib/StaticAnalyzer/Core/ExprEngine.cpp:333: 
clang::ento::ProgramStateRef 
clang::ento::ExprEngine::createTemporaryRegionIfNeeded(clang::ento::ProgramStateRef,
 const clang::LocationContext *, const clang::Expr *, const clang::Expr *, 
const clang::ento::SubRegion **): Assertion 
`!InitValWithAdjustments.getAs<Loc>() || Loc::isLocType(Result->getType()) || 
Result->getType()->isMemberPointerType()' failed.
  Stack dump:
  0.    Program arguments: /home/username/llvm-project/build/bin/clang++ -cc1 
-triple x86_64-unknown-linux-gnu -analyze -disable-free -main-file-name 
PrettyVariableDumper.cpp -analyzer-store=region 
-analyzer-opt-analyze-nested-blocks -analyzer-checker=core 
-analyzer-checker=apiModeling -analyzer-checker=unix -analyzer-checker=deadcode 
-analyzer-checker=cplusplus 
-analyzer-checker=security.insecureAPI.UncheckedReturn 
-analyzer-checker=security.insecureAPI.getpw 
-analyzer-checker=security.insecureAPI.gets 
-analyzer-checker=security.insecureAPI.mktemp 
-analyzer-checker=security.insecureAPI.mkstemp 
-analyzer-checker=security.insecureAPI.vfork 
-analyzer-checker=nullability.NullPassedToNonnull 
-analyzer-checker=nullability.NullReturnedFromNonnull -analyzer-output plist -w 
-analyzer-config-compatibility-mode=true -mrelocation-model pic -pic-level 2 
-mthread-model posix -mdisable-fp-elim -fmath-errno -masm-verbose 
-mconstructor-aliases -munwind-tables -fuse-init-array -target-cpu x86-64 
-dwarf-column-info -debugger-tuning=gdb -resource-dir 
/home/username/llvm-project/build/lib/clang/9.0.0 -D GTEST_HAS_RTTI=0 -D _DEBUG 
-D _GNU_SOURCE -D __STDC_CONSTANT_MACROS -D __STDC_FORMAT_MACROS -D 
__STDC_LIMIT_MACROS -I tools/llvm-pdbutil -I 
/home/username/gsoc/llvm-project/llvm/tools/llvm-pdbutil -I 
/usr/include/libxml2 -I include -I 
/home/username/gsoc/llvm-project/llvm/include -internal-isystem 
/usr/lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8 -internal-isystem 
/usr/lib/gcc/x86_64-linux-gnu/8/../../../../include/x86_64-linux-gnu/c++/8 
-internal-isystem 
/usr/lib/gcc/x86_64-linux-gnu/8/../../../../include/x86_64-linux-gnu/c++/8 
-internal-isystem 
/usr/lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/backward 
-internal-isystem /usr/local/include -internal-isystem 
/home/username/llvm-project/build/lib/clang/9.0.0/include 
-internal-externc-isystem /usr/include/x86_64-linux-gnu 
-internal-externc-isystem /include -internal-externc-isystem /usr/include 
-Wno-unused-parameter -Wwrite-strings -Wno-missing-field-initializers 
-Wno-long-long -Wno-maybe-uninitialized -Wno-noexcept-type -Wno-comment 
-std=c++11 -fdeprecated-macro -fdebug-compilation-dir 
/home/username/gsoc/llvm-project/build -ferror-limit 19 -fmessage-length 0 
-fvisibility-inlines-hidden -fno-rtti -fobjc-runtime=gcc 
-fdiagnostics-show-option -fcolor-diagnostics -analyzer-output=html 
-analyzer-config stable-report-filename=true -faddrsig -o 
/home/username/gsoc/scan-build/llvm-project/2019-07-09-085802-2471-1 -x c++ 
/home/username/gsoc/llvm-project/llvm/tools/llvm-pdbutil/PrettyVariableDumper.cpp
 
  1.    <eof> parser at end of file
  2.    While analyzing stack: 
        #0 Calling llvm::unique_dyn_cast at line 
/home/username/gsoc/llvm-project/llvm/include/llvm/Support/Casting.h:397:10
        #1 Calling llvm::unique_dyn_cast_or_null at line 
/home/username/gsoc/llvm-project/llvm/include/llvm/Support/Casting.h:403:10
        #2 Calling llvm::unique_dyn_cast_or_null at line 
/home/username/gsoc/llvm-project/llvm/include/llvm/DebugInfo/PDB/PDBSymbol.h:160:12
        #3 Calling llvm::pdb::PDBSymbol::getConcreteSymbolByIdHelper at line 
/home/username/gsoc/llvm-project/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypePointer.h:34:3
 
<Spelling=/home/username/gsoc/llvm-project/llvm/include/llvm/DebugInfo/PDB/PDBSymbol.h:31:12>
        #4 Calling llvm::pdb::PDBSymbolTypePointer::getPointeeType at line 200
        #5 Calling llvm::pdb::VariableDumper::dumpRight
  3.    
/home/username/gsoc/llvm-project/llvm/include/llvm/Support/Casting.h:381:10: 
Error evaluating statement
  4.    
/home/username/gsoc/llvm-project/llvm/include/llvm/Support/Casting.h:381:10: 
Error evaluating statement
   #0 0x00007f2daaccc19f llvm::sys::PrintStackTrace(llvm::raw_ostream&) 
/home/username/llvm-project/llvm/lib/Support/Unix/Signals.inc:494:13
   #1 0x00007f2daacca400 llvm::sys::RunSignalHandlers() 
/home/username/llvm-project/llvm/lib/Support/Signals.cpp:69:18
   #2 0x00007f2daaccc5a8 SignalHandler(int) 
/home/username/llvm-project/llvm/lib/Support/Unix/Signals.inc:357:1
   #3 0x00007f2daa5c2890 __restore_rt 
(/lib/x86_64-linux-gnu/libpthread.so.0+0x12890)
   #4 0x00007f2da8868e97 raise 
/build/glibc-OTsEL5/glibc-2.27/signal/../sysdeps/unix/sysv/linux/raise.c:51:0
   #5 0x00007f2da886a801 abort 
/build/glibc-OTsEL5/glibc-2.27/stdlib/abort.c:81:0
   #6 0x00007f2da885a39a __assert_fail_base 
/build/glibc-OTsEL5/glibc-2.27/assert/assert.c:89:0
   #7 0x00007f2da885a412 (/lib/x86_64-linux-gnu/libc.so.6+0x30412)
   #8 0x00007f2da410c03e 
(/home/username/llvm-project/build/bin/../lib/../lib/../lib/libclangStaticAnalyzerCore.so.9svn+0x13303e)
   #9 0x00007f2da4129ad9 llvm::IntrusiveRefCntPtr<clang::ento::ProgramState 
const>::swap(llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const>&) 
/home/username/llvm-project/llvm/include/llvm/ADT/IntrusiveRefCntPtr.h:169:20
  #10 0x00007f2da4129ad9 llvm::IntrusiveRefCntPtr<clang::ento::ProgramState 
const>::operator=(llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const>) 
/home/username/llvm-project/llvm/include/llvm/ADT/IntrusiveRefCntPtr.h:159:0
  #11 0x00007f2da4129ad9 
clang::ento::ExprEngine::CreateCXXTemporaryObject(clang::MaterializeTemporaryExpr
 const*, clang::ento::ExplodedNode*, clang::ento::ExplodedNodeSet&) 
/home/username/llvm-project/clang/lib/StaticAnalyzer/Core/ExprEngineCXX.cpp:34:0
  #12 0x00007f2da4110f67 clang::ento::ExprEngine::Visit(clang::Stmt const*, 
clang::ento::ExplodedNode*, clang::ento::ExplodedNodeSet&) 
/home/username/llvm-project/clang/lib/StaticAnalyzer/Core/ExprEngine.cpp:1709:25
  #13 0x00007f2da410d81e clang::ento::ExprEngine::ProcessStmt(clang::Stmt 
const*, clang::ento::ExplodedNode*) 
/home/username/llvm-project/clang/lib/StaticAnalyzer/Core/ExprEngine.cpp:791:9
  #14 0x00007f2da410d4c9 
clang::ento::ExprEngine::processCFGElement(clang::CFGElement, 
clang::ento::ExplodedNode*, unsigned int, clang::ento::NodeBuilderContext*) 
/home/username/llvm-project/clang/lib/StaticAnalyzer/Core/ExprEngine.cpp:637:7
  #15 0x00007f2da40fee01 
clang::ento::CoreEngine::HandlePostStmt(clang::CFGBlock const*, unsigned int, 
clang::ento::ExplodedNode*) 
/home/username/llvm-project/clang/lib/StaticAnalyzer/Core/CoreEngine.cpp:469:1
  #16 0x00007f2da40fddbe std::__uniq_ptr_impl<clang::ento::WorkList, 
std::default_delete<clang::ento::WorkList> >::_M_ptr() const 
/usr/lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/bits/unique_ptr.h:150:42
  #17 0x00007f2da40fddbe std::unique_ptr<clang::ento::WorkList, 
std::default_delete<clang::ento::WorkList> >::get() const 
/usr/lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/bits/unique_ptr.h:343:0
  #18 0x00007f2da40fddbe std::unique_ptr<clang::ento::WorkList, 
std::default_delete<clang::ento::WorkList> >::operator->() const 
/usr/lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/bits/unique_ptr.h:337:0
  #19 0x00007f2da40fddbe 
clang::ento::CoreEngine::ExecuteWorkList(clang::LocationContext const*, 
unsigned int, llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const>) 
/home/username/llvm-project/clang/lib/StaticAnalyzer/Core/CoreEngine.cpp:129:0
  #20 0x00007f2da48a76aa llvm::IntrusiveRefCntPtr<clang::ento::ProgramState 
const>::release() 
/home/username/llvm-project/llvm/include/llvm/ADT/IntrusiveRefCntPtr.h:188:9
  #21 0x00007f2da48a76aa llvm::IntrusiveRefCntPtr<clang::ento::ProgramState 
const>::~IntrusiveRefCntPtr() 
/home/username/llvm-project/llvm/include/llvm/ADT/IntrusiveRefCntPtr.h:156:0
  #22 0x00007f2da48a76aa 
clang::ento::ExprEngine::ExecuteWorkList(clang::LocationContext const*, 
unsigned int) 
/home/username/llvm-project/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h:168:0
  #23 0x00007f2da48a76aa (anonymous 
namespace)::AnalysisConsumer::RunPathSensitiveChecks(clang::Decl*, 
clang::ento::ExprEngine::InliningModes, llvm::DenseSet<clang::Decl const*, 
llvm::DenseMapInfo<clang::Decl const*> >*) 
/home/username/llvm-project/clang/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp:797:0
  #24 0x00007f2da48a76aa (anonymous 
namespace)::AnalysisConsumer::HandleCode(clang::Decl*, unsigned int, 
clang::ento::ExprEngine::InliningModes, llvm::DenseSet<clang::Decl const*, 
llvm::DenseMapInfo<clang::Decl const*> >*) 
/home/username/llvm-project/clang/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp:770:0
  #25 0x00007f2da489f815 llvm::DenseMapBase<llvm::DenseMap<clang::Decl const*, 
llvm::detail::DenseSetEmpty, llvm::DenseMapInfo<clang::Decl const*>, 
llvm::detail::DenseSetPair<clang::Decl const*> >, clang::Decl const*, 
llvm::detail::DenseSetEmpty, llvm::DenseMapInfo<clang::Decl const*>, 
llvm::detail::DenseSetPair<clang::Decl const*> >::empty() const 
/home/username/llvm-project/llvm/include/llvm/ADT/DenseMap.h:123:28
  #26 0x00007f2da489f815 llvm::DenseMapBase<llvm::DenseMap<clang::Decl const*, 
llvm::detail::DenseSetEmpty, llvm::DenseMapInfo<clang::Decl const*>, 
llvm::detail::DenseSetPair<clang::Decl const*> >, clang::Decl const*, 
llvm::detail::DenseSetEmpty, llvm::DenseMapInfo<clang::Decl const*>, 
llvm::detail::DenseSetPair<clang::Decl const*> >::begin() 
/home/username/llvm-project/llvm/include/llvm/ADT/DenseMap.h:102:0
  #27 0x00007f2da489f815 llvm::detail::DenseSetImpl<clang::Decl const*, 
llvm::DenseMap<clang::Decl const*, llvm::detail::DenseSetEmpty, 
llvm::DenseMapInfo<clang::Decl const*>, llvm::detail::DenseSetPair<clang::Decl 
const*> >, llvm::DenseMapInfo<clang::Decl const*> >::begin() 
/home/username/llvm-project/llvm/include/llvm/ADT/DenseSet.h:159:0
  #28 0x00007f2da489f815 (anonymous 
namespace)::AnalysisConsumer::HandleDeclsCallGraph(unsigned int) 
/home/username/llvm-project/clang/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp:560:0
  #29 0x00007f2da489f815 (anonymous 
namespace)::AnalysisConsumer::runAnalysisOnTranslationUnit(clang::ASTContext&) 
/home/username/llvm-project/clang/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp:607:0
  #30 0x00007f2da489f815 (anonymous 
namespace)::AnalysisConsumer::HandleTranslationUnit(clang::ASTContext&) 
/home/username/llvm-project/clang/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp:636:0
  #31 0x00007f2da55ec443 
__gnu_cxx::__normal_iterator<std::unique_ptr<clang::TemplateInstantiationCallback,
 std::default_delete<clang::TemplateInstantiationCallback> >*, 
std::vector<std::unique_ptr<clang::TemplateInstantiationCallback, 
std::default_delete<clang::TemplateInstantiationCallback> >, 
std::allocator<std::unique_ptr<clang::TemplateInstantiationCallback, 
std::default_delete<clang::TemplateInstantiationCallback> > > > 
>::__normal_iterator(std::unique_ptr<clang::TemplateInstantiationCallback, 
std::default_delete<clang::TemplateInstantiationCallback> >* const&) 
/usr/lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/bits/stl_iterator.h:784:20
  #32 0x00007f2da55ec443 
std::vector<std::unique_ptr<clang::TemplateInstantiationCallback, 
std::default_delete<clang::TemplateInstantiationCallback> >, 
std::allocator<std::unique_ptr<clang::TemplateInstantiationCallback, 
std::default_delete<clang::TemplateInstantiationCallback> > > >::begin() 
/usr/lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/bits/stl_vector.h:699:0
  #33 0x00007f2da55ec443 void 
clang::finalize<std::vector<std::unique_ptr<clang::TemplateInstantiationCallback,
 std::default_delete<clang::TemplateInstantiationCallback> >, 
std::allocator<std::unique_ptr<clang::TemplateInstantiationCallback, 
std::default_delete<clang::TemplateInstantiationCallback> > > > 
>(std::vector<std::unique_ptr<clang::TemplateInstantiationCallback, 
std::default_delete<clang::TemplateInstantiationCallback> >, 
std::allocator<std::unique_ptr<clang::TemplateInstantiationCallback, 
std::default_delete<clang::TemplateInstantiationCallback> > > >&, clang::Sema 
const&) 
/home/username/llvm-project/clang/include/clang/Sema/TemplateInstCallback.h:54:0
  #34 0x00007f2da55ec443 clang::ParseAST(clang::Sema&, bool, bool) 
/home/username/llvm-project/clang/lib/Parse/ParseAST.cpp:178:0
  #35 0x00007f2da98f1061 clang::FrontendAction::Execute() 
/home/username/llvm-project/clang/lib/Frontend/FrontendAction.cpp:938:10
  #36 0x00007f2da98a70d8 llvm::Error::getPtr() const 
/home/username/llvm-project/llvm/include/llvm/Support/Error.h:273:42
  #37 0x00007f2da98a70d8 llvm::Error::operator bool() 
/home/username/llvm-project/llvm/include/llvm/Support/Error.h:236:0
  #38 0x00007f2da98a70d8 
clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) 
/home/username/llvm-project/clang/lib/Frontend/CompilerInstance.cpp:944:0
  #39 0x00007f2da97d651e 
clang::ExecuteCompilerInvocation(clang::CompilerInstance*) 
/home/username/llvm-project/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp:291:25
  #40 0x0000000000211def cc1_main(llvm::ArrayRef<char const*>, char const*, 
void*) /home/username/llvm-project/clang/tools/driver/cc1_main.cpp:249:15
  #41 0x000000000020fb6b ExecuteCC1Tool(llvm::ArrayRef<char const*>, 
llvm::StringRef) 
/home/username/llvm-project/clang/tools/driver/driver.cpp:309:12
  #42 0x000000000020fb6b main 
/home/username/llvm-project/clang/tools/driver/driver.cpp:381:0
  #43 0x00007f2da884bb97 __libc_start_main 
/build/glibc-OTsEL5/glibc-2.27/csu/../csu/libc-start.c:344:0
  #44 0x000000000020d02a _start 
(/home/username/llvm-project/build/bin/clang+++0x20d02a)


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D64374/new/

https://reviews.llvm.org/D64374



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to