Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

After c6e996a931f, Assertion failed: (Loc.isValid() && "point of instantiation must be valid!"), function setPointOfInstantiation #107777

Closed
DimitryAndric opened this issue Sep 8, 2024 · 5 comments · Fixed by #107815
Labels
clang:frontend Language frontend issues, e.g. anything involving "Sema" confirmed Verified by a second party crash Prefer [crash-on-valid] or [crash-on-invalid]

Comments

@DimitryAndric
Copy link
Collaborator

After llvmorg-19-init-17412-gc6e996a, which reverted llvmorg-19-init-15785-g567b2c6, which reverted llvmorg-19-init-15760-g5b36348, I get the following assertion compiling qt5-webengine:

Assertion failed: (Loc.isValid() && "point of instantiation must be valid!"), function setPointOfInstantiation, file /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/include/clang/AST/DeclTemplate.h, line 1938.
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: clang -cc1 -triple x86_64-unknown-freebsd15.0 -emit-obj -disable-free -clear-ast-before-backend -main-file-name spellcheck_common.cc -mrelocation-model pic -pic-level 2 -fhalf-no-semantic-interposition -fmerge-all-constants -mframe-pointer=all -relaxed-aliasing -ffp-contract=on -fno-rounding-math -mconstructor-aliases -target-cpu x86-64 -tune-cpu generic -debugger-tuning=gdb -fdebug-compilation-dir=/wrkdirs/share/dim/ports/www/qt5-webengine/work/.build/src/core/release -ffunction-sections -fdata-sections -fcoverage-compilation-dir=/wrkdirs/share/dim/ports/www/qt5-webengine/work/.build/src/core/release -D USE_AURA=1 -D USE_NSS_CERTS=1 -D USE_OZONE=1 -D OFFICIAL_BUILD -D TOOLKIT_QT -D _FILE_OFFSET_BITS=64 -D _LARGEFILE_SOURCE -D _LARGEFILE64_SOURCE -D NO_UNWIND_TABLES -D _GNU_SOURCE -D __STDC_CONSTANT_MACROS -D __STDC_FORMAT_MACROS -D NDEBUG -D NVALGRIND -D DYNAMIC_ANNOTATIONS_ENABLED=0 -D U_USING_ICU_NAMESPACE=0 -D U_ENABLE_DYLOAD=0 -D USE_CHROMIUM_ICU=1 -D U_ENABLE_TRACING=1 -D U_ENABLE_RESOURCE_TRACING=0 -D U_STATIC_IMPLEMENTATION -D ICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_FILE -D UCHAR_TYPE=uint16_t -D GOOGLE_PROTOBUF_NO_RTTI -D GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER -D HAVE_PTHREAD -U _FORTIFY_SOURCE -D _FORTIFY_SOURCE=2 -c-isystem /usr/local/include -cxx-isystem /usr/local/include -O2 -Wno-enum-constexpr-conversion -Wno-unknown-attributes -Wno-unknown-pragmas -Wno-unknown-warning-option -Wall -Wextra -Wimplicit-fallthrough -Wunreachable-code -Wthread-safety -Wextra-semi -Wno-missing-field-initializers -Wno-unused-parameter -Wno-c++11-narrowing -Wno-unneeded-internal-declaration -Wno-deprecated-copy -Wno-implicit-float-conversion -Wno-undefined-var-template -Wheader-hygiene -Wstring-conversion -Wtautological-overlap-compare -Wno-shorten-64-to-32 -Wno-parentheses-equality -Wno-tautological-compare -Wno-thread-safety-attributes -Wno-undefined-bool-conversion -Wno-tautological-undefined-compare -Wno-trigraphs -std=c++17 -fno-trigraphs -fdeprecated-macro -ferror-limit 19 -fvisibility=hidden -fvisibility-inlines-hidden -pthread -stack-protector 1 -stack-protector-buffer-size 4 -fno-rtti -fgnuc-version=4.2.1 -fskip-odr-check-in-gmf -Qn -fcolor-diagnostics -vectorize-loops -vectorize-slp -faddrsig -x c++ spellcheck_common-7e86d1.cpp
1.      <eof> parser at end of file
2.      ../../../../kde-qtwebengine-5.15.17p3/src/3rdparty/chromium/base/stl_util.h:362:6: instantiating function definition 'base::Contains<std::vector<std::basic_string<base::char16, base::string16_internals::string16_char_traits>>, std::basic_string<base::char16, base::string16_internals::string16_char_traits>, nullptr>'
3.      /usr/include/c++/v1/__algorithm/find.h:171:1: instantiating function definition 'std::find<std::__wrap_iter<const std::basic_string<base::char16, base::string16_internals::string16_char_traits> *>, std::basic_string<base::char16, base::string16_internals::string16_char_traits>>'
4.      /usr/include/c++/v1/__type_traits/is_equality_comparable.h:51:8: instantiating class definition 'std::__libcpp_is_trivially_equality_comparable_impl<std::basic_string<base::char16, base::string16_internals::string16_char_traits>, std::basic_string<base::char16, base::string16_internals::string16_char_traits>>'
 #0 0x0000000005f60eb1 PrintStackTrace /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/llvm/lib/Support/Unix/Signals.inc:723:13
 #1 0x0000000005f5ed15 RunSignalHandlers /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/llvm/lib/Support/Signals.cpp:106:18
 #2 0x0000000005f614ba SignalHandler /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/llvm/lib/Support/Unix/Signals.inc:0:3
 #3 0x000000082a85061c handle_signal /share/dim/src/freebsd/llvm-19-update/lib/libthr/thread/thr_sig.c:0:3
 #4 0x000000082a84fbeb thr_sighandler /share/dim/src/freebsd/llvm-19-update/lib/libthr/thread/thr_sig.c:244:1
 #5 0x00000008287f22d3 ([vdso]+0x2d3)
 #6 0x00000008317444ca _thr_kill /usr/obj/share/dim/src/freebsd/llvm-19-update/amd64.amd64/lib/libsys/thr_kill.S:4:0
 #7 0x000000082ebaa534 _raise /share/dim/src/freebsd/llvm-19-update/lib/libc/gen/raise.c:0:10
 #8 0x000000082ec5ebf9 abort /share/dim/src/freebsd/llvm-19-update/lib/libc/stdlib/abort.c:67:17
 #9 0x000000082eb8dbf1 (/lib/libc.so.7+0x9cbf1)
