vabridgers wrote: Hello @jcsxky , here's a simplified reproducer that drives the crash from a shell script. All you need to do is make sure your clang build is in the path. I repro'd this on a RHEL7 host, just in case that details matters (but I don't think it will).
This script echos the simplified source files and the accompanying externalDefMap.txt needed to drive a CTU analysis. # remove, regen the ctu directory and externalDefMap.txt file. This file corresponds to # to the subsequently generated header and source files and is provided for simplicity of crash repro rm -rf ctudir mkdir ctudir touch ctudir/externalDefMap.txt echo '11:c:@F@test0# test.cpp.ast' >> ctudir/externalDefMap.txt echo '35:c:@N@Bstrlib@S@CBString@F@CBString# bstrwrap.cpp.ast' >> ctudir/externalDefMap.txt # remove, regen the cpp file rm -rf test.cpp echo '#include "bstrwrap.h"' >> test.cpp echo 'int test0 (void) {' >> test.cpp echo ' Bstrlib::CBString c0;' >> test.cpp echo ' return 0;' >> test.cpp echo '}' >> test.cpp # remove, regen the cpp file rm -rf bstrwrap.cpp echo '#include "bstrwrap.h"' >> bstrwrap.cpp echo '#include <iostream>' >> bstrwrap.cpp echo 'Bstrlib::CBString::CBString () {' >> bstrwrap.cpp echo '}' >> bstrwrap.cpp # remove, regen the header file rm -rf bstrwrap.h echo '#include <string>' >> bstrwrap.h echo 'namespace Bstrlib {' >> bstrwrap.h echo 'struct CBString {' >> bstrwrap.h echo ' CBString ();' >> bstrwrap.h echo '};' >> bstrwrap.h echo 'extern std::istream& getline (void);' >> bstrwrap.h echo '}' >> bstrwrap.h # generate the ASTs clang bstrwrap.cpp -emit-ast -D__clang_analyzer__ -w -o ctudir/bstrwrap.cpp.ast clang test.cpp -emit-ast -D__clang_analyzer__ -w -o ctudir/test.cpp.ast # drive the analysis exposing the AST import crash #clang --analyze -Xclang -analyzer-config -Xclang experimental-enable-naive-ctu-analysis=true -Xclang -analyzer-config -Xclang ctu-dir=ctudir -Xclang -analyzer-config -Xclang display-ctu-progress=true test.cpp clang --analyze -Xclang -analyzer-config -Xclang experimental-enable-naive-ctu-analysis=true -Xclang -analyzer-config -Xclang ctu-dir=ctudir test.cpp 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