Bug 276265 - clang crashes on 15 CURRENT on the port devel/glaze: Assertion failed: (Current->LocalDecls.find(D) == Current->LocalDecls.end() && "Instantiated local in inner and outer scopes"), function InstantiatedLocal
Summary: clang crashes on 15 CURRENT on the port devel/glaze: Assertion failed: (Curre...
Status: New
Alias: None
Product: Base System
Classification: Unclassified
Component: misc (show other bugs)
Version: 15.0-CURRENT
Hardware: Any Any
: --- Affects Only Me
Assignee: freebsd-toolchain (Nobody)
URL: https://pkg-status.freebsd.org/beefy1...
Keywords:
Depends on:
Blocks:
 
Reported: 2024-01-11 23:37 UTC by Yuri Victorovich
Modified: 2025-09-01 15:09 UTC (History)
5 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Yuri Victorovich freebsd_committer freebsd_triage 2024-01-11 23:37:34 UTC
See the log URL.

FAILED: CMakeFiles/glaze_ide.dir/src/main.cpp.o 
/usr/bin/c++  -I/wrkdirs/usr/ports/devel/glaze/work/glaze-2.0.3/include -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -O2 -pipe -fstack-protector-strong -fno-strict-aliasing   -DNDEBUG -std=gnu++20 -Wno-missing-braces -MD -MT CMakeFiles/glaze_ide.dir/src/main.cpp.o -MF CMakeFiles/glaze_ide.dir/src/main.cpp.o.d -o CMakeFiles/glaze_ide.dir/src/main.cpp.o -c /wrkdirs/usr/ports/devel/glaze/work/glaze-2.0.3/src/main.cpp
Assertion failed: (Current->LocalDecls.find(D) == Current->LocalDecls.end() && "Instantiated local in inner and outer scopes"), function InstantiatedLocal, file /usr/local/poudriere/jails/main-amd64/usr/src/contrib/llvm-project/clang/lib/Sema/SemaTemplateInstantiate.cpp, line 4195.
PLEASE submit a bug report to https://bugs.freebsd.org/submit/ and include the crash backtrace, preprocessed source, and associated run script.
Stack dump:
0.	Program arguments: /usr/bin/c++ -I/wrkdirs/usr/ports/devel/glaze/work/glaze-2.0.3/include -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -DNDEBUG -std=gnu++20 -Wno-missing-braces -MD -MT CMakeFiles/glaze_ide.dir/src/main.cpp.o -MF CMakeFiles/glaze_ide.dir/src/main.cpp.o.d -o CMakeFiles/glaze_ide.dir/src/main.cpp.o -c /wrkdirs/usr/ports/devel/glaze/work/glaze-2.0.3/src/main.cpp
1.	/wrkdirs/usr/ports/devel/glaze/work/glaze-2.0.3/include/glaze/reflection/get_name.hpp:60:69: current parser token ';'
2.	/wrkdirs/usr/ports/devel/glaze/work/glaze-2.0.3/include/glaze/reflection/get_name.hpp:20:1: parsing namespace 'glz'
3.	/wrkdirs/usr/ports/devel/glaze/work/glaze-2.0.3/include/glaze/reflection/get_name.hpp:58:4: parsing struct/union/class body 'glz::detail::reflect_field'
4.	/wrkdirs/usr/ports/devel/glaze/work/glaze-2.0.3/include/glaze/reflection/to_tuple.hpp:1321:22: instantiating function definition 'glz::detail::get_ptr<0UL, const glz::detail::GLAZE_REFLECTOR &>'
Comment 1 Jan Beich freebsd_committer freebsd_triage 2025-03-27 19:25:29 UTC
Can you still reproduce? Almost 14 months have passed since then. Clang is likely newer but the error log (URL field) is no longer accessible to confirm.
Comment 2 Mark Millard 2025-03-27 20:20:42 UTC
Looks to not be broken any more:

I tried building devel/glaze on a main amd64 system  via
poudriere-devel (via disabling the BROKEN classification):

[00:22:32] [01] [00:00:00] Building   devel/glaze | glaze-5.0.0
[00:22:35] [01] [00:00:03] Finished   devel/glaze | glaze-5.0.0: Success

In the jail for that (via a chroot) it shows assertions are
enabled in clang++ :

# clang++ -v
FreeBSD clang version 19.1.7 (https://github.com/llvm/llvm-project.git llvmorg-19.1.7-0-gcd708029e0b2)
Target: x86_64-unknown-freebsd15.0
Thread model: posix
InstalledDir: /usr/bin
Build config: +assertions

The jail world was via an official PkgBase distribution,
not from a personal build:

 # poudriere jail -l
JAILNAME         VERSION         OSVERSION ARCH  METHOD  TIMESTAMP           PATH
. . .
main-amd64       15.0-CURRENT              amd64 pkgbase 2025-03-13 02:53:32 /usr/local/poudriere/jails/main-amd64

Looks like the Makefile should have the BROKEN status
line deleted.
Comment 3 Jan Beich freebsd_committer freebsd_triage 2025-04-02 13:46:33 UTC
Still affects consumers (see hyprland log below). Not attaching preprocessed C++ source as it's larger than just installing a single package.

$ pkg install glaze
$ c++ -o /dev/null -std=c++20 -isystem/usr/local/include /usr/local/include/glaze/reflection/get_name.hpp
Assertion failed: (!Current->LocalDecls.contains(D) && "Instantiated local in inner and outer scopes"), function InstantiatedLocal, file /usr/src/contrib/llvm-project/clang/lib/Sema/SemaTemplateInstantiate.cpp, line 4418.
[...]

https://pkg-status.freebsd.org/beefy18/data/main-amd64-default/pad39cc941617_s7a490725045/logs/errors/hyprland-0.48.1.log
https://pkg-status.freebsd.org/beefy17/data/main-i386-default/pad39cc941617_s7a490725045/logs/errors/hyprland-0.48.1.log
Comment 4 Mark Millard 2025-04-02 18:22:47 UTC
(In reply to Jan Beich from comment #3)

I got a backtrace with more than /usr/bin/c+++OFFSET identification that
should be at least be more suggestive, in case that might help someone:

Assertion failed: (!Current->LocalDecls.contains(D) && "Instantiated local in inner and outer scopes"), function InstantiatedLocal, file /usr/main-src/contrib/llvm-project/clang/lib/Sema/SemaTemplateInstantiate.cpp, line 4418.
PLEASE submit a bug report to https://bugs.freebsd.org/submit/ and include the crash backtrace, preprocessed source, and associated run script.
Stack dump:
0.      Program arguments: /usr/bin/c++ -DAQUAMARINE_VERSION=\"0.7.2\" -DHAS_EXECINFO -DHYPRCURSOR_VERSION=\"0.1.11\" -DHYPRGRAPHICS_VERSION=\"0.1.2\" -DHYPRLAND_DEBUG -DHYPRLAND_VERSION=\"0.47.2\" -DHYPRLANG_VERSION=\"0.6.0\" -DHYPRUTILS_VERSION=\"0.5.2\" -Dhyprpm_EXPORTS -I/wrkdirs/usr/ports/x11-wm/hyprland/work/Hyprland-0.47.2/subprojects/udis86 -I/wrkdirs/usr/ports/x11-wm/hyprland/work/Hyprland-0.47.2/. -I/wrkdirs/usr/ports/x11-wm/hyprland/work/Hyprland-0.47.2/src -I/wrkdirs/usr/ports/x11-wm/hyprland/work/Hyprland-0.47.2/protocols -isystem /usr/local/include -O2 -gline-tables-only -pipe -g -fstack-protector-strong -fno-strict-aliasing -O2 -gline-tables-only -pipe -g -fstack-protector-strong -fno-strict-aliasing -std=gnu++23 -Wall -Wextra -Wno-unused-parameter -Wno-unused-value -Wno-missing-field-initializers -Wno-narrowing -Wno-pointer-arith -fmacro-prefix-map=/wrkdirs/usr/ports/x11-wm/hyprland/work/Hyprland-0.47.2/= -fno-pie -fno-builtin -pg -DTOML_HEADER_ONLY=0 -DTOML_SHARED_LIB=1 -Wno-missing-braces -MD -MT hyprpm/CMakeFiles/hyprpm.dir/src/core/PluginManager.cpp.o -MF hyprpm/CMakeFiles/hyprpm.dir/src/core/PluginManager.cpp.o.d -o hyprpm/CMakeFiles/hyprpm.dir/src/core/PluginManager.cpp.o -c /wrkdirs/usr/ports/x11-wm/hyprland/work/Hyprland-0.47.2/hyprpm/src/core/PluginManager.cpp
1.      /usr/local/include/glaze/reflection/get_name.hpp:65:69: current parser token ';'
2.      /usr/local/include/glaze/reflection/get_name.hpp:21:1: parsing namespace 'glz'
3.      /usr/local/include/glaze/reflection/get_name.hpp:63:4: parsing struct/union/class body 'glz::detail::reflect_field'
4.      /usr/local/include/glaze/reflection/get_name.hpp:48:31: instantiating variable definition 'glz::detail::get_name_impl<0, glz::detail::GLAZE_REFLECTOR>'
5.      /usr/local/include/glaze/reflection/to_tuple.hpp:1278:22: instantiating function definition 'glz::detail::get_ptr<0UL, const glz::detail::GLAZE_REFLECTOR &>'
  #0 0x0000000005f57131 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/usr/bin/c+++0x5f57131)
  #1 0x0000000005f54f95 llvm::sys::RunSignalHandlers() (/usr/bin/c+++0x5f54f95)
  #2 0x0000000005f1d08e CrashRecoverySignalHandler(int) (/usr/bin/c+++0x5f1d08e)
  #3 0x000000082c1a75fc (/lib/libthr.so.3+0x1a5fc)
  #4 0x000000082c1a6bcb (/lib/libthr.so.3+0x19bcb)
  #5 0x0000000828e922d3 ([vdso]+0x2d3)
  #6 0x000000083010e65a _thr_kill (/lib/libsys.so.7+0x1965a)
  #7 0x000000082e8a2874 _raise (/lib/libc.so.7+0xb9874)
  #8 0x000000082e958089 abort (/lib/libc.so.7+0x16f089)
  #9 0x000000082e886051 (/lib/libc.so.7+0x9d051)
 #10 0x00000000049b62f3 clang::LocalInstantiationScope::InstantiatedLocal(clang::Decl const*, clang::Decl*) (/usr/bin/c+++0x49b62f3)
 #11 0x00000000049f664f (anonymous namespace)::TemplateInstantiator::transformedLocalDecl(clang::Decl*, llvm::ArrayRef<clang::Decl*>) (/usr/bin/c+++0x49f664f)
 #12 0x00000000049f6e0e clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformLambdaExpr(clang::LambdaExpr*) (/usr/bin/c+++0x49f6e0e)
 #13 0x00000000049e7e7b (anonymous namespace)::TemplateInstantiator::TransformLambdaExpr(clang::LambdaExpr*) (/usr/bin/c+++0x49e7e7b)
 #14 0x00000000049ea7c8 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformCallExpr(clang::CallExpr*) (/usr/bin/c+++0x49ea7c8)
 #15 0x00000000049b8be5 clang::Sema::SubstInitializer(clang::Expr*, clang::MultiLevelTemplateArgumentList const&, bool) (/usr/bin/c+++0x49b8be5)
 #16 0x0000000004a2af74 clang::Sema::InstantiateVariableInitializer(clang::VarDecl*, clang::VarDecl*, clang::MultiLevelTemplateArgumentList const&) (/usr/bin/c+++0x4a2af74)
 #17 0x0000000004a1e51b clang::Sema::BuildVariableInstantiation(clang::VarDecl*, clang::VarDecl*, clang::MultiLevelTemplateArgumentList const&, llvm::SmallVector<clang::Sema::LateInstantiatedAttribute, 16u>*, clang::DeclContext*, clang::LocalInstantiationScope*, bool, clang::VarTemplateSpecializationDecl*) (/usr/bin/c+++0x4a1e51b)
 #18 0x0000000004a2c4a5 clang::TemplateDeclInstantiator::VisitVarTemplateSpecializationDecl(clang::VarTemplateDecl*, clang::VarDecl*, clang::TemplateArgumentListInfo const&, llvm::ArrayRef<clang::TemplateArgument>, clang::VarTemplateSpecializationDecl*) (/usr/bin/c+++0x4a2c4a5)
 #19 0x0000000004a3028b clang::Sema::BuildVarTemplateInstantiation(clang::VarTemplateDecl*, clang::VarDecl*, clang::TemplateArgumentList const*, clang::TemplateArgumentListInfo const&, llvm::SmallVectorImpl<clang::TemplateArgument>&, clang::SourceLocation, llvm::SmallVector<clang::Sema::LateInstantiatedAttribute, 16u>*, clang::LocalInstantiationScope*) (/usr/bin/c+++0x4a3028b)
 #20 0x000000000484f6e0 clang::Sema::CheckVarTemplateId(clang::VarTemplateDecl*, clang::SourceLocation, clang::SourceLocation, clang::TemplateArgumentListInfo const&) (/usr/bin/c+++0x484f6e0)
 #21 0x000000000484fe0b clang::Sema::CheckVarTemplateId(clang::CXXScopeSpec const&, clang::DeclarationNameInfo const&, clang::VarTemplateDecl*, clang::NamedDecl*, clang::SourceLocation, clang::TemplateArgumentListInfo const*) (/usr/bin/c+++0x484fe0b)
 #22 0x000000000485084f clang::Sema::BuildTemplateIdExpr(clang::CXXScopeSpec const&, clang::SourceLocation, clang::LookupResult&, bool, clang::TemplateArgumentListInfo const*) (/usr/bin/c+++0x485084f)
 #23 0x00000000049f092e clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformUnresolvedLookupExpr(clang::UnresolvedLookupExpr*, bool) (/usr/bin/c+++0x49f092e)
 #24 0x0000000004a05808 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformReturnStmt(clang::ReturnStmt*) (/usr/bin/c+++0x4a05808)
 #25 0x00000000049f1904 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformCompoundStmt(clang::CompoundStmt*, bool) (/usr/bin/c+++0x49f1904)
 #26 0x0000000004a0a058 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformIfStmt(clang::IfStmt*) (/usr/bin/c+++0x4a0a058)
 #27 0x00000000049f1904 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformCompoundStmt(clang::CompoundStmt*, bool) (/usr/bin/c+++0x49f1904)
 #28 0x00000000049f7fc4 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformLambdaExpr(clang::LambdaExpr*) (/usr/bin/c+++0x49f7fc4)
 #29 0x00000000049e7e7b (anonymous namespace)::TemplateInstantiator::TransformLambdaExpr(clang::LambdaExpr*) (/usr/bin/c+++0x49e7e7b)
 #30 0x00000000049ea7c8 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformCallExpr(clang::CallExpr*) (/usr/bin/c+++0x49ea7c8)
 #31 0x00000000049b8be5 clang::Sema::SubstInitializer(clang::Expr*, clang::MultiLevelTemplateArgumentList const&, bool) (/usr/bin/c+++0x49b8be5)
 #32 0x0000000004a2af74 clang::Sema::InstantiateVariableInitializer(clang::VarDecl*, clang::VarDecl*, clang::MultiLevelTemplateArgumentList const&) (/usr/bin/c+++0x4a2af74)
 #33 0x0000000004a1e51b clang::Sema::BuildVariableInstantiation(clang::VarDecl*, clang::VarDecl*, clang::MultiLevelTemplateArgumentList const&, llvm::SmallVector<clang::Sema::LateInstantiatedAttribute, 16u>*, clang::DeclContext*, clang::LocalInstantiationScope*, bool, clang::VarTemplateSpecializationDecl*) (/usr/bin/c+++0x4a1e51b)
 #34 0x0000000004a2c4a5 clang::TemplateDeclInstantiator::VisitVarTemplateSpecializationDecl(clang::VarTemplateDecl*, clang::VarDecl*, clang::TemplateArgumentListInfo const&, llvm::ArrayRef<clang::TemplateArgument>, clang::VarTemplateSpecializationDecl*) (/usr/bin/c+++0x4a2c4a5)
 #35 0x0000000004a3028b clang::Sema::BuildVarTemplateInstantiation(clang::VarTemplateDecl*, clang::VarDecl*, clang::TemplateArgumentList const*, clang::TemplateArgumentListInfo const&, llvm::SmallVectorImpl<clang::TemplateArgument>&, clang::SourceLocation, llvm::SmallVector<clang::Sema::LateInstantiatedAttribute, 16u>*, clang::LocalInstantiationScope*) (/usr/bin/c+++0x4a3028b)
 #36 0x000000000484f6e0 clang::Sema::CheckVarTemplateId(clang::VarTemplateDecl*, clang::SourceLocation, clang::SourceLocation, clang::TemplateArgumentListInfo const&) (/usr/bin/c+++0x484f6e0)
 #37 0x000000000484fe0b clang::Sema::CheckVarTemplateId(clang::CXXScopeSpec const&, clang::DeclarationNameInfo const&, clang::VarTemplateDecl*, clang::NamedDecl*, clang::SourceLocation, clang::TemplateArgumentListInfo const*) (/usr/bin/c+++0x484fe0b)
 #38 0x000000000485084f clang::Sema::BuildTemplateIdExpr(clang::CXXScopeSpec const&, clang::SourceLocation, clang::LookupResult&, bool, clang::TemplateArgumentListInfo const*) (/usr/bin/c+++0x485084f)
 #39 0x00000000049f092e clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformUnresolvedLookupExpr(clang::UnresolvedLookupExpr*, bool) (/usr/bin/c+++0x49f092e)
 #40 0x00000000049bad30 (anonymous namespace)::TemplateInstantiator::TransformTemplateArgument(clang::TemplateArgumentLoc const&, clang::TemplateArgumentLoc&, bool) (/usr/bin/c+++0x49bad30)
 #41 0x00000000049babd4 clang::Sema::SubstTemplateArgument(clang::TemplateArgumentLoc const&, clang::MultiLevelTemplateArgumentList const&, clang::TemplateArgumentLoc&, clang::SourceLocation, clang::DeclarationName const&) (/usr/bin/c+++0x49babd4)
 #42 0x0000000004852697 SubstDefaultTemplateArgument(clang::Sema&, clang::TemplateDecl*, clang::SourceLocation, clang::SourceLocation, clang::NonTypeTemplateParmDecl*, llvm::ArrayRef<clang::TemplateArgument>, llvm::ArrayRef<clang::TemplateArgument>, clang::TemplateArgumentLoc&) (/usr/bin/c+++0x4852697)
 #43 0x0000000004851e1e clang::Sema::SubstDefaultTemplateArgumentIfAvailable(clang::TemplateDecl*, clang::SourceLocation, clang::SourceLocation, clang::Decl*, llvm::ArrayRef<clang::TemplateArgument>, llvm::ArrayRef<clang::TemplateArgument>, bool&) (/usr/bin/c+++0x4851e1e)
 #44 0x00000000048ed484 clang::Sema::FinishTemplateArgumentDeduction(clang::FunctionTemplateDecl*, llvm::SmallVectorImpl<clang::DeducedTemplateArgument>&, unsigned int, clang::FunctionDecl*&, clang::sema::TemplateDeductionInfo&, llvm::SmallVectorImpl<clang::Sema::OriginalCallArg> const*, bool, llvm::function_ref<bool ()>) (/usr/bin/c+++0x48ed484)
 #45 0x000000000495568e void llvm::function_ref<void ()>::callback_fn<clang::Sema::DeduceTemplateArguments(clang::FunctionTemplateDecl*, clang::TemplateArgumentListInfo*, llvm::ArrayRef<clang::Expr*>, clang::FunctionDecl*&, clang::sema::TemplateDeductionInfo&, bool, bool, clang::QualType, clang::Expr::Classification, llvm::function_ref<bool (llvm::ArrayRef<clang::QualType>)>)::$_2>(long) (/usr/bin/c+++0x495568e)
 #46 0x0000000003f4c6ba clang::Sema::runWithSufficientStackSpace(clang::SourceLocation, llvm::function_ref<void ()>) (/usr/bin/c+++0x3f4c6ba)
 #47 0x00000000048ef6d3 clang::Sema::DeduceTemplateArguments(clang::FunctionTemplateDecl*, clang::TemplateArgumentListInfo*, llvm::ArrayRef<clang::Expr*>, clang::FunctionDecl*&, clang::sema::TemplateDeductionInfo&, bool, bool, clang::QualType, clang::Expr::Classification, llvm::function_ref<bool (llvm::ArrayRef<clang::QualType>)>) (/usr/bin/c+++0x48ef6d3)
 #48 0x00000000047b6aaa clang::Sema::AddTemplateOverloadCandidate(clang::FunctionTemplateDecl*, clang::DeclAccessPair, clang::TemplateArgumentListInfo*, llvm::ArrayRef<clang::Expr*>, clang::OverloadCandidateSet&, bool, bool, bool, clang::CallExpr::ADLCallKind, clang::OverloadCandidateParamOrder, bool) (/usr/bin/c+++0x47b6aaa)
 #49 0x00000000047c7c7a AddOverloadedCallCandidate(clang::Sema&, clang::DeclAccessPair, clang::TemplateArgumentListInfo*, llvm::ArrayRef<clang::Expr*>, clang::OverloadCandidateSet&, bool, bool) (/usr/bin/c+++0x47c7c7a)
 #50 0x00000000047c7adf clang::Sema::AddOverloadedCallCandidates(clang::UnresolvedLookupExpr*, llvm::ArrayRef<clang::Expr*>, clang::OverloadCandidateSet&, bool) (/usr/bin/c+++0x47c7adf)
 #51 0x00000000047c7fed clang::Sema::buildOverloadedCallSet(clang::Scope*, clang::Expr*, clang::UnresolvedLookupExpr*, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::OverloadCandidateSet*, clang::ActionResult<clang::Expr*, true>*) (/usr/bin/c+++0x47c7fed)
 #52 0x00000000047c83ac clang::Sema::BuildOverloadedCallExpr(clang::Scope*, clang::Expr*, clang::UnresolvedLookupExpr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::Expr*, bool, bool) (/usr/bin/c+++0x47c83ac)
 #53 0x00000000043ec46f clang::Sema::BuildCallExpr(clang::Scope*, clang::Expr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::Expr*, bool, bool) (/usr/bin/c+++0x43ec46f)
 #54 0x0000000004402afb clang::Sema::ActOnCallExpr(clang::Scope*, clang::Expr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::Expr*) (/usr/bin/c+++0x4402afb)
 #55 0x00000000049ea9a0 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformCallExpr(clang::CallExpr*) (/usr/bin/c+++0x49ea9a0)
 #56 0x00000000049bc786 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformExprs(clang::Expr* const*, unsigned int, bool, llvm::SmallVectorImpl<clang::Expr*>&, bool*) (/usr/bin/c+++0x49bc786)
 #57 0x00000000049ea82b clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformCallExpr(clang::CallExpr*) (/usr/bin/c+++0x49ea82b)
 #58 0x00000000049b8be5 clang::Sema::SubstInitializer(clang::Expr*, clang::MultiLevelTemplateArgumentList const&, bool) (/usr/bin/c+++0x49b8be5)
 #59 0x0000000004a2af74 clang::Sema::InstantiateVariableInitializer(clang::VarDecl*, clang::VarDecl*, clang::MultiLevelTemplateArgumentList const&) (/usr/bin/c+++0x4a2af74)
 #60 0x0000000004a1e51b clang::Sema::BuildVariableInstantiation(clang::VarDecl*, clang::VarDecl*, clang::MultiLevelTemplateArgumentList const&, llvm::SmallVector<clang::Sema::LateInstantiatedAttribute, 16u>*, clang::DeclContext*, clang::LocalInstantiationScope*, bool, clang::VarTemplateSpecializationDecl*) (/usr/bin/c+++0x4a1e51b)
 #61 0x0000000004a1dc69 clang::TemplateDeclInstantiator::VisitVarDecl(clang::VarDecl*, bool, llvm::ArrayRef<clang::BindingDecl*>*) (/usr/bin/c+++0x4a1dc69)
 #62 0x0000000004a63959 void llvm::function_ref<void ()>::callback_fn<clang::Sema::SubstDecl(clang::Decl*, clang::DeclContext*, clang::MultiLevelTemplateArgumentList const&)::$_0>(long) (/usr/bin/c+++0x4a63959)
 #63 0x0000000003f4c6ba clang::Sema::runWithSufficientStackSpace(clang::SourceLocation, llvm::function_ref<void ()>) (/usr/bin/c+++0x3f4c6ba)
 #64 0x0000000004a2c74a clang::Sema::SubstDecl(clang::Decl*, clang::DeclContext*, clang::MultiLevelTemplateArgumentList const&) (/usr/bin/c+++0x4a2c74a)
 #65 0x0000000004a0a7d0 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformDeclStmt(clang::DeclStmt*) (/usr/bin/c+++0x4a0a7d0)
 #66 0x00000000049f1904 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformCompoundStmt(clang::CompoundStmt*, bool) (/usr/bin/c+++0x49f1904)
 #67 0x00000000049ba55a clang::Sema::SubstStmt(clang::Stmt*, clang::MultiLevelTemplateArgumentList const&) (/usr/bin/c+++0x49ba55a)
 #68 0x0000000004a2e872 clang::Sema::InstantiateFunctionDefinition(clang::SourceLocation, clang::FunctionDecl*, bool, bool, bool) (/usr/bin/c+++0x4a2e872)
 #69 0x0000000003f4c6ba clang::Sema::runWithSufficientStackSpace(clang::SourceLocation, llvm::function_ref<void ()>) (/usr/bin/c+++0x3f4c6ba)
 #70 0x00000000048f38f1 clang::Sema::DeduceReturnType(clang::FunctionDecl*, clang::SourceLocation, bool) (/usr/bin/c+++0x48f38f1)
 #71 0x00000000043e6887 clang::Sema::DiagnoseUseOfDecl(clang::NamedDecl*, llvm::ArrayRef<clang::SourceLocation>, clang::ObjCInterfaceDecl const*, bool, bool, clang::ObjCInterfaceDecl*, bool) (/usr/bin/c+++0x43e6887)
 #72 0x00000000047c8706 FinishOverloadedCallExpr(clang::Sema&, clang::Scope*, clang::Expr*, clang::UnresolvedLookupExpr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::Expr*, clang::OverloadCandidateSet*, clang::OverloadCandidate**, clang::OverloadingResult, bool) (/usr/bin/c+++0x47c8706)
 #73 0x00000000047c84cf clang::Sema::BuildOverloadedCallExpr(clang::Scope*, clang::Expr*, clang::UnresolvedLookupExpr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::Expr*, bool, bool) (/usr/bin/c+++0x47c84cf)
 #74 0x00000000043ec46f clang::Sema::BuildCallExpr(clang::Scope*, clang::Expr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::Expr*, bool, bool) (/usr/bin/c+++0x43ec46f)
 #75 0x0000000004402afb clang::Sema::ActOnCallExpr(clang::Scope*, clang::Expr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::Expr*) (/usr/bin/c+++0x4402afb)
 #76 0x00000000049ea9a0 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformCallExpr(clang::CallExpr*) (/usr/bin/c+++0x49ea9a0)
 #77 0x00000000049bad30 (anonymous namespace)::TemplateInstantiator::TransformTemplateArgument(clang::TemplateArgumentLoc const&, clang::TemplateArgumentLoc&, bool) (/usr/bin/c+++0x49bad30)
 #78 0x00000000049bb814 bool clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformTemplateArguments<clang::TemplateArgumentLoc const*>(clang::TemplateArgumentLoc const*, clang::TemplateArgumentLoc const*, clang::TemplateArgumentListInfo&, bool) (/usr/bin/c+++0x49bb814)
 #79 0x00000000049f0880 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformUnresolvedLookupExpr(clang::UnresolvedLookupExpr*, bool) (/usr/bin/c+++0x49f0880)
 #80 0x00000000049ea7c8 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformCallExpr(clang::CallExpr*) (/usr/bin/c+++0x49ea7c8)
 #81 0x00000000049b8be5 clang::Sema::SubstInitializer(clang::Expr*, clang::MultiLevelTemplateArgumentList const&, bool) (/usr/bin/c+++0x49b8be5)
 #82 0x0000000004a2af74 clang::Sema::InstantiateVariableInitializer(clang::VarDecl*, clang::VarDecl*, clang::MultiLevelTemplateArgumentList const&) (/usr/bin/c+++0x4a2af74)
 #83 0x0000000004a3047d clang::Sema::CompleteVarTemplateSpecializationDecl(clang::VarTemplateSpecializationDecl*, clang::VarDecl*, clang::MultiLevelTemplateArgumentList const&) (/usr/bin/c+++0x4a3047d)
 #84 0x0000000004a30b93 clang::Sema::InstantiateVariableDefinition(clang::SourceLocation, clang::VarDecl*, bool, bool, bool) (/usr/bin/c+++0x4a30b93)
 #85 0x0000000003f4c6ba clang::Sema::runWithSufficientStackSpace(clang::SourceLocation, llvm::function_ref<void ()>) (/usr/bin/c+++0x3f4c6ba)
 #86 0x0000000004431fed DoMarkVarDeclReferenced(clang::Sema&, clang::SourceLocation, clang::VarDecl*, clang::Expr*, llvm::DenseMap<clang::VarDecl const*, int, llvm::DenseMapInfo<clang::VarDecl const*, void>, llvm::detail::DenseMapPair<clang::VarDecl const*, int>>&) (/usr/bin/c+++0x4431fed)
 #87 0x0000000004432471 MarkExprReferenced(clang::Sema&, clang::SourceLocation, clang::Decl*, clang::Expr*, bool, llvm::DenseMap<clang::VarDecl const*, int, llvm::DenseMapInfo<clang::VarDecl const*, void>, llvm::detail::DenseMapPair<clang::VarDecl const*, int>>&) (/usr/bin/c+++0x4432471)
 #88 0x00000000043f275a clang::Sema::MarkDeclRefReferenced(clang::DeclRefExpr*, clang::Expr const*) (/usr/bin/c+++0x43f275a)
 #89 0x00000000043f1fec clang::Sema::BuildDeclRefExpr(clang::ValueDecl*, clang::QualType, clang::ExprValueKind, clang::DeclarationNameInfo const&, clang::NestedNameSpecifierLoc, clang::NamedDecl*, clang::SourceLocation, clang::TemplateArgumentListInfo const*) (/usr/bin/c+++0x43f1fec)
 #90 0x00000000043f1ec5 clang::Sema::BuildDeclRefExpr(clang::ValueDecl*, clang::QualType, clang::ExprValueKind, clang::DeclarationNameInfo const&, clang::CXXScopeSpec const*, clang::NamedDecl*, clang::SourceLocation, clang::TemplateArgumentListInfo const*) (/usr/bin/c+++0x43f1ec5)
 #91 0x00000000043f614b clang::Sema::BuildDeclarationNameExpr(clang::CXXScopeSpec const&, clang::DeclarationNameInfo const&, clang::NamedDecl*, clang::NamedDecl*, clang::TemplateArgumentListInfo const*, bool) (/usr/bin/c+++0x43f614b)
 #92 0x000000000484fe68 clang::Sema::CheckVarTemplateId(clang::CXXScopeSpec const&, clang::DeclarationNameInfo const&, clang::VarTemplateDecl*, clang::NamedDecl*, clang::SourceLocation, clang::TemplateArgumentListInfo const*) (/usr/bin/c+++0x484fe68)
 #93 0x000000000485084f clang::Sema::BuildTemplateIdExpr(clang::CXXScopeSpec const&, clang::SourceLocation, clang::LookupResult&, bool, clang::TemplateArgumentListInfo const*) (/usr/bin/c+++0x485084f)
 #94 0x00000000043ebc21 clang::Sema::ActOnIdExpression(clang::Scope*, clang::CXXScopeSpec&, clang::SourceLocation, clang::UnqualifiedId&, bool, bool, clang::CorrectionCandidateCallback*, bool, clang::Token*) (/usr/bin/c+++0x43ebc21)
 #95 0x0000000003e1638a clang::Parser::tryParseCXXIdExpression(clang::CXXScopeSpec&, bool, clang::Token&) (/usr/bin/c+++0x3e1638a)
 #96 0x0000000003e17bc1 clang::Parser::ParseCXXIdExpression(bool) (/usr/bin/c+++0x3e17bc1)
 #97 0x0000000003e05d4e clang::Parser::ParseCastExpression(clang::Parser::CastParseKind, bool, bool&, clang::Parser::TypeCastState, bool, bool*) (/usr/bin/c+++0x3e05d4e)
 #98 0x0000000003e05ac0 clang::Parser::ParseCastExpression(clang::Parser::CastParseKind, bool, bool&, clang::Parser::TypeCastState, bool, bool*) (/usr/bin/c+++0x3e05ac0)
 #99 0x0000000003e0059e clang::Parser::ParseAssignmentExpression(clang::Parser::TypeCastState) (/usr/bin/c+++0x3e0059e)
#100 0x0000000003e417d9 clang::Parser::ParseCXXMemberInitializer(clang::Decl*, bool, clang::SourceLocation&) (/usr/bin/c+++0x3e417d9)
#101 0x0000000003e40411 clang::Parser::ParseCXXClassMemberDeclaration(clang::AccessSpecifier, clang::ParsedAttributes&, clang::Parser::ParsedTemplateInfo&, clang::ParsingDeclRAIIObject*) (/usr/bin/c+++0x3e40411)
#102 0x0000000003e426d2 clang::Parser::ParseCXXClassMemberDeclarationWithPragmas(clang::AccessSpecifier&, clang::ParsedAttributes&, clang::TypeSpecifierType, clang::Decl*) (/usr/bin/c+++0x3e426d2)
#103 0x0000000003e3b734 clang::Parser::ParseCXXMemberSpecification(clang::SourceLocation, clang::SourceLocation, clang::ParsedAttributes&, unsigned int, clang::Decl*) (/usr/bin/c+++0x3e3b734)
#104 0x0000000003e39326 clang::Parser::ParseClassSpecifier(clang::tok::TokenKind, clang::SourceLocation, clang::DeclSpec&, clang::Parser::ParsedTemplateInfo&, clang::AccessSpecifier, bool, clang::Parser::DeclSpecContext, clang::ParsedAttributes&) (/usr/bin/c+++0x3e39326)
#105 0x0000000003e5e9fb clang::Parser::ParseDeclarationSpecifiers(clang::DeclSpec&, clang::Parser::ParsedTemplateInfo&, clang::AccessSpecifier, clang::Parser::DeclSpecContext, clang::Parser::LateParsedAttrList*, clang::ImplicitTypenameContext) (/usr/bin/c+++0x3e5e9fb)
#106 0x0000000003ddda38 clang::Parser::ParseDeclOrFunctionDefInternal(clang::ParsedAttributes&, clang::ParsedAttributes&, clang::ParsingDeclSpec&, clang::AccessSpecifier) (/usr/bin/c+++0x3ddda38)
#107 0x0000000003ddd632 clang::Parser::ParseDeclarationOrFunctionDefinition(clang::ParsedAttributes&, clang::ParsedAttributes&, clang::ParsingDeclSpec*, clang::AccessSpecifier) (/usr/bin/c+++0x3ddd632)
#108 0x0000000003ddc37c clang::Parser::ParseExternalDeclaration(clang::ParsedAttributes&, clang::ParsedAttributes&, clang::ParsingDeclSpec*) (/usr/bin/c+++0x3ddc37c)
#109 0x0000000003e2fccd clang::Parser::ParseInnerNamespace(llvm::SmallVector<clang::Parser::InnerNamespaceInfo, 4u> const&, unsigned int, clang::SourceLocation&, clang::ParsedAttributes&, clang::BalancedDelimiterTracker&) (/usr/bin/c+++0x3e2fccd)
#110 0x0000000003e2fdeb clang::Parser::ParseInnerNamespace(llvm::SmallVector<clang::Parser::InnerNamespaceInfo, 4u> const&, unsigned int, clang::SourceLocation&, clang::ParsedAttributes&, clang::BalancedDelimiterTracker&) (/usr/bin/c+++0x3e2fdeb)
#111 0x0000000003e2f376 clang::Parser::ParseNamespace(clang::DeclaratorContext, clang::SourceLocation&, clang::SourceLocation) (/usr/bin/c+++0x3e2f376)
#112 0x0000000003e5822a clang::Parser::ParseDeclaration(clang::DeclaratorContext, clang::SourceLocation&, clang::ParsedAttributes&, clang::ParsedAttributes&, clang::SourceLocation*) (/usr/bin/c+++0x3e5822a)
#113 0x0000000003ddbf8a clang::Parser::ParseExternalDeclaration(clang::ParsedAttributes&, clang::ParsedAttributes&, clang::ParsingDeclSpec*) (/usr/bin/c+++0x3ddbf8a)
#114 0x0000000003dda3f8 clang::Parser::ParseTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&, clang::Sema::ModuleImportState&) (/usr/bin/c+++0x3dda3f8)
#115 0x0000000003dd53ee clang::ParseAST(clang::Sema&, bool, bool) (/usr/bin/c+++0x3dd53ee)
#116 0x000000000371eecf clang::FrontendAction::Execute() (/usr/bin/c+++0x371eecf)
#117 0x000000000363891d clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/usr/bin/c+++0x363891d)
#118 0x00000000037ed8f9 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/usr/bin/c+++0x37ed8f9)
#119 0x000000000291962e cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/usr/bin/c+++0x291962e)
#120 0x0000000002927667 ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&, llvm::ToolContext const&) (/usr/bin/c+++0x2927667)
#121 0x000000000349af5e 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) (/usr/bin/c+++0x349af5e)
#122 0x0000000005f1ce18 llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) (/usr/bin/c+++0x5f1ce18)
#123 0x000000000349a5b5 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 (/usr/bin/c+++0x349a5b5)
#124 0x0000000003459807 clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&, bool) const (/usr/bin/c+++0x3459807)
#125 0x0000000003459afc clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&, llvm::SmallVectorImpl<std::__1::pair<int, clang::driver::Command const*>>&, bool) const (/usr/bin/c+++0x3459afc)
#126 0x0000000003476a20 clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::__1::pair<int, clang::driver::Command const*>>&) (/usr/bin/c+++0x3476a20)
#127 0x0000000002926dfb clang_main(int, char**, llvm::ToolContext const&) (/usr/bin/c+++0x2926dfb)
#128 0x00000000029251fd main (/usr/bin/c+++0x29251fd)
#129 0x000000082e877584 __libc_start1 (/lib/libc.so.7+0x8e584)
c++: error: clang frontend command failed with exit code 134 (use -v to see invocation)
FreeBSD clang version 19.1.7 (https://github.com/llvm/llvm-project.git llvmorg-19.1.7-0-gcd708029e0b2)
Target: x86_64-unknown-freebsd15.0
Thread model: posix
InstalledDir: /usr/bin
Build config: +assertions

The above is from my personal FreeBSD environment, not from a standard FreeBSD
build/distribution.
Comment 5 Dimitry Andric freebsd_committer freebsd_triage 2025-04-02 18:51:06 UTC
I cannot reproduce, it builds fine for me? Are you using any non-default options?
Comment 6 Dimitry Andric freebsd_committer freebsd_triage 2025-04-02 18:53:16 UTC
Ah, it's consumers of the glaze headers that crash. I can reproduce it with Jan's command line from comment 3.
Comment 7 Mark Millard 2025-04-02 19:24:23 UTC
(In reply to Dimitry Andric from comment #5)

My example backtrace is from attempting to build
hyprland via poudriere-devel . The context may
well not be an exact match to Jan's but the issue
still happens.

It used to be that building devel/glaze failed.
It would be good if the summary were updated
based on Jan's report.
Comment 8 Dimitry Andric freebsd_committer freebsd_triage 2025-04-02 20:27:25 UTC
Reported upstream with a minimized test case:
https://github.com/llvm/llvm-project/issues/134148
Comment 9 Dimitry Andric freebsd_committer freebsd_triage 2025-09-01 15:09:15 UTC
Unfortunately the upstream bug is still not fixed. It seems there has not been any movement, except for an acknowledgement.