#10 0x00000000049c2b44 setModuleOwnershipKind /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/include/clang/AST/DeclBase.h:868:5
#11 0x00000000049c2b44 setVisibleDespiteOwningModule /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/include/clang/AST/DeclBase.h:858:7
#12 0x00000000049c2b44 InstantiateClass /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/SemaTemplateInstantiate.cpp:3483:18
#13 0x00000000049c444b begin /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/llvm/include/llvm/ADT/SmallVector.h:281:45
#14 0x00000000049c444b end /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/llvm/include/llvm/ADT/SmallVector.h:283:27
#15 0x00000000049c444b ~SmallVector /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/llvm/include/llvm/ADT/SmallVector.h:1216:46
#16 0x00000000049c444b ~MultiLevelTemplateArgumentList /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/include/clang/Sema/Template.h:76:9
#17 0x00000000049c444b InstantiateClassTemplateSpecialization /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/SemaTemplateInstantiate.cpp:3973:3
#18 0x0000000004abb4f3 operator() /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/SemaType.cpp:9163:11
#19 0x0000000004abb4f3 callback_fn<(lambda at /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/SemaType.cpp:9162:42)> /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:45:12
#20 0x0000000003f57daa runWithSufficientStackSpace /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:0:12
#21 0x0000000004aa59c5 RequireCompleteTypeImpl /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/SemaType.cpp:9191:11
#22 0x00000000047c2dae AddConversionCandidate /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/SemaOverload.cpp:7965:7
#23 0x00000000047b6702 IsUserDefinedConversion /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/SemaOverload.cpp:0:0
#24 0x00000000047e14c5 TryUserDefinedConversion /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/SemaOverload.cpp:1606:3
#25 0x00000000047b08b7 TryImplicitConversion /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/SemaOverload.cpp:0:10
#26 0x00000000047bf707 TryCopyInitialization /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/SemaOverload.cpp:5631:10
#27 0x00000000047be69c AddOverloadCandidate /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/SemaOverload.cpp:0:40
#28 0x00000000047c95c4 AddArgumentDependentLookupCandidates /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/SemaOverload.cpp:9994:7
#29 0x00000000047d61c6 LookupOverloadedBinOp /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/SemaOverload.cpp:0:5
#30 0x00000000047d658b CreateOverloadedBinOp /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/SemaOverload.cpp:14512:3
#31 0x000000000456a448 HasNonDeletedDefaultedEqualityComparison /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/SemaExprCXX.cpp:5149:21
#32 0x000000000456a061 isTriviallyEqualityComparableType /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/SemaExprCXX.cpp:5196:9
#33 0x000000000455b283 EvaluateUnaryTypeTrait /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/SemaExprCXX.cpp:5636:12
#34 0x000000000455b283 EvaluateBooleanTypeTrait /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/SemaExprCXX.cpp:5722:12
#35 0x000000000455944e BuildTypeTrait /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/SemaExprCXX.cpp:5942:19
#36 0x00000000049ed36b RebuildTypeTrait /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/TreeTransform.h:3443:22
#37 0x00000000049ed36b TransformTypeTraitExpr /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/TreeTransform.h:13853:23
#38 0x00000000049f9fa1 TransformBinaryOperator /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/TreeTransform.h:0:33
#39 0x00000000049c58d0 TransformTemplateArgument /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/TreeTransform.h:4754:9
#40 0x00000000049c58d0 TransformTemplateArgument /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/SemaTemplateInstantiate.cpp:1605:25
#41 0x0000000004a052a8 TransformTemplateArguments<clang::TemplateArgumentLocContainerIterator<clang::TemplateSpecializationTypeLoc> > /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/TreeTransform.h:4933:9
#42 0x0000000004a052a8 TransformTemplateSpecializationType /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/TreeTransform.h:7169:20
#43 0x0000000004a0c9b8 TransformTemplateSpecializationType /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/TreeTransform.h:6925:23
#44 0x00000000049be9ed TransformType /usr/obj/share/dim/src/freebsd/llvm-19-update/amd64.amd64/lib/clang/libclang/clang/AST/TypeNodes.inc:0:1
#45 0x0000000004a097da isNull /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/llvm/include/llvm/ADT/PointerUnion.h:142:33
#46 0x0000000004a097da isNull /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/include/clang/AST/Type.h:1009:31
#47 0x0000000004a097da TransformElaboratedType /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/TreeTransform.h:7285:14
#48 0x00000000049beb77 TransformType /usr/obj/share/dim/src/freebsd/llvm-19-update/amd64.amd64/lib/clang/libclang/clang/AST/TypeNodes.inc:0:1
#49 0x00000000049be545 isNull /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/llvm/include/llvm/ADT/PointerUnion.h:142:33
#50 0x00000000049be545 isNull /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/include/clang/AST/Type.h:1009:31
#51 0x00000000049be545 TransformType /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/TreeTransform.h:4979:14
#52 0x00000000049be164 SubstType /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/SemaTemplateInstantiate.cpp:0:0
#53 0x00000000049c1a26 SubstBaseSpecifiers /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/SemaTemplateInstantiate.cpp:0:21
#54 0x00000000049c21ef InstantiateClass /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/SemaTemplateInstantiate.cpp:3489:7
#55 0x00000000049c444b begin /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/llvm/include/llvm/ADT/SmallVector.h:281:45
#56 0x00000000049c444b end /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/llvm/include/llvm/ADT/SmallVector.h:283:27
#57 0x00000000049c444b ~SmallVector /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/llvm/include/llvm/ADT/SmallVector.h:1216:46
#58 0x00000000049c444b ~MultiLevelTemplateArgumentList /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/include/clang/Sema/Template.h:76:9
#59 0x00000000049c444b InstantiateClassTemplateSpecialization /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/SemaTemplateInstantiate.cpp:3973:3
#60 0x0000000004abb4f3 operator() /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/SemaType.cpp:9163:11
#61 0x0000000004abb4f3 callback_fn<(lambda at /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/SemaType.cpp:9162:42)> /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:45:12
#62 0x0000000003f57daa runWithSufficientStackSpace /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:0:12
#63 0x0000000004aa59c5 RequireCompleteTypeImpl /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/SemaType.cpp:9191:11
#64 0x0000000004aa5285 RequireCompleteType /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/SemaType.cpp:8888:7
#65 0x00000000040d22e7 RequireCompleteDeclContext /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/SemaCXXScopeSpec.cpp:218:7
#66 0x0000000004674059 LookupParsedName /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/SemaLookup.cpp:0:40
#67 0x00000000043fffa1 getResultKind /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/include/clang/Sema/Lookup.h:345:5
#68 0x00000000043fffa1 isAmbiguous /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/include/clang/Sema/Lookup.h:325:12
#69 0x00000000043fffa1 BuildQualifiedDeclarationNameExpr /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/SemaExpr.cpp:2876:9
#70 0x00000000049fb10c RebuildDependentScopeDeclRefExpr /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/TreeTransform.h:0:0
#71 0x00000000049fb10c TransformDependentScopeDeclRefExpr /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/TreeTransform.h:14118:25
#72 0x00000000049f9fd8 isInvalid /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/include/clang/Sema/Ownership.h:199:41
#73 0x00000000049f9fd8 TransformBinaryOperator /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/TreeTransform.h:12417:11
#74 0x00000000049f9fa1 TransformBinaryOperator /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/TreeTransform.h:0:33
#75 0x00000000049c58d0 TransformTemplateArgument /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/TreeTransform.h:4754:9
#76 0x00000000049c58d0 TransformTemplateArgument /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/SemaTemplateInstantiate.cpp:1605:25
#77 0x0000000004a052a8 TransformTemplateArguments<clang::TemplateArgumentLocContainerIterator<clang::TemplateSpecializationTypeLoc> > /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/TreeTransform.h:4933:9
#78 0x0000000004a052a8 TransformTemplateSpecializationType /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/TreeTransform.h:7169:20
#79 0x0000000004a0c9b8 TransformTemplateSpecializationType /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/TreeTransform.h:6925:23
#80 0x00000000049be9ed TransformType /usr/obj/share/dim/src/freebsd/llvm-19-update/amd64.amd64/lib/clang/libclang/clang/AST/TypeNodes.inc:0:1
#81 0x0000000004a097da isNull /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/llvm/include/llvm/ADT/PointerUnion.h:142:33
#82 0x0000000004a097da isNull /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/include/clang/AST/Type.h:1009:31
#83 0x0000000004a097da TransformElaboratedType /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/TreeTransform.h:7285:14
#84 0x00000000049beb77 TransformType /usr/obj/share/dim/src/freebsd/llvm-19-update/amd64.amd64/lib/clang/libclang/clang/AST/TypeNodes.inc:0:1
#85 0x00000000049be545 isNull /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/llvm/include/llvm/ADT/PointerUnion.h:142:33
#86 0x00000000049be545 isNull /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/include/clang/AST/Type.h:1009:31
#87 0x00000000049be545 TransformType /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/TreeTransform.h:4979:14
#88 0x00000000049bf139 TransformType /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/TreeTransform.h:4959:8
#89 0x00000000049bf139 SubstType /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/SemaTemplateInstantiate.cpp:2853:23
#90 0x000000000485e9ff isNull /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/llvm/include/llvm/ADT/PointerUnion.h:142:33
#91 0x000000000485e9ff isNull /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/include/clang/AST/Type.h:1009:31
#92 0x000000000485e9ff CheckTemplateArgument /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/SemaTemplate.cpp:5033:21
#93 0x00000000048f844f ConvertDeducedTemplateArguments<clang::FunctionTemplateDecl> /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/SemaTemplateDeduction.cpp:3022:9
#94 0x00000000048f844f FinishTemplateArgumentDeduction /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/SemaTemplateDeduction.cpp:3835:21
#95 0x00000000049605ae operator() /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/SemaTemplateDeduction.cpp:4577:5
#96 0x00000000049605ae callback_fn<(lambda at /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/SemaTemplateDeduction.cpp:4576:51)> /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:45:12
#97 0x0000000003f57daa runWithSufficientStackSpace /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:0:12
#98 0x00000000048fa613 DeduceTemplateArguments /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/SemaTemplateDeduction.cpp:4584:10
#99 0x00000000047c1a3a AddTemplateOverloadCandidate /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/SemaOverload.cpp:7687:14
#100 0x00000000047d2bfa AddOverloadedCallCandidate /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/SemaOverload.cpp:13479:7
#101 0x00000000047d2a5f AddOverloadedCallCandidates /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/SemaOverload.cpp:0:5
#102 0x00000000047d2f6d getLangOpts /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/include/clang/Sema/Sema.h:593:51
#103 0x00000000047d2f6d buildOverloadedCallSet /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/SemaOverload.cpp:13841:7
#104 0x00000000047d332c BuildOverloadedCallExpr /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/SemaOverload.cpp:14047:7
#105 0x00000000043f75df BuildCallExpr /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/SemaExpr.cpp:6474:16
#106 0x000000000440dc6b ActOnCallExpr /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/SemaExpr.cpp:6360:7
#107 0x00000000049f54d0 RebuildCallExpr /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/TreeTransform.h:2837:22
#108 0x00000000049f54d0 TransformCallExpr /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/TreeTransform.h:12313:23
#109 0x00000000049c730f TransformExprs /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/TreeTransform.h:4344:7
#110 0x00000000049f535b TransformCallExpr /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/TreeTransform.h:12292:7
#111 0x0000000004a10368 isInvalid /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/include/clang/Sema/Ownership.h:199:41
#112 0x0000000004a10368 TransformReturnStmt /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/TreeTransform.h:8252:14
#113 0x00000000049fc454 isInvalid /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/include/clang/Sema/Ownership.h:199:41
#114 0x00000000049fc454 TransformCompoundStmt /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/TreeTransform.h:7831:16
#115 0x00000000049c50fa SubstStmt /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/SemaTemplateInstantiate.cpp:4233:23
#116 0x0000000004a39385 InstantiateFunctionDefinition /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp:5186:14
#117 0x0000000004a3c2d3 isDefined /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/include/clang/AST/Decl.h:2210:12
#118 0x0000000004a3c2d3 PerformPendingInstantiations /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp:6411:23
#119 0x0000000004a3947f InstantiateFunctionDefinition /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp:0:24
#120 0x0000000004a3c2d3 isDefined /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/include/clang/AST/Decl.h:2210:12
#121 0x0000000004a3c2d3 PerformPendingInstantiations /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp:6411:23
#122 0x0000000003f5a097 ~TimeTraceScope /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/llvm/include/llvm/Support/TimeProfiler.h:189:9
#123 0x0000000003f5a097 ActOnEndOfTranslationUnitFragment /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/Sema.cpp:1146:3
#124 0x0000000003f5a855 ActOnEndOfTranslationUnit /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/Sema.cpp:1184:9
#125 0x0000000003de5b6e ParseTopLevelDecl /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Parse/Parser.cpp:0:13
#126 0x0000000003de09fe ParseAST /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Parse/ParseAST.cpp:170:5
#127 0x000000000372a59f Execute /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Frontend/FrontendAction.cpp:1082:10
#128 0x000000000364400d getPtr /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/llvm/include/llvm/Support/Error.h:279:42
#129 0x000000000364400d operator bool /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/llvm/include/llvm/Support/Error.h:242:16
#130 0x000000000364400d ExecuteAction /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Frontend/CompilerInstance.cpp:1061:23
#131 0x00000000037f8f99 ExecuteCompilerInvocation /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp:280:25
#132 0x000000000292621e cc1_main /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/tools/driver/cc1_main.cpp:284:15
#133 0x0000000002934267 ExecuteCC1Tool /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/tools/driver/driver.cpp:215:12
#134 0x0000000002933269 clang_main /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/tools/driver/driver.cpp:256:12
#135 0x0000000002931dfd main /share/dim/src/freebsd/llvm-19-update/usr.bin/clang/clang/clang-driver.cpp:17:10
#136 0x000000082eb7f1c4 __libc_start1 /share/dim/src/freebsd/llvm-19-update/lib/libc/csu/libc_start1.c:157:2

