vabridgers wrote:

This change has caused a regression in one of our systems integration tests 
that test static analysis for the bstring lib project 
(https://github.com/websnarf/bstrlib) with cross translation unit analysis 
enabled. Unfortunately I do not have a simple reproducer that stands alone just 
using clang, but I do have a reproducer that uses CodeChecker and can paste in 
the crash signature here. Please consider reverting the change until a proper 
fix can be made and this issue is addressed. 

bstrwrap.cpp
  1 #include "bstrwrap.h"
  2 #include <iostream>
  3
  4 Bstrlib::CBString::CBString () {
  5 } 

bstrwrap.h
  1 #include <string>
  2
  3 namespace Bstrlib {
  4 struct CBString {  
  5    CBString ();
  6 };
  7
  8 extern std::istream& getline (std::istream& sin, CBString& b, char 
terminator='\n');
  9
 10 } // namespace Bstrlib


test.cpp
  1 #include "bstrwrap.h"
  2
  3 int test0 (void) {
  4   Bstrlib::CBString c0;
  5   return 0;
  6 }

Using CodeChecker from https://github.com/Ericsson/codechecker, Log the build

``CodeChecker log -b "g++ -c test.cpp bstrwrap.cpp" -o comp.json``

Repro step

``env PATH=<UpstreamCompilerPath>:$PATH CC_ANALYZERS_FROM_PATH=1 CodeChecker 
analyze comp.json  --clean  --ctu -o report --analyzers clangsa``

The crash signature, appears to be crashing in AST Import. 
1.      <eof> parser at end of file
2.      While analyzing stack:
        #0 Calling test0()
3.      test.cpp:4:21: Error evaluating statement
4.      test.cpp:4:21: Error evaluating statement
 #0 0x0000000003cb7248 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) 
(clang-19+0x3cb7248)
 #1 0x0000000003cb4f2c llvm::sys::CleanupOnSignal(unsigned long) 
(clang-19+0x3cb4f2c)
 #2 0x0000000003bfd308 CrashRecoverySignalHandler(int) 
CrashRecoveryContext.cpp:0:0
 #3 0x00007f9e5d53d630 __restore_rt sigaction.c:0:0
 #4 0x00007f9e5af39387 raise (/lib64/libc.so.6+0x36387)
 #5 0x00007f9e5af3aa78 abort (/lib64/libc.so.6+0x37a78)
 #6 0x00007f9e5af321a6 __assert_fail_base (/lib64/libc.so.6+0x2f1a6)
 #7 0x00007f9e5af32252 (/lib64/libc.so.6+0x2f252)
 #8 0x00000000072ada26 
clang::FunctionDecl::setDescribedFunctionTemplate(clang::FunctionTemplateDecl*) 
(clang-19+0x72ada26)
 #9 0x0000000007190a56 
clang::ASTNodeImporter::VisitFunctionTemplateDecl(clang::FunctionTemplateDecl*) 
(clang-19+0x7190a56)
#10 0x000000000716e998 clang::declvisitor::Base<std::add_pointer, 
clang::ASTNodeImporter, llvm::Expected<clang::Decl*>>::Visit(clang::Decl*) 
crtstuff.c:0:0
#11 0x000000000716eedb clang::ASTImporter::Import(clang::Decl*) 
(clang-19+0x716eedb)
#12 0x0000000007172108 std::conditional<is_base_of_v<clang::Type, clang::Decl>, 
llvm::Expected<clang::Decl const*>, llvm::Expected<clang::Decl*>>::type 
clang::ASTNodeImporter::import<clang::Decl>(clang::Decl*) crtstuff.c:0:0
#13 0x000000000717d072 
clang::ASTNodeImporter::ImportDeclContext(clang::DeclContext*, bool) 
(clang-19+0x717d072)
#14 0x000000000718677b 
clang::ASTNodeImporter::VisitNamespaceDecl(clang::NamespaceDecl*) 
(clang-19+0x718677b)
#15 0x000000000716ea38 clang::declvisitor::Base<std::add_pointer, 
clang::ASTNodeImporter, llvm::Expected<clang::Decl*>>::Visit(clang::Decl*) 
crtstuff.c:0:0
#16 0x000000000716eedb clang::ASTImporter::Import(clang::Decl*) 
(clang-19+0x716eedb)
#17 0x0000000007175146 clang::ASTImporter::Import(clang::NestedNameSpecifier*) 
(clang-19+0x7175146)
#18 0x000000000717a0bb 
clang::ASTNodeImporter::VisitElaboratedType(clang::ElaboratedType const*) 
(clang-19+0x717a0bb)
#19 0x0000000007174945 clang::TypeVisitor<clang::ASTNodeImporter, 
llvm::Expected<clang::QualType>>::Visit(clang::Type const*) crtstuff.c:0:0
#20 0x0000000007174c07 clang::ASTImporter::Import(clang::Type const*) 
(clang-19+0x7174c07)
#21 0x0000000007175bd7 clang::ASTImporter::Import(clang::QualType) 
(clang-19+0x7175bd7)
#22 0x0000000007177e20 
clang::ASTNodeImporter::VisitLValueReferenceType(clang::LValueReferenceType 
const*) (clang-19+0x7177e20)






https://github.com/llvm/llvm-project/pull/87144
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to