DimitryAndric wrote:

After this PR landed, we're seeing assertion failures when building the FreeBSD 
cad/OrcaSlicer port (see https://github.com/OrcaSlicer/orcaslicer and 
https://www.freshports.org/cad/OrcaSlicer/):

```
Assertion failed: (Reader.getContext().getLangOpts().Modules && "already 
deserialized this template specialization"), function VisitFunctionDecl, file 
/share/dim/src/llvm/llvm-project/clang/lib/Serialization/ASTReaderDecl.cpp, 
line 988.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and 
include the crash backtrace, preprocessed source, and associated run script.
Stack dump:
0.      Program arguments: 
/share/dim/llvm/llvmorg-20-init-15521-g38b3d87bd384-freebsd16-amd64-ninja-clang-rel-1/bin/clang++
 -DBBL_RELEASE_TO_PUBLIC=1 -DBOOST_ATOMIC_DYN_LINK -DBOOST_ATOMIC_NO_LIB 
-DBOOST_CHARCONV_DYN_LINK -DBOOST_CHARCONV_NO_LIB -DBOOST_CHRONO_DYN_LINK 
-DBOOST_CHRONO_NO_LIB -DBOOST_CONTAINER_DYN_LINK -DBOOST_CONTAINER_NO_LIB 
-DBOOST_DATE_TIME_DYN_LINK -DBOOST_DATE_TIME_NO_LIB -DBOOST_FILESYSTEM_DYN_LINK 
-DBOOST_FILESYSTEM_NO_LIB -DBOOST_IOSTREAMS_DYN_LINK -DBOOST_IOSTREAMS_NO_LIB 
-DBOOST_LOCALE_DYN_LINK -DBOOST_LOCALE_NO_LIB -DBOOST_LOG_DYN_LINK 
-DBOOST_LOG_NO_LIB -DBOOST_LOG_SETUP_DYN_LINK -DBOOST_LOG_SETUP_NO_LIB 
-DBOOST_NOWIDE_DYN_LINK -DBOOST_NOWIDE_NO_LIB -DBOOST_PROGRAM_OPTIONS_DYN_LINK 
-DBOOST_PROGRAM_OPTIONS_NO_LIB -DBOOST_RANDOM_DYN_LINK -DBOOST_RANDOM_NO_LIB 
-DBOOST_REGEX_DYN_LINK -DBOOST_REGEX_NO_LIB -DBOOST_SERIALIZATION_DYN_LINK 
-DBOOST_SERIALIZATION_NO_LIB -DBOOST_THREAD_DYN_LINK -DBOOST_THREAD_NO_LIB 
-DHAVE_DRACO -DHAVE_FFMPEG -DHAVE_FREEIMAGE -DHAVE_FREETYPE -DHAVE_GLES2_EXT 
-DHAVE_Inspector -DHAVE_OPENGL_EXT -DHAVE_QT -DHAVE_RAPIDJSON -DHAVE_SPNAV 
-DHAVE_TBB -DHAVE_TK -DHAVE_VTK -DHAVE_XLIB -DLIBNEST2D_GEOMETRIES_libslic3r 
-DLIBNEST2D_OPTIMIZER_nlopt -DLIBNEST2D_STATIC -DLIBNEST2D_THREADING_tbb 
-DNDEBUG -DNLOPT_DLL -DOCC_CONVERT_SIGNALS -DSLIC3R_GUI 
-DTBB_USE_CAPTURED_EXCEPTION=0 -DUNICODE -DUSE_TBB -DVTK_OPENGL2_BACKEND 
-DWXINTL_NO_GETTEXT_MACRO -D_UNICODE -DwxNO_UNSAFE_WXSTRING_CONV 
-DwxUSE_UNICODE 
-I/wrkdirs/share/dim/ports/cad/OrcaSlicer/work/OrcaSlicer-2.3.2/src/libslic3r 
-I/wrkdirs/share/dim/ports/cad/OrcaSlicer/work/.build/src/libslic3r 
-I/wrkdirs/share/dim/ports/cad/OrcaSlicer/work/OrcaSlicer-2.3.2/deps_src/clipper2/Clipper2Lib/include
 -isystem /usr/local/include/eigen3 -isystem /usr/local/include/dbus-1.0 
-isystem /usr/local/lib/dbus-1.0/include -isystem 
/wrkdirs/share/dim/ports/cad/OrcaSlicer/work/OrcaSlicer-2.3.2/src -isystem 
/wrkdirs/share/dim/ports/cad/OrcaSlicer/work/.build/src/dev-utils/platform 
-isystem 
/wrkdirs/share/dim/ports/cad/OrcaSlicer/work/OrcaSlicer-2.3.2/src/libigl 
-isystem /usr/local/include/opencv4 -isystem /usr/local/include/OpenCASCADE 
-isystem 
/wrkdirs/share/dim/ports/cad/OrcaSlicer/work/OrcaSlicer-2.3.2/deps_src/admesh 
-isystem 
/wrkdirs/share/dim/ports/cad/OrcaSlicer/work/OrcaSlicer-2.3.2/deps_src/admesh/..
 -isystem 
/wrkdirs/share/dim/ports/cad/OrcaSlicer/work/OrcaSlicer-2.3.2/deps_src/eigen 
-isystem 
/wrkdirs/share/dim/ports/cad/OrcaSlicer/work/OrcaSlicer-2.3.2/deps_src/libigl 
-isystem 
/wrkdirs/share/dim/ports/cad/OrcaSlicer/work/OrcaSlicer-2.3.2/deps_src/libnest2d/include
 -isystem 
/wrkdirs/share/dim/ports/cad/OrcaSlicer/work/OrcaSlicer-2.3.2/deps_src/miniz 
-isystem 
/wrkdirs/share/dim/ports/cad/OrcaSlicer/work/OrcaSlicer-2.3.2/deps_src/clipper 
-isystem 
/wrkdirs/share/dim/ports/cad/OrcaSlicer/work/OrcaSlicer-2.3.2/deps_src/glu-libtess/include
 -isystem 
/wrkdirs/share/dim/ports/cad/OrcaSlicer/work/OrcaSlicer-2.3.2/deps_src/semver 
-isystem /usr/local/include/Imath -O2 -pipe -fstack-protector-strong -isystem 
/usr/local/include -fno-strict-aliasing -DwxDEBUG_LEVEL=0 -isystem 
/usr/local/include -Wall -Wno-reorder -O2 -pipe -fstack-protector-strong 
-isystem /usr/local/include -fno-strict-aliasing -DwxDEBUG_LEVEL=0 -isystem 
/usr/local/include -DNDEBUG -std=gnu++17 -fPIC -fsigned-char 
-Werror=return-type -Wno-unused-function -Wno-unused-variable 
-Wno-unused-but-set-variable -Wno-unused-label -Wno-unused-local-typedefs 
-Wno-sign-compare -Wno-misleading-indentation -Wno-switch 
-Wno-ignored-attributes -Wno-deprecated-declarations -pthread 
-DOPENVDB_ABI_VERSION_NUMBER=13 -Winvalid-pch -Xclang -include-pch -Xclang 
/wrkdirs/share/dim/ports/cad/OrcaSlicer/work/.build/src/libslic3r/CMakeFiles/libslic3r.dir/cmake_pch.hxx.pch
 -Xclang -include -Xclang 
/wrkdirs/share/dim/ports/cad/OrcaSlicer/work/.build/src/libslic3r/CMakeFiles/libslic3r.dir/cmake_pch.hxx
 -MD -MT src/libslic3r/CMakeFiles/libslic3r.dir/Arrange.cpp.o -MF 
src/libslic3r/CMakeFiles/libslic3r.dir/Arrange.cpp.o.d -o 
src/libslic3r/CMakeFiles/libslic3r.dir/Arrange.cpp.o -c 
/wrkdirs/share/dim/ports/cad/OrcaSlicer/work/OrcaSlicer-2.3.2/src/libslic3r/Arrange.cpp
1.      
/wrkdirs/share/dim/ports/cad/OrcaSlicer/work/OrcaSlicer-2.3.2/src/libslic3r/GCode/WipeTower.hpp:204:19:
 current parser token ';'
2.      
/wrkdirs/share/dim/ports/cad/OrcaSlicer/work/OrcaSlicer-2.3.2/src/libslic3r/GCode/WipeTower.hpp:16:1:
 parsing namespace 'Slic3r'
3.      
/wrkdirs/share/dim/ports/cad/OrcaSlicer/work/OrcaSlicer-2.3.2/src/libslic3r/GCode/WipeTower.hpp:24:1:
 parsing struct/union/class body 'Slic3r::WipeTower'
4.      
/wrkdirs/share/dim/ports/cad/OrcaSlicer/work/OrcaSlicer-2.3.2/src/libslic3r/GCode/WipeTower.hpp:200:34:
 parsing function body 'Slic3r::WipeTower::get_bbx'
5.      
/wrkdirs/share/dim/ports/cad/OrcaSlicer/work/OrcaSlicer-2.3.2/src/libslic3r/GCode/WipeTower.hpp:200:34:
 in compound statement ('{}')
 #0 0x0000000003057858 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) 
(/share/dim/llvm/llvmorg-20-init-15521-g38b3d87bd384-freebsd16-amd64-ninja-clang-rel-1/bin/clang+++0x3057858)
 #1 0x0000000003055369 llvm::sys::RunSignalHandlers() 
(/share/dim/llvm/llvmorg-20-init-15521-g38b3d87bd384-freebsd16-amd64-ninja-clang-rel-1/bin/clang+++0x3055369)
 #2 0x0000000002fc4e23 CrashRecoverySignalHandler(int) 
CrashRecoveryContext.cpp:0:0
 #3 0x000000082a4608ec handle_signal /usr/src/lib/libthr/thread/thr_sig.c:0:3
 #4 0x000000082a45ff0b thr_sighandler /usr/src/lib/libthr/thread/thr_sig.c:262:1
 #5 0x00000008282ab2d3 ([vdso]+0x2d3)
 #6 0x000000082f91ad8a _thr_kill 
/usr/obj/usr/src/amd64.amd64/lib/libsys/thr_kill.S:4:0
 #7 0x000000082de55564 raise /usr/src/lib/libc/gen/raise.c:0:10
 #8 0x000000082df07279 abort /usr/src/lib/libc/stdlib/abort.c:67:17
 #9 0x000000082de380a1 (/lib/libc.so.7+0xab0a1)
#10 0x0000000003e29e9a 
(/share/dim/llvm/llvmorg-20-init-15521-g38b3d87bd384-freebsd16-amd64-ninja-clang-rel-1/bin/clang+++0x3e29e9a)
#11 0x0000000003e252c5 clang::ASTDeclReader::Visit(clang::Decl*) 
(/share/dim/llvm/llvmorg-20-init-15521-g38b3d87bd384-freebsd16-amd64-ninja-clang-rel-1/bin/clang+++0x3e252c5)
#12 0x0000000003a3629f 
clang::StackExhaustionHandler::runWithSufficientStackSpace(clang::SourceLocation,
 llvm::function_ref<void ()>) 
(/share/dim/llvm/llvmorg-20-init-15521-g38b3d87bd384-freebsd16-amd64-ninja-clang-rel-1/bin/clang+++0x3a3629f)
#13 0x0000000003e4b19c clang::ASTReader::ReadDeclRecord(clang::GlobalDeclID) 
(/share/dim/llvm/llvmorg-20-init-15521-g38b3d87bd384-freebsd16-amd64-ninja-clang-rel-1/bin/clang+++0x3e4b19c)
#14 0x0000000003dcdaf7 clang::ASTReader::GetDecl(clang::GlobalDeclID) 
(/share/dim/llvm/llvmorg-20-init-15521-g38b3d87bd384-freebsd16-amd64-ninja-clang-rel-1/bin/clang+++0x3dcdaf7)
#15 0x0000000003e28958 
clang::ASTDeclReader::VisitFunctionDecl(clang::FunctionDecl*) 
(/share/dim/llvm/llvmorg-20-init-15521-g38b3d87bd384-freebsd16-amd64-ninja-clang-rel-1/bin/clang+++0x3e28958)
#16 0x0000000003e252c5 clang::ASTDeclReader::Visit(clang::Decl*) 
(/share/dim/llvm/llvmorg-20-init-15521-g38b3d87bd384-freebsd16-amd64-ninja-clang-rel-1/bin/clang+++0x3e252c5)
#17 0x0000000003a3629f 
clang::StackExhaustionHandler::runWithSufficientStackSpace(clang::SourceLocation,
 llvm::function_ref<void ()>) 
(/share/dim/llvm/llvmorg-20-init-15521-g38b3d87bd384-freebsd16-amd64-ninja-clang-rel-1/bin/clang+++0x3a3629f)
#18 0x0000000003e4b19c clang::ASTReader::ReadDeclRecord(clang::GlobalDeclID) 
(/share/dim/llvm/llvmorg-20-init-15521-g38b3d87bd384-freebsd16-amd64-ninja-clang-rel-1/bin/clang+++0x3e4b19c)
#19 0x0000000003dcdaf7 clang::ASTReader::GetDecl(clang::GlobalDeclID) 
(/share/dim/llvm/llvmorg-20-init-15521-g38b3d87bd384-freebsd16-amd64-ninja-clang-rel-1/bin/clang+++0x3dcdaf7)
#20 0x0000000003e34129 
clang::ASTDeclReader::VisitFriendDecl(clang::FriendDecl*) 
(/share/dim/llvm/llvmorg-20-init-15521-g38b3d87bd384-freebsd16-amd64-ninja-clang-rel-1/bin/clang+++0x3e34129)
#21 0x0000000003e252c5 clang::ASTDeclReader::Visit(clang::Decl*) 
(/share/dim/llvm/llvmorg-20-init-15521-g38b3d87bd384-freebsd16-amd64-ninja-clang-rel-1/bin/clang+++0x3e252c5)
#22 0x0000000003a3629f 
clang::StackExhaustionHandler::runWithSufficientStackSpace(clang::SourceLocation,
 llvm::function_ref<void ()>) 
(/share/dim/llvm/llvmorg-20-init-15521-g38b3d87bd384-freebsd16-amd64-ninja-clang-rel-1/bin/clang+++0x3a3629f)
#23 0x0000000003e4b19c clang::ASTReader::ReadDeclRecord(clang::GlobalDeclID) 
(/share/dim/llvm/llvmorg-20-init-15521-g38b3d87bd384-freebsd16-amd64-ninja-clang-rel-1/bin/clang+++0x3e4b19c)
#24 0x0000000003dcdaf7 clang::ASTReader::GetDecl(clang::GlobalDeclID) 
(/share/dim/llvm/llvmorg-20-init-15521-g38b3d87bd384-freebsd16-amd64-ninja-clang-rel-1/bin/clang+++0x3dcdaf7)
#25 0x0000000003dda7b4 
clang::ASTReader::FindExternalLexicalDecls(clang::DeclContext const*, 
llvm::function_ref<bool (clang::Decl::Kind)>, 
llvm::SmallVectorImpl<clang::Decl*>&)::$_0::operator()(clang::serialization::ModuleFile*,
 llvm::ArrayRef<llvm::support::detail::packed_endian_specific_integral<unsigned 
long, (llvm::endianness)1, 1ul, 1ul>>) const ASTReader.cpp:0:0
#26 0x0000000003dda5e3 
clang::ASTReader::FindExternalLexicalDecls(clang::DeclContext const*, 
llvm::function_ref<bool (clang::Decl::Kind)>, 
llvm::SmallVectorImpl<clang::Decl*>&) 
(/share/dim/llvm/llvmorg-20-init-15521-g38b3d87bd384-freebsd16-amd64-ninja-clang-rel-1/bin/clang+++0x3dda5e3)
#27 0x0000000006208b4b 
clang::DeclContext::LoadLexicalDeclsFromExternalStorage() const 
(/share/dim/llvm/llvmorg-20-init-15521-g38b3d87bd384-freebsd16-amd64-ninja-clang-rel-1/bin/clang+++0x6208b4b)
#28 0x00000000062091e7 clang::DeclContext::decls_begin() const 
(/share/dim/llvm/llvmorg-20-init-15521-g38b3d87bd384-freebsd16-amd64-ninja-clang-rel-1/bin/clang+++0x62091e7)
#29 0x00000000058051e6 
clang::Sema::SetCtorInitializers(clang::CXXConstructorDecl*, bool, 
llvm::ArrayRef<clang::CXXCtorInitializer*>) 
(/share/dim/llvm/llvmorg-20-init-15521-g38b3d87bd384-freebsd16-amd64-ninja-clang-rel-1/bin/clang+++0x58051e6)
#30 0x000000000582c477 
clang::Sema::DefineImplicitMoveConstructor(clang::SourceLocation, 
clang::CXXConstructorDecl*) 
(/share/dim/llvm/llvmorg-20-init-15521-g38b3d87bd384-freebsd16-amd64-ninja-clang-rel-1/bin/clang+++0x582c477)
#31 0x000000000595e782 void llvm::function_ref<void 
()>::callback_fn<clang::Sema::MarkFunctionReferenced(clang::SourceLocation, 
clang::FunctionDecl*, bool)::$_0>(long) SemaExpr.cpp:0:0
#32 0x0000000003a3629f 
clang::StackExhaustionHandler::runWithSufficientStackSpace(clang::SourceLocation,
 llvm::function_ref<void ()>) 
(/share/dim/llvm/llvmorg-20-init-15521-g38b3d87bd384-freebsd16-amd64-ninja-clang-rel-1/bin/clang+++0x3a3629f)
#33 0x00000000058b5c7b 
clang::Sema::MarkFunctionReferenced(clang::SourceLocation, 
clang::FunctionDecl*, bool) 
(/share/dim/llvm/llvmorg-20-init-15521-g38b3d87bd384-freebsd16-amd64-ninja-clang-rel-1/bin/clang+++0x58b5c7b)
#34 0x000000000582d08b 
clang::Sema::BuildCXXConstructExpr(clang::SourceLocation, clang::QualType, 
clang::CXXConstructorDecl*, bool, llvm::MutableArrayRef<clang::Expr*>, bool, 
bool, bool, bool, clang::CXXConstructionKind, clang::SourceRange) 
(/share/dim/llvm/llvmorg-20-init-15521-g38b3d87bd384-freebsd16-amd64-ninja-clang-rel-1/bin/clang+++0x582d08b)
#35 0x000000000582cdad 
clang::Sema::BuildCXXConstructExpr(clang::SourceLocation, clang::QualType, 
clang::NamedDecl*, clang::CXXConstructorDecl*, 
llvm::MutableArrayRef<clang::Expr*>, bool, bool, bool, bool, 
clang::CXXConstructionKind, clang::SourceRange) 
(/share/dim/llvm/llvmorg-20-init-15521-g38b3d87bd384-freebsd16-amd64-ninja-clang-rel-1/bin/clang+++0x582cdad)
#36 0x0000000005a40bd2 PerformConstructorInitialization(clang::Sema&, 
clang::InitializedEntity const&, clang::InitializationKind const&, 
llvm::MutableArrayRef<clang::Expr*>, clang::InitializationSequence::Step 
const&, bool&, bool, bool, clang::SourceLocation, clang::SourceLocation) 
SemaInit.cpp:0:0
#37 0x0000000005a3b22c clang::InitializationSequence::Perform(clang::Sema&, 
clang::InitializedEntity const&, clang::InitializationKind const&, 
llvm::MutableArrayRef<clang::Expr*>, clang::QualType*) 
(/share/dim/llvm/llvmorg-20-init-15521-g38b3d87bd384-freebsd16-amd64-ninja-clang-rel-1/bin/clang+++0x5a3b22c)
#38 0x00000000058060ac BuildImplicitBaseInitializer(clang::Sema&, 
clang::CXXConstructorDecl*, ImplicitInitializerKind, clang::CXXBaseSpecifier*, 
bool, clang::CXXCtorInitializer*&) SemaDeclCXX.cpp:0:0
#39 0x000000000580516a 
clang::Sema::SetCtorInitializers(clang::CXXConstructorDecl*, bool, 
llvm::ArrayRef<clang::CXXCtorInitializer*>) 
(/share/dim/llvm/llvmorg-20-init-15521-g38b3d87bd384-freebsd16-amd64-ninja-clang-rel-1/bin/clang+++0x580516a)
#40 0x000000000582c477 
clang::Sema::DefineImplicitMoveConstructor(clang::SourceLocation, 
clang::CXXConstructorDecl*) 
(/share/dim/llvm/llvmorg-20-init-15521-g38b3d87bd384-freebsd16-amd64-ninja-clang-rel-1/bin/clang+++0x582c477)
#41 0x000000000595e782 void llvm::function_ref<void 
()>::callback_fn<clang::Sema::MarkFunctionReferenced(clang::SourceLocation, 
clang::FunctionDecl*, bool)::$_0>(long) SemaExpr.cpp:0:0
#42 0x0000000003a3629f 
clang::StackExhaustionHandler::runWithSufficientStackSpace(clang::SourceLocation,
 llvm::function_ref<void ()>) 
(/share/dim/llvm/llvmorg-20-init-15521-g38b3d87bd384-freebsd16-amd64-ninja-clang-rel-1/bin/clang+++0x3a3629f)
#43 0x00000000058b5c7b 
clang::Sema::MarkFunctionReferenced(clang::SourceLocation, 
clang::FunctionDecl*, bool) 
(/share/dim/llvm/llvmorg-20-init-15521-g38b3d87bd384-freebsd16-amd64-ninja-clang-rel-1/bin/clang+++0x58b5c7b)
#44 0x000000000582d08b 
clang::Sema::BuildCXXConstructExpr(clang::SourceLocation, clang::QualType, 
clang::CXXConstructorDecl*, bool, llvm::MutableArrayRef<clang::Expr*>, bool, 
bool, bool, bool, clang::CXXConstructionKind, clang::SourceRange) 
(/share/dim/llvm/llvmorg-20-init-15521-g38b3d87bd384-freebsd16-amd64-ninja-clang-rel-1/bin/clang+++0x582d08b)
#45 0x000000000582cdad 
clang::Sema::BuildCXXConstructExpr(clang::SourceLocation, clang::QualType, 
clang::NamedDecl*, clang::CXXConstructorDecl*, 
llvm::MutableArrayRef<clang::Expr*>, bool, bool, bool, bool, 
clang::CXXConstructionKind, clang::SourceRange) 
(/share/dim/llvm/llvmorg-20-init-15521-g38b3d87bd384-freebsd16-amd64-ninja-clang-rel-1/bin/clang+++0x582cdad)
#46 0x0000000005a40bd2 PerformConstructorInitialization(clang::Sema&, 
clang::InitializedEntity const&, clang::InitializationKind const&, 
llvm::MutableArrayRef<clang::Expr*>, clang::InitializationSequence::Step 
const&, bool&, bool, bool, clang::SourceLocation, clang::SourceLocation) 
SemaInit.cpp:0:0
#47 0x0000000005a3b22c clang::InitializationSequence::Perform(clang::Sema&, 
clang::InitializedEntity const&, clang::InitializationKind const&, 
llvm::MutableArrayRef<clang::Expr*>, clang::QualType*) 
(/share/dim/llvm/llvmorg-20-init-15521-g38b3d87bd384-freebsd16-amd64-ninja-clang-rel-1/bin/clang+++0x5a3b22c)
#48 0x0000000005bffd90 
clang::Sema::PerformMoveOrCopyInitialization(clang::InitializedEntity const&, 
clang::Sema::NamedReturnInfo const&, clang::Expr*, bool) 
(/share/dim/llvm/llvmorg-20-init-15521-g38b3d87bd384-freebsd16-amd64-ninja-clang-rel-1/bin/clang+++0x5bffd90)
#49 0x0000000005c01f0c clang::Sema::BuildReturnStmt(clang::SourceLocation, 
clang::Expr*, bool) 
(/share/dim/llvm/llvmorg-20-init-15521-g38b3d87bd384-freebsd16-amd64-ninja-clang-rel-1/bin/clang+++0x5c01f0c)
#50 0x0000000005c014b3 clang::Sema::ActOnReturnStmt(clang::SourceLocation, 
clang::Expr*, clang::Scope*) 
(/share/dim/llvm/llvmorg-20-init-15521-g38b3d87bd384-freebsd16-amd64-ninja-clang-rel-1/bin/clang+++0x5c014b3)
#51 0x0000000005558e42 clang::Parser::ParseReturnStatement() 
(/share/dim/llvm/llvmorg-20-init-15521-g38b3d87bd384-freebsd16-amd64-ninja-clang-rel-1/bin/clang+++0x5558e42)
#52 0x0000000005553227 
clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*,
 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*, 
clang::ParsedAttributes&, clang::ParsedAttributes&) 
(/share/dim/llvm/llvmorg-20-init-15521-g38b3d87bd384-freebsd16-amd64-ninja-clang-rel-1/bin/clang+++0x5553227)
#53 0x0000000005551892 
clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 
32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*) 
(/share/dim/llvm/llvmorg-20-init-15521-g38b3d87bd384-freebsd16-amd64-ninja-clang-rel-1/bin/clang+++0x5551892)
#54 0x000000000555af5d clang::Parser::ParseCompoundStatementBody(bool) 
(/share/dim/llvm/llvmorg-20-init-15521-g38b3d87bd384-freebsd16-amd64-ninja-clang-rel-1/bin/clang+++0x555af5d)
#55 0x000000000555be11 clang::Parser::ParseFunctionStatementBody(clang::Decl*, 
clang::Parser::ParseScope&) 
(/share/dim/llvm/llvmorg-20-init-15521-g38b3d87bd384-freebsd16-amd64-ninja-clang-rel-1/bin/clang+++0x555be11)
#56 0x000000000558255f 
clang::Parser::ParseLexedMethodDef(clang::Parser::LexedMethod&) 
(/share/dim/llvm/llvmorg-20-init-15521-g38b3d87bd384-freebsd16-amd64-ninja-clang-rel-1/bin/clang+++0x558255f)
#57 0x0000000005580c5a 
clang::Parser::ParseLexedMethodDefs(clang::Parser::ParsingClass&) 
(/share/dim/llvm/llvmorg-20-init-15521-g38b3d87bd384-freebsd16-amd64-ninja-clang-rel-1/bin/clang+++0x5580c5a)
#58 0x00000000054fb96d 
clang::Parser::ParseCXXMemberSpecification(clang::SourceLocation, 
clang::SourceLocation, clang::ParsedAttributes&, unsigned int, clang::Decl*) 
(/share/dim/llvm/llvmorg-20-init-15521-g38b3d87bd384-freebsd16-amd64-ninja-clang-rel-1/bin/clang+++0x54fb96d)
#59 0x00000000054f99ae 
clang::Parser::ParseClassSpecifier(clang::tok::TokenKind, 
clang::SourceLocation, clang::DeclSpec&, clang::Parser::ParsedTemplateInfo&, 
clang::AccessSpecifier, bool, clang::Parser::DeclSpecContext, 
clang::ParsedAttributes&) 
(/share/dim/llvm/llvmorg-20-init-15521-g38b3d87bd384-freebsd16-amd64-ninja-clang-rel-1/bin/clang+++0x54f99ae)
#60 0x000000000551b19b 
clang::Parser::ParseDeclarationSpecifiers(clang::DeclSpec&, 
clang::Parser::ParsedTemplateInfo&, clang::AccessSpecifier, 
clang::Parser::DeclSpecContext, clang::Parser::LateParsedAttrList*, 
clang::ImplicitTypenameContext) 
(/share/dim/llvm/llvmorg-20-init-15521-g38b3d87bd384-freebsd16-amd64-ninja-clang-rel-1/bin/clang+++0x551b19b)
#61 0x00000000054af9c5 
clang::Parser::ParseDeclOrFunctionDefInternal(clang::ParsedAttributes&, 
clang::ParsedAttributes&, clang::ParsingDeclSpec&, clang::AccessSpecifier) 
(/share/dim/llvm/llvmorg-20-init-15521-g38b3d87bd384-freebsd16-amd64-ninja-clang-rel-1/bin/clang+++0x54af9c5)
#62 0x00000000054af5f9 
clang::Parser::ParseDeclarationOrFunctionDefinition(clang::ParsedAttributes&, 
clang::ParsedAttributes&, clang::ParsingDeclSpec*, clang::AccessSpecifier) 
(/share/dim/llvm/llvmorg-20-init-15521-g38b3d87bd384-freebsd16-amd64-ninja-clang-rel-1/bin/clang+++0x54af5f9)
#63 0x00000000054ae533 
clang::Parser::ParseExternalDeclaration(clang::ParsedAttributes&, 
clang::ParsedAttributes&, clang::ParsingDeclSpec*) 
(/share/dim/llvm/llvmorg-20-init-15521-g38b3d87bd384-freebsd16-amd64-ninja-clang-rel-1/bin/clang+++0x54ae533)
#64 0x00000000054f0603 
clang::Parser::ParseInnerNamespace(llvm::SmallVector<clang::Parser::InnerNamespaceInfo,
 4u> const&, unsigned int, clang::SourceLocation&, clang::ParsedAttributes&, 
clang::BalancedDelimiterTracker&) 
(/share/dim/llvm/llvmorg-20-init-15521-g38b3d87bd384-freebsd16-amd64-ninja-clang-rel-1/bin/clang+++0x54f0603)
#65 0x00000000054ef80f clang::Parser::ParseNamespace(clang::DeclaratorContext, 
clang::SourceLocation&, clang::SourceLocation) 
(/share/dim/llvm/llvmorg-20-init-15521-g38b3d87bd384-freebsd16-amd64-ninja-clang-rel-1/bin/clang+++0x54ef80f)
#66 0x00000000055156a7 
clang::Parser::ParseDeclaration(clang::DeclaratorContext, 
clang::SourceLocation&, clang::ParsedAttributes&, clang::ParsedAttributes&, 
clang::SourceLocation*) 
(/share/dim/llvm/llvmorg-20-init-15521-g38b3d87bd384-freebsd16-amd64-ninja-clang-rel-1/bin/clang+++0x55156a7)
#67 0x00000000054ae145 
clang::Parser::ParseExternalDeclaration(clang::ParsedAttributes&, 
clang::ParsedAttributes&, clang::ParsingDeclSpec*) 
(/share/dim/llvm/llvmorg-20-init-15521-g38b3d87bd384-freebsd16-amd64-ninja-clang-rel-1/bin/clang+++0x54ae145)
#68 0x00000000054acc34 
clang::Parser::ParseTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&, 
clang::Sema::ModuleImportState&) 
(/share/dim/llvm/llvmorg-20-init-15521-g38b3d87bd384-freebsd16-amd64-ninja-clang-rel-1/bin/clang+++0x54acc34)
#69 0x00000000054a8b5e clang::ParseAST(clang::Sema&, bool, bool) 
(/share/dim/llvm/llvmorg-20-init-15521-g38b3d87bd384-freebsd16-amd64-ninja-clang-rel-1/bin/clang+++0x54a8b5e)
#70 0x0000000003c9c103 clang::FrontendAction::Execute() 
(/share/dim/llvm/llvmorg-20-init-15521-g38b3d87bd384-freebsd16-amd64-ninja-clang-rel-1/bin/clang+++0x3c9c103)
#71 0x0000000003c1d02d 
clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) 
(/share/dim/llvm/llvmorg-20-init-15521-g38b3d87bd384-freebsd16-amd64-ninja-clang-rel-1/bin/clang+++0x3c1d02d)
#72 0x0000000003d73eff 
clang::ExecuteCompilerInvocation(clang::CompilerInstance*) 
(/share/dim/llvm/llvmorg-20-init-15521-g38b3d87bd384-freebsd16-amd64-ninja-clang-rel-1/bin/clang+++0x3d73eff)
#73 0x0000000001d11a46 cc1_main(llvm::ArrayRef<char const*>, char const*, 
void*) 
(/share/dim/llvm/llvmorg-20-init-15521-g38b3d87bd384-freebsd16-amd64-ninja-clang-rel-1/bin/clang+++0x1d11a46)
#74 0x0000000001d0e6a4 ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&, 
llvm::ToolContext const&) driver.cpp:0:0
#75 0x0000000003ab22ce void llvm::function_ref<void 
()>::callback_fn<clang::driver::CC1Command::Execute(llvm::ArrayRef<std::__1::optional<llvm::StringRef>>,
 std::__1::basic_string<char, std::__1::char_traits<char>, 
std::__1::allocator<char>>*, bool*) const::$_0>(long) Job.cpp:0:0
#76 0x0000000002fc4b6c 
llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) 
(/share/dim/llvm/llvmorg-20-init-15521-g38b3d87bd384-freebsd16-amd64-ninja-clang-rel-1/bin/clang+++0x2fc4b6c)
#77 0x0000000003ab1884 
clang::driver::CC1Command::Execute(llvm::ArrayRef<std::__1::optional<llvm::StringRef>>,
 std::__1::basic_string<char, std::__1::char_traits<char>, 
std::__1::allocator<char>>*, bool*) const 
(/share/dim/llvm/llvmorg-20-init-15521-g38b3d87bd384-freebsd16-amd64-ninja-clang-rel-1/bin/clang+++0x3ab1884)
#78 0x0000000003a76b43 
clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, 
clang::driver::Command const*&, bool) const 
(/share/dim/llvm/llvmorg-20-init-15521-g38b3d87bd384-freebsd16-amd64-ninja-clang-rel-1/bin/clang+++0x3a76b43)
#79 0x0000000003a76d6c 
clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&, 
llvm::SmallVectorImpl<std::__1::pair<int, clang::driver::Command const*>>&, 
bool) const 
(/share/dim/llvm/llvmorg-20-init-15521-g38b3d87bd384-freebsd16-amd64-ninja-clang-rel-1/bin/clang+++0x3a76d6c)
#80 0x0000000003a8f7c0 
clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, 
llvm::SmallVectorImpl<std::__1::pair<int, clang::driver::Command const*>>&) 
(/share/dim/llvm/llvmorg-20-init-15521-g38b3d87bd384-freebsd16-amd64-ninja-clang-rel-1/bin/clang+++0x3a8f7c0)
#81 0x0000000001d0dd6b clang_main(int, char**, llvm::ToolContext const&) 
(/share/dim/llvm/llvmorg-20-init-15521-g38b3d87bd384-freebsd16-amd64-ninja-clang-rel-1/bin/clang+++0x1d0dd6b)
#82 0x0000000001d1bbf4 main 
(/share/dim/llvm/llvmorg-20-init-15521-g38b3d87bd384-freebsd16-amd64-ninja-clang-rel-1/bin/clang+++0x1d1bbf4)
#83 0x000000082de29edf __libc_start1 /usr/src/lib/libc/csu/libc_start1.c:180:2
```

The problem is that when it dumps repro files in `/tmp/Arrange-e11902.cpp` and 
`/tmp/Arrange-e11902.sh`, those compile just fine by themselves, even with the 
.pch input from the original command!

It only crashes when you run the compilation command in the regular build 
environment. Any ideas on how to reduce such a test case?

In any case, I bisected and found that the crash/assertions start at commit 
38b3d87bd384a469a6618ec6a971352cb4f813ba, and are still occurring in main as of 
today (2026-05-07).


https://github.com/llvm/llvm-project/pull/111992
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to