Minimized test case:

// clang -cc1 -triple x86_64-- -S spellcheck_common-min.cpp
int find___proj, Contains___trans_tmp_2;
template <class, int __v> struct integral_constant {
  static const int value = __v;
};
template <bool, class> using __enable_if_t = int;
template <class _Tp>
struct __libcpp_is_trivially_equality_comparable_impl
    : integral_constant<bool, __is_trivially_equality_comparable(_Tp)> {};
template <class, class _Up>
using __libcpp_is_trivially_equality_comparable =
    __libcpp_is_trivially_equality_comparable_impl<_Up>;
template <
    class _Tp, class _Up, class _Proj,
    __enable_if_t<__libcpp_is_trivially_equality_comparable<_Tp, _Up>::value,
                  int> = 0>
void __find(_Tp, _Up, _Proj);
template <class _Tp> void find(int __last, _Tp __value) {
  __find(__last, __value, find___proj);
}
template <class> struct basic_string_view {};
typedef basic_string_view<int> __self_view;
struct basic_string {
  operator __self_view() const;
};
class error_condition operator==(error_condition, error_condition);
basic_string Contains_value;
void Contains() { find(Contains___trans_tmp_2, Contains_value); }

cc @philnik777, @AaronBallman, @ZequanWu

@DimitryAndric DimitryAndric added the clang:frontend Language frontend issues, e.g. anything involving "Sema" label Sep 8, 2024
@llvmbot
Copy link
Collaborator

llvmbot commented Sep 8, 2024

@llvm/issue-subscribers-clang-frontend

Author: Dimitry Andric (DimitryAndric)

After `llvmorg-19-init-17412-g`c6e996a931f, which reverted `llvmorg-19-init-15785-g`567b2c608c30, which reverted `llvmorg-19-init-15760-g`5b363483cf24, I get the following assertion compiling qt5-webengine:
Assertion failed: (Loc.isValid() &amp;&amp; "point of instantiation must be valid!"), function setPointOfInstantiation, file /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/include/clang/AST/DeclTemplate.h, line 1938.
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: clang -cc1 -triple x86_64-unknown-freebsd15.0 -emit-obj -disable-free -clear-ast-before-backend -main-file-name spellcheck_common.cc -mrelocation-model pic -pic-level 2 -fhalf-no-semantic-interposition -fmerge-all-constants -mframe-pointer=all -relaxed-aliasing -ffp-contract=on -fno-rounding-math -mconstructor-aliases -target-cpu x86-64 -tune-cpu generic -debugger-tuning=gdb -fdebug-compilation-dir=/wrkdirs/share/dim/ports/www/qt5-webengine/work/.build/src/core/release -ffunction-sections -fdata-sections -fcoverage-compilation-dir=/wrkdirs/share/dim/ports/www/qt5-webengine/work/.build/src/core/release -D USE_AURA=1 -D USE_NSS_CERTS=1 -D USE_OZONE=1 -D OFFICIAL_BUILD -D TOOLKIT_QT -D _FILE_OFFSET_BITS=64 -D _LARGEFILE_SOURCE -D _LARGEFILE64_SOURCE -D NO_UNWIND_TABLES -D _GNU_SOURCE -D __STDC_CONSTANT_MACROS -D __STDC_FORMAT_MACROS -D NDEBUG -D NVALGRIND -D DYNAMIC_ANNOTATIONS_ENABLED=0 -D U_USING_ICU_NAMESPACE=0 -D U_ENABLE_DYLOAD=0 -D USE_CHROMIUM_ICU=1 -D U_ENABLE_TRACING=1 -D U_ENABLE_RESOURCE_TRACING=0 -D U_STATIC_IMPLEMENTATION -D ICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_FILE -D UCHAR_TYPE=uint16_t -D GOOGLE_PROTOBUF_NO_RTTI -D GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER -D HAVE_PTHREAD -U _FORTIFY_SOURCE -D _FORTIFY_SOURCE=2 -c-isystem /usr/local/include -cxx-isystem /usr/local/include -O2 -Wno-enum-constexpr-conversion -Wno-unknown-attributes -Wno-unknown-pragmas -Wno-unknown-warning-option -Wall -Wextra -Wimplicit-fallthrough -Wunreachable-code -Wthread-safety -Wextra-semi -Wno-missing-field-initializers -Wno-unused-parameter -Wno-c++11-narrowing -Wno-unneeded-internal-declaration -Wno-deprecated-copy -Wno-implicit-float-conversion -Wno-undefined-var-template -Wheader-hygiene -Wstring-conversion -Wtautological-overlap-compare -Wno-shorten-64-to-32 -Wno-parentheses-equality -Wno-tautological-compare -Wno-thread-safety-attributes -Wno-undefined-bool-conversion -Wno-tautological-undefined-compare -Wno-trigraphs -std=c++17 -fno-trigraphs -fdeprecated-macro -ferror-limit 19 -fvisibility=hidden -fvisibility-inlines-hidden -pthread -stack-protector 1 -stack-protector-buffer-size 4 -fno-rtti -fgnuc-version=4.2.1 -fskip-odr-check-in-gmf -Qn -fcolor-diagnostics -vectorize-loops -vectorize-slp -faddrsig -x c++ spellcheck_common-7e86d1.cpp
1.      &lt;eof&gt; parser at end of file
2.      ../../../../kde-qtwebengine-5.15.17p3/src/3rdparty/chromium/base/stl_util.h:362:6: instantiating function definition 'base::Contains&lt;std::vector&lt;std::basic_string&lt;base::char16, base::string16_internals::string16_char_traits&gt;&gt;, std::basic_string&lt;base::char16, base::string16_internals::string16_char_traits&gt;, nullptr&gt;'
3.      /usr/include/c++/v1/__algorithm/find.h:171:1: instantiating function definition 'std::find&lt;std::__wrap_iter&lt;const std::basic_string&lt;base::char16, base::string16_internals::string16_char_traits&gt; *&gt;, std::basic_string&lt;base::char16, base::string16_internals::string16_char_traits&gt;&gt;'
4.      /usr/include/c++/v1/__type_traits/is_equality_comparable.h:51:8: instantiating class definition 'std::__libcpp_is_trivially_equality_comparable_impl&lt;std::basic_string&lt;base::char16, base::string16_internals::string16_char_traits&gt;, std::basic_string&lt;base::char16, base::string16_internals::string16_char_traits&gt;&gt;'
 #<!-- -->0 0x0000000005f60eb1 PrintStackTrace /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/llvm/lib/Support/Unix/Signals.inc:723:13
 #<!-- -->1 0x0000000005f5ed15 RunSignalHandlers /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/llvm/lib/Support/Signals.cpp:106:18
 #<!-- -->2 0x0000000005f614ba SignalHandler /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/llvm/lib/Support/Unix/Signals.inc:0:3
 #<!-- -->3 0x000000082a85061c handle_signal /share/dim/src/freebsd/llvm-19-update/lib/libthr/thread/thr_sig.c:0:3
 #<!-- -->4 0x000000082a84fbeb thr_sighandler /share/dim/src/freebsd/llvm-19-update/lib/libthr/thread/thr_sig.c:244:1
 #<!-- -->5 0x00000008287f22d3 ([vdso]+0x2d3)
 #<!-- -->6 0x00000008317444ca _thr_kill /usr/obj/share/dim/src/freebsd/llvm-19-update/amd64.amd64/lib/libsys/thr_kill.S:4:0
 #<!-- -->7 0x000000082ebaa534 _raise /share/dim/src/freebsd/llvm-19-update/lib/libc/gen/raise.c:0:10
 #<!-- -->8 0x000000082ec5ebf9 abort /share/dim/src/freebsd/llvm-19-update/lib/libc/stdlib/abort.c:67:17
 #<!-- -->9 0x000000082eb8dbf1 (/lib/libc.so.7+0x9cbf1)
#<!-- -->10 0x00000000049c2b44 setModuleOwnershipKind /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/include/clang/AST/DeclBase.h:868:5
#<!-- -->11 0x00000000049c2b44 setVisibleDespiteOwningModule /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/include/clang/AST/DeclBase.h:858:7
#<!-- -->12 0x00000000049c2b44 InstantiateClass /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/SemaTemplateInstantiate.cpp:3483:18
#<!-- -->13 0x00000000049c444b begin /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/llvm/include/llvm/ADT/SmallVector.h:281:45
#<!-- -->14 0x00000000049c444b end /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/llvm/include/llvm/ADT/SmallVector.h:283:27
#<!-- -->15 0x00000000049c444b ~SmallVector /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/llvm/include/llvm/ADT/SmallVector.h:1216:46
#<!-- -->16 0x00000000049c444b ~MultiLevelTemplateArgumentList /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/include/clang/Sema/Template.h:76:9
#<!-- -->17 0x00000000049c444b InstantiateClassTemplateSpecialization /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/SemaTemplateInstantiate.cpp:3973:3
#<!-- -->18 0x0000000004abb4f3 operator() /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/SemaType.cpp:9163:11
#<!-- -->19 0x0000000004abb4f3 callback_fn&lt;(lambda at /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/SemaType.cpp:9162:42)&gt; /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:45:12
#<!-- -->20 0x0000000003f57daa runWithSufficientStackSpace /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:0:12
#<!-- -->21 0x0000000004aa59c5 RequireCompleteTypeImpl /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/SemaType.cpp:9191:11
#<!-- -->22 0x00000000047c2dae AddConversionCandidate /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/SemaOverload.cpp:7965:7
#<!-- -->23 0x00000000047b6702 IsUserDefinedConversion /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/SemaOverload.cpp:0:0
#<!-- -->24 0x00000000047e14c5 TryUserDefinedConversion /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/SemaOverload.cpp:1606:3
#<!-- -->25 0x00000000047b08b7 TryImplicitConversion /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/SemaOverload.cpp:0:10
#<!-- -->26 0x00000000047bf707 TryCopyInitialization /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/SemaOverload.cpp:5631:10
#<!-- -->27 0x00000000047be69c AddOverloadCandidate /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/SemaOverload.cpp:0:40
#<!-- -->28 0x00000000047c95c4 AddArgumentDependentLookupCandidates /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/SemaOverload.cpp:9994:7
#<!-- -->29 0x00000000047d61c6 LookupOverloadedBinOp /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/SemaOverload.cpp:0:5
#<!-- -->30 0x00000000047d658b CreateOverloadedBinOp /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/SemaOverload.cpp:14512:3
#<!-- -->31 0x000000000456a448 HasNonDeletedDefaultedEqualityComparison /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/SemaExprCXX.cpp:5149:21
#<!-- -->32 0x000000000456a061 isTriviallyEqualityComparableType /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/SemaExprCXX.cpp:5196:9
#<!-- -->33 0x000000000455b283 EvaluateUnaryTypeTrait /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/SemaExprCXX.cpp:5636:12
#<!-- -->34 0x000000000455b283 EvaluateBooleanTypeTrait /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/SemaExprCXX.cpp:5722:12
#<!-- -->35 0x000000000455944e BuildTypeTrait /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/SemaExprCXX.cpp:5942:19
#<!-- -->36 0x00000000049ed36b RebuildTypeTrait /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/TreeTransform.h:3443:22
#<!-- -->37 0x00000000049ed36b TransformTypeTraitExpr /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/TreeTransform.h:13853:23
#<!-- -->38 0x00000000049f9fa1 TransformBinaryOperator /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/TreeTransform.h:0:33
#<!-- -->39 0x00000000049c58d0 TransformTemplateArgument /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/TreeTransform.h:4754:9
#<!-- -->40 0x00000000049c58d0 TransformTemplateArgument /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/SemaTemplateInstantiate.cpp:1605:25
#<!-- -->41 0x0000000004a052a8 TransformTemplateArguments&lt;clang::TemplateArgumentLocContainerIterator&lt;clang::TemplateSpecializationTypeLoc&gt; &gt; /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/TreeTransform.h:4933:9
#<!-- -->42 0x0000000004a052a8 TransformTemplateSpecializationType /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/TreeTransform.h:7169:20
#<!-- -->43 0x0000000004a0c9b8 TransformTemplateSpecializationType /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/TreeTransform.h:6925:23
#<!-- -->44 0x00000000049be9ed TransformType /usr/obj/share/dim/src/freebsd/llvm-19-update/amd64.amd64/lib/clang/libclang/clang/AST/TypeNodes.inc:0:1
#<!-- -->45 0x0000000004a097da isNull /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/llvm/include/llvm/ADT/PointerUnion.h:142:33
#<!-- -->46 0x0000000004a097da isNull /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/include/clang/AST/Type.h:1009:31
#<!-- -->47 0x0000000004a097da TransformElaboratedType /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/TreeTransform.h:7285:14
#<!-- -->48 0x00000000049beb77 TransformType /usr/obj/share/dim/src/freebsd/llvm-19-update/amd64.amd64/lib/clang/libclang/clang/AST/TypeNodes.inc:0:1
#<!-- -->49 0x00000000049be545 isNull /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/llvm/include/llvm/ADT/PointerUnion.h:142:33
#<!-- -->50 0x00000000049be545 isNull /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/include/clang/AST/Type.h:1009:31
#<!-- -->51 0x00000000049be545 TransformType /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/TreeTransform.h:4979:14
#<!-- -->52 0x00000000049be164 SubstType /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/SemaTemplateInstantiate.cpp:0:0
#<!-- -->53 0x00000000049c1a26 SubstBaseSpecifiers /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/SemaTemplateInstantiate.cpp:0:21
#<!-- -->54 0x00000000049c21ef InstantiateClass /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/SemaTemplateInstantiate.cpp:3489:7
#<!-- -->55 0x00000000049c444b begin /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/llvm/include/llvm/ADT/SmallVector.h:281:45
#<!-- -->56 0x00000000049c444b end /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/llvm/include/llvm/ADT/SmallVector.h:283:27
#<!-- -->57 0x00000000049c444b ~SmallVector /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/llvm/include/llvm/ADT/SmallVector.h:1216:46
#<!-- -->58 0x00000000049c444b ~MultiLevelTemplateArgumentList /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/include/clang/Sema/Template.h:76:9
#<!-- -->59 0x00000000049c444b InstantiateClassTemplateSpecialization /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/SemaTemplateInstantiate.cpp:3973:3
#<!-- -->60 0x0000000004abb4f3 operator() /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/SemaType.cpp:9163:11
#<!-- -->61 0x0000000004abb4f3 callback_fn&lt;(lambda at /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/SemaType.cpp:9162:42)&gt; /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:45:12
#<!-- -->62 0x0000000003f57daa runWithSufficientStackSpace /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:0:12
#<!-- -->63 0x0000000004aa59c5 RequireCompleteTypeImpl /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/SemaType.cpp:9191:11
#<!-- -->64 0x0000000004aa5285 RequireCompleteType /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/SemaType.cpp:8888:7
#<!-- -->65 0x00000000040d22e7 RequireCompleteDeclContext /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/SemaCXXScopeSpec.cpp:218:7
#<!-- -->66 0x0000000004674059 LookupParsedName /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/SemaLookup.cpp:0:40
#<!-- -->67 0x00000000043fffa1 getResultKind /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/include/clang/Sema/Lookup.h:345:5
#<!-- -->68 0x00000000043fffa1 isAmbiguous /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/include/clang/Sema/Lookup.h:325:12
#<!-- -->69 0x00000000043fffa1 BuildQualifiedDeclarationNameExpr /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/SemaExpr.cpp:2876:9
#<!-- -->70 0x00000000049fb10c RebuildDependentScopeDeclRefExpr /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/TreeTransform.h:0:0
#<!-- -->71 0x00000000049fb10c TransformDependentScopeDeclRefExpr /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/TreeTransform.h:14118:25
#<!-- -->72 0x00000000049f9fd8 isInvalid /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/include/clang/Sema/Ownership.h:199:41
#<!-- -->73 0x00000000049f9fd8 TransformBinaryOperator /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/TreeTransform.h:12417:11
#<!-- -->74 0x00000000049f9fa1 TransformBinaryOperator /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/TreeTransform.h:0:33
#<!-- -->75 0x00000000049c58d0 TransformTemplateArgument /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/TreeTransform.h:4754:9
#<!-- -->76 0x00000000049c58d0 TransformTemplateArgument /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/SemaTemplateInstantiate.cpp:1605:25
#<!-- -->77 0x0000000004a052a8 TransformTemplateArguments&lt;clang::TemplateArgumentLocContainerIterator&lt;clang::TemplateSpecializationTypeLoc&gt; &gt; /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/TreeTransform.h:4933:9
#<!-- -->78 0x0000000004a052a8 TransformTemplateSpecializationType /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/TreeTransform.h:7169:20
#<!-- -->79 0x0000000004a0c9b8 TransformTemplateSpecializationType /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/TreeTransform.h:6925:23
#<!-- -->80 0x00000000049be9ed TransformType /usr/obj/share/dim/src/freebsd/llvm-19-update/amd64.amd64/lib/clang/libclang/clang/AST/TypeNodes.inc:0:1
#<!-- -->81 0x0000000004a097da isNull /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/llvm/include/llvm/ADT/PointerUnion.h:142:33
#<!-- -->82 0x0000000004a097da isNull /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/include/clang/AST/Type.h:1009:31
#<!-- -->83 0x0000000004a097da TransformElaboratedType /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/TreeTransform.h:7285:14
#<!-- -->84 0x00000000049beb77 TransformType /usr/obj/share/dim/src/freebsd/llvm-19-update/amd64.amd64/lib/clang/libclang/clang/AST/TypeNodes.inc:0:1
#<!-- -->85 0x00000000049be545 isNull /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/llvm/include/llvm/ADT/PointerUnion.h:142:33
#<!-- -->86 0x00000000049be545 isNull /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/include/clang/AST/Type.h:1009:31
#<!-- -->87 0x00000000049be545 TransformType /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/TreeTransform.h:4979:14
#<!-- -->88 0x00000000049bf139 TransformType /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/TreeTransform.h:4959:8
#<!-- -->89 0x00000000049bf139 SubstType /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/SemaTemplateInstantiate.cpp:2853:23
#<!-- -->90 0x000000000485e9ff isNull /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/llvm/include/llvm/ADT/PointerUnion.h:142:33
#<!-- -->91 0x000000000485e9ff isNull /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/include/clang/AST/Type.h:1009:31
#<!-- -->92 0x000000000485e9ff CheckTemplateArgument /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/SemaTemplate.cpp:5033:21
#<!-- -->93 0x00000000048f844f ConvertDeducedTemplateArguments&lt;clang::FunctionTemplateDecl&gt; /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/SemaTemplateDeduction.cpp:3022:9
#<!-- -->94 0x00000000048f844f FinishTemplateArgumentDeduction /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/SemaTemplateDeduction.cpp:3835:21
#<!-- -->95 0x00000000049605ae operator() /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/SemaTemplateDeduction.cpp:4577:5
#<!-- -->96 0x00000000049605ae callback_fn&lt;(lambda at /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/SemaTemplateDeduction.cpp:4576:51)&gt; /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:45:12
#<!-- -->97 0x0000000003f57daa runWithSufficientStackSpace /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:0:12
#<!-- -->98 0x00000000048fa613 DeduceTemplateArguments /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/SemaTemplateDeduction.cpp:4584:10
#<!-- -->99 0x00000000047c1a3a AddTemplateOverloadCandidate /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/SemaOverload.cpp:7687:14
#<!-- -->100 0x00000000047d2bfa AddOverloadedCallCandidate /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/SemaOverload.cpp:13479:7
#<!-- -->101 0x00000000047d2a5f AddOverloadedCallCandidates /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/SemaOverload.cpp:0:5
#<!-- -->102 0x00000000047d2f6d getLangOpts /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/include/clang/Sema/Sema.h:593:51
#<!-- -->103 0x00000000047d2f6d buildOverloadedCallSet /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/SemaOverload.cpp:13841:7
#<!-- -->104 0x00000000047d332c BuildOverloadedCallExpr /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/SemaOverload.cpp:14047:7
#<!-- -->105 0x00000000043f75df BuildCallExpr /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/SemaExpr.cpp:6474:16
#<!-- -->106 0x000000000440dc6b ActOnCallExpr /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/SemaExpr.cpp:6360:7
#<!-- -->107 0x00000000049f54d0 RebuildCallExpr /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/TreeTransform.h:2837:22
#<!-- -->108 0x00000000049f54d0 TransformCallExpr /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/TreeTransform.h:12313:23
#<!-- -->109 0x00000000049c730f TransformExprs /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/TreeTransform.h:4344:7
#<!-- -->110 0x00000000049f535b TransformCallExpr /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/TreeTransform.h:12292:7
#<!-- -->111 0x0000000004a10368 isInvalid /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/include/clang/Sema/Ownership.h:199:41
#<!-- -->112 0x0000000004a10368 TransformReturnStmt /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/TreeTransform.h:8252:14
#<!-- -->113 0x00000000049fc454 isInvalid /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/include/clang/Sema/Ownership.h:199:41
#<!-- -->114 0x00000000049fc454 TransformCompoundStmt /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/TreeTransform.h:7831:16
#<!-- -->115 0x00000000049c50fa SubstStmt /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/SemaTemplateInstantiate.cpp:4233:23
#<!-- -->116 0x0000000004a39385 InstantiateFunctionDefinition /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp:5186:14
#<!-- -->117 0x0000000004a3c2d3 isDefined /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/include/clang/AST/Decl.h:2210:12
#<!-- -->118 0x0000000004a3c2d3 PerformPendingInstantiations /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp:6411:23
#<!-- -->119 0x0000000004a3947f InstantiateFunctionDefinition /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp:0:24
#<!-- -->120 0x0000000004a3c2d3 isDefined /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/include/clang/AST/Decl.h:2210:12
#<!-- -->121 0x0000000004a3c2d3 PerformPendingInstantiations /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp:6411:23
#<!-- -->122 0x0000000003f5a097 ~TimeTraceScope /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/llvm/include/llvm/Support/TimeProfiler.h:189:9
#<!-- -->123 0x0000000003f5a097 ActOnEndOfTranslationUnitFragment /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/Sema.cpp:1146:3
#<!-- -->124 0x0000000003f5a855 ActOnEndOfTranslationUnit /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Sema/Sema.cpp:1184:9
#<!-- -->125 0x0000000003de5b6e ParseTopLevelDecl /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Parse/Parser.cpp:0:13
#<!-- -->126 0x0000000003de09fe ParseAST /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Parse/ParseAST.cpp:170:5
#<!-- -->127 0x000000000372a59f Execute /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Frontend/FrontendAction.cpp:1082:10
#<!-- -->128 0x000000000364400d getPtr /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/llvm/include/llvm/Support/Error.h:279:42
#<!-- -->129 0x000000000364400d operator bool /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/llvm/include/llvm/Support/Error.h:242:16
#<!-- -->130 0x000000000364400d ExecuteAction /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/Frontend/CompilerInstance.cpp:1061:23
#<!-- -->131 0x00000000037f8f99 ExecuteCompilerInvocation /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp:280:25
#<!-- -->132 0x000000000292621e cc1_main /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/tools/driver/cc1_main.cpp:284:15
#<!-- -->133 0x0000000002934267 ExecuteCC1Tool /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/tools/driver/driver.cpp:215:12
#<!-- -->134 0x0000000002933269 clang_main /share/dim/src/freebsd/llvm-19-update/contrib/llvm-project/clang/tools/driver/driver.cpp:256:12
#<!-- -->135 0x0000000002931dfd main /share/dim/src/freebsd/llvm-19-update/usr.bin/clang/clang/clang-driver.cpp:17:10
#<!-- -->136 0x000000082eb7f1c4 __libc_start1 /share/dim/src/freebsd/llvm-19-update/lib/libc/csu/libc_start1.c:157:2

Minimized test case:

// clang -cc1 -triple x86_64-- -S spellcheck_common-min.cpp
int find___proj, Contains___trans_tmp_2;
template &lt;class, int __v&gt; struct integral_constant {
  static const int value = __v;
};
template &lt;bool, class&gt; using __enable_if_t = int;
template &lt;class _Tp&gt;
struct __libcpp_is_trivially_equality_comparable_impl
    : integral_constant&lt;bool, __is_trivially_equality_comparable(_Tp)&gt; {};
template &lt;class, class _Up&gt;
using __libcpp_is_trivially_equality_comparable =
    __libcpp_is_trivially_equality_comparable_impl&lt;_Up&gt;;
template &lt;
    class _Tp, class _Up, class _Proj,
    __enable_if_t&lt;__libcpp_is_trivially_equality_comparable&lt;_Tp, _Up&gt;::value,
                  int&gt; = 0&gt;
void __find(_Tp, _Up, _Proj);
template &lt;class _Tp&gt; void find(int __last, _Tp __value) {
  __find(__last, __value, find___proj);
}
template &lt;class&gt; struct basic_string_view {};
typedef basic_string_view&lt;int&gt; __self_view;
struct basic_string {
  operator __self_view() const;
};
class error_condition operator==(error_condition, error_condition);
basic_string Contains_value;
void Contains() { find(Contains___trans_tmp_2, Contains_value); }

cc @philnik777, @AaronBallman, @ZequanWu

@shafik
Copy link
Collaborator

shafik commented Sep 8, 2024

Confirmed: https://godbolt.org/z/YsaseMMT8

@shafik shafik added the confirmed Verified by a second party label Sep 8, 2024
@DimitryAndric
Copy link
Collaborator Author

Probably too late for 19.1.0, @tru ? Though it could be a simple revert of a revert of a revert :)

@philnik777
Copy link
Contributor

I'd rather not revert, since the original fixed a (IMO) pretty serious bug. A crash seems much nicer than wrong code gen.

@tru
Copy link
Collaborator

tru commented Sep 9, 2024

I'd rather not revert, since the original fixed a (IMO) pretty serious bug. A crash seems much nicer than wrong code gen.

Agreed - bad codegen is worse than a crash. But can we get a crash fix in this week we could pick it over to 19.

@EugeneZelenko EugeneZelenko added the crash Prefer [crash-on-valid] or [crash-on-invalid] label Sep 9, 2024
llvmbot pushed a commit to llvmbot/llvm-project that referenced this issue Sep 11, 2024
VitaNuo pushed a commit to VitaNuo/llvm-project that referenced this issue Sep 12, 2024
tru pushed a commit to llvmbot/llvm-project that referenced this issue Sep 16, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
clang:frontend Language frontend issues, e.g. anything involving "Sema" confirmed Verified by a second party crash Prefer [crash-on-valid] or [crash-on-invalid]
Projects
None yet
6 participants