Description
Bugzilla Link | 43834 |
Resolution | WORKSFORME |
Resolved on | Oct 29, 2021 07:01 |
Version | trunk |
OS | Linux |
CC | @AaronBallman,@grandinj,@zygoloid |
Extended Description
At least with recent trunk ("clang version 10.0.0 ([email protected]:llvm/llvm-project 93e137f898296d142d056c892b10d40ca3c26f00)"):
$ cat test.cc
namespace N { template struct S1; }
template struct S2 {
using U = N::S1<typename N::S1::t>;
S2(typename U::t);
};
template S2(T) -> S2;
$ clang++ -Xclang -ast-dump -std=c++17 -fsyntax-only test.cc >/dev/null
clang-10: /data/sbergman/github.com/llvm/llvm-project/clang/lib/AST/NestedNameSpecifier.cpp:328: void clang::NestedNameSpecifier::print(llvm::raw_ostream&, const clang::PrintingPolicy&, bool) const: Assertion `!isa(T) && "Elaborated type in nested-name-specifier"' failed.
Stack dump:
0. Program arguments: /data/sbergman/llvm/debug/inst/bin/clang-10 -cc1 -triple x86_64-unknown-linux-gnu -fsyntax-only -disable-free -main-file-name test.cc -mrelocation-model static -mthread-model posix -mframe-pointer=all -fmath-errno -masm-verbose -mconstructor-aliases -munwind-tables -fuse-init-array -target-cpu x86-64 -dwarf-column-info -debugger-tuning=gdb -resource-dir /data/sbergman/llvm/debug/inst/lib/clang/10.0.0 -internal-isystem /usr/lib/gcc/x86_64-redhat-linux/9/../../../../include/c++/9 -internal-isystem /usr/lib/gcc/x86_64-redhat-linux/9/../../../../include/c++/9/x86_64-redhat-linux -internal-isystem /usr/lib/gcc/x86_64-redhat-linux/9/../../../../include/c++/9/backward -internal-isystem /usr/local/include -internal-isystem /data/sbergman/llvm/debug/inst/lib/clang/10.0.0/include -internal-externc-isystem /include -internal-externc-isystem /usr/include -std=c++17 -fdeprecated-macro -fdebug-compilation-dir /data/sbergman/lo-clang2/core -ferror-limit 19 -fmessage-length 0 -fgnuc-version=4.2.1 -fobjc-runtime=gcc -fcxx-exceptions -fexceptions -fdiagnostics-show-option -fcolor-diagnostics -ast-dump -faddrsig -x c++ test.cc
- parser at end of file
#0 0x00007f7b17f046fe llvm::sys::PrintStackTrace(llvm::raw_ostream&) /data/sbergman/github.com/llvm/llvm-project/llvm/lib/Support/Unix/Signals.inc:544:22
#1 0x00007f7b17f04791 PrintStackTraceSignalHandler(void*) /data/sbergman/github.com/llvm/llvm-project/llvm/lib/Support/Unix/Signals.inc:605:1
#2 0x00007f7b17f028e8 llvm::sys::RunSignalHandlers() /data/sbergman/github.com/llvm/llvm-project/llvm/lib/Support/Signals.cpp:68:20
#3 0x00007f7b17f0414e SignalHandler(int) /data/sbergman/github.com/llvm/llvm-project/llvm/lib/Support/Unix/Signals.inc:391:1
#4 0x00007f7b170e3c60 __restore_rt (/lib64/libpthread.so.0+0x12c60)
#5 0x00007f7b1462ce35 raise /usr/src/debug/glibc-2.29-32-g6d8eaf4a25/signal/../sysdeps/unix/sysv/linux/raise.c:51:1
#6 0x00007f7b14617895 abort /usr/src/debug/glibc-2.29-32-g6d8eaf4a25/stdlib/abort.c:81:7
#7 0x00007f7b14617769 _nl_load_domain.cold /usr/src/debug/glibc-2.29-32-g6d8eaf4a25/intl/loadmsgcat.c:1177:9
#8 0x00007f7b14625566 (/lib64/libc.so.6+0x30566)
#9 0x00007f7b12492f69 clang::NestedNameSpecifier::print(llvm::raw_ostream&, clang::PrintingPolicy const&, bool) const (.localalias) /data/sbergman/github.com/llvm/llvm-project/clang/lib/AST/NestedNameSpecifier.cpp:328:5
#10 0x00007f7b1258ee46 (anonymous namespace)::TypePrinter::printDependentNameBefore(clang::DependentNameType const*, llvm::raw_ostream&) /data/sbergman/github.com/llvm/llvm-project/clang/lib/AST/TypePrinter.cpp:1367:37
#11 0x00007f7b1258a09b (anonymous namespace)::TypePrinter::printBefore(clang::Type const*, clang::Qualifiers, llvm::raw_ostream&) /data/sbergman/llvm/debug/build/tools/clang/include/clang/AST/TypeNodes.inc:35:1
#12 0x00007f7b12589ad6 (anonymous namespace)::TypePrinter::print(clang::Type const*, clang::Qualifiers, llvm::raw_ostream&, llvm::StringRef) /data/sbergman/github.com/llvm/llvm-project/clang/lib/AST/TypePrinter.cpp:186:9
#13 0x00007f7b12589a56 (anonymous namespace)::TypePrinter::print(clang::QualType, llvm::raw_ostream&, llvm::StringRef) /data/sbergman/github.com/llvm/llvm-project/clang/lib/AST/TypePrinter.cpp:174:1
#14 0x00007f7b1258ccb1 (anonymous namespace)::TypePrinter::printFunctionProtoAfter(clang::FunctionProtoType const*, llvm::raw_ostream&) /data/sbergman/github.com/llvm/llvm-project/clang/lib/AST/TypePrinter.cpp:791:5
#15 0x00007f7b1258aa61 (anonymous namespace)::TypePrinter::printAfter(clang::Type const*, clang::Qualifiers, llvm::raw_ostream&) /data/sbergman/llvm/debug/build/tools/clang/include/clang/AST/TypeNodes.inc:44:1
#16 0x00007f7b12589b04 (anonymous namespace)::TypePrinter::print(clang::Type const*, clang::Qualifiers, llvm::raw_ostream&, llvm::StringRef) /data/sbergman/github.com/llvm/llvm-project/clang/lib/AST/TypePrinter.cpp:183:70
#17 0x00007f7b12590838 clang::QualType::getAsStringInternal(clang::Type const*, clang::Qualifiers, std::__cxx11::basic_string<char, std::char_traits, std::allocator >&, clang::PrintingPolicy const&) /data/sbergman/github.com/llvm/llvm-project/clang/lib/AST/TypePrinter.cpp:1906:3
#18 0x00007f7b125905fc clang::QualType::getAsString[abi:cxx11](clang::Type const*, clang::Qualifiers, clang::PrintingPolicy const&) /data/sbergman/github.com/llvm/llvm-project/clang/lib/AST/TypePrinter.cpp:1877:10
#19 0x00007f7b12462f17 clang::QualType::getAsString[abi:cxx11](clang::SplitQualType, clang::PrintingPolicy const&) /data/sbergman/github.com/llvm/llvm-project/clang/include/clang/AST/Type.h:982:3
#20 0x00007f7b1253957d clang::TextNodeDumper::dumpBareType(clang::QualType, bool) /data/sbergman/github.com/llvm/llvm-project/clang/lib/AST/TextNodeDumper.cpp:390:58
#21 0x00007f7b125396d4 clang::TextNodeDumper::dumpType(clang::QualType) /data/sbergman/github.com/llvm/llvm-project/clang/lib/AST/TextNodeDumper.cpp:403:1
#22 0x00007f7b1253d831 clang::TextNodeDumper::VisitFunctionDecl(clang::FunctionDecl const*) /data/sbergman/github.com/llvm/llvm-project/clang/lib/AST/TextNodeDumper.cpp:1274:39
#23 0x00007f7b1255944f clang::declvisitor::Base<llvm::make_const_ptr, clang::TextNodeDumper, void>::VisitCXXDeductionGuideDecl(clang::CXXDeductionGuideDecl const*) /data/sbergman/llvm/debug/build/tools/clang/include/clang/AST/DeclNodes.inc:399:1
#24 0x00007f7b12553e80 clang::declvisitor::Base<llvm::make_const_ptr, clang::TextNodeDumper, void>::Visit(clang::Decl const*) /data/sbergman/llvm/debug/build/tools/clang/include/clang/AST/DeclNodes.inc:399:1
#25 0x00007f7b12538c30 clang::TextNodeDumper::Visit(clang::Decl const*) /data/sbergman/github.com/llvm/llvm-project/clang/lib/AST/TextNodeDumper.cpp:277:1
#26 0x00007f7b11fe5869 clang::ASTNodeTraverser<clang::ASTDumper, clang::TextNodeDumper>::Visit(clang::Decl const*)::'lambda'()::operator()() const /data/sbergman/github.com/llvm/llvm-project/clang/include/clang/AST/ASTNodeTraverser.h:78:32
#27 0x00007f7b11fef9ac void clang::TextTreeStructure::AddChild<clang::ASTNodeTraverser<clang::ASTDumper, clang::TextNodeDumper>::Visit(clang::Decl const*)::'lambda'()>(llvm::StringRef, clang::ASTDumper)::'lambda'(bool)::operator()(bool) const /data/sbergman/github.com/llvm/llvm-project/clang/include/clang/AST/TextNodeDumper.h:103:14
#28 0x00007f7b1200a153 std::_Function_handler<void (bool), void clang::TextTreeStructure::AddChild<clang::ASTNodeTraverser<clang::ASTDumper, clang::TextNodeDumper>::Visit(clang::Decl const*)::'lambda'()>(llvm::StringRef, clang::ASTDumper)::'lambda'(bool)>::_M_invoke(std::_Any_data const&, bool&&) /usr/include/c++/9/bits/std_function.h:302:7
#29 0x00007f7b11fefdae std::function<void (bool)>::operator()(bool) const /usr/include/c++/9/bits/std_function.h:690:71
#30 0x00007f7b11fef9ec void clang::TextTreeStructure::AddChild<clang::ASTNodeTraverser<clang::ASTDumper, clang::TextNodeDumper>::Visit(clang::Decl const*)::'lambda'()>(llvm::StringRef, clang::ASTDumper)::'lambda'(bool)::operator()(bool) const /data/sbergman/github.com/llvm/llvm-project/clang/include/clang/AST/TextNodeDumper.h:72:27
#31 0x00007f7b1200a153 std::_Function_handler<void (bool), void clang::TextTreeStructure::AddChild<clang::ASTNodeTraverser<clang::ASTDumper, clang::TextNodeDumper>::Visit(clang::Decl const*)::'lambda'()>(llvm::StringRef, clang::ASTDumper)::'lambda'(bool)>::_M_invoke(std::_Any_data const&, bool&&) /usr/include/c++/9/bits/std_function.h:302:7
#32 0x00007f7b11fefdae std::function<void (bool)>::operator()(bool) const /usr/include/c++/9/bits/std_function.h:690:71
#33 0x00007f7b11fefcae void clang::TextTreeStructure::AddChild<clang::ASTNodeTraverser<clang::ASTDumper, clang::TextNodeDumper>::Visit(clang::Decl const*)::'lambda'()>(llvm::StringRef, clang::ASTDumper) /data/sbergman/github.com/llvm/llvm-project/clang/include/clang/AST/TextNodeDumper.h:116:33
#34 0x00007f7b11fe84ec void clang::TextTreeStructure::AddChild<clang::ASTNodeTraverser<clang::ASTDumper, clang::TextNodeDumper>::Visit(clang::Decl const*)::'lambda'()>(clang::ASTDumper) /data/sbergman/github.com/llvm/llvm-project/clang/include/clang/AST/TextNodeDumper.h:49:3
#35 0x00007f7b11fe5a0c clang::ASTNodeTraverser<clang::ASTDumper, clang::TextNodeDumper>::Visit(clang::Decl const*) /data/sbergman/github.com/llvm/llvm-project/clang/include/clang/AST/ASTNodeTraverser.h:98:3
#36 0x00007f7b11fe8489 clang::ASTNodeTraverser<clang::ASTDumper, clang::TextNodeDumper>::dumpDeclContext(clang::DeclContext const*) /data/sbergman/github.com/llvm/llvm-project/clang/include/clang/AST/ASTNodeTraverser.h:230:5
#37 0x00007f7b11fe59c0 clang::ASTNodeTraverser<clang::ASTDumper, clang::TextNodeDumper>::Visit(clang::Decl const*)::'lambda'()::operator()() const /data/sbergman/github.com/llvm/llvm-project/clang/include/clang/AST/ASTNodeTraverser.h:95:11
#38 0x00007f7b11fefb24 void clang::TextTreeStructure::AddChild<clang::ASTNodeTraverser<clang::ASTDumper, clang::TextNodeDumper>::Visit(clang::Decl const*)::'lambda'()>(llvm::StringRef, clang::ASTDumper) /data/sbergman/github.com/llvm/llvm-project/clang/include/clang/AST/TextNodeDumper.h:59:28
#39 0x00007f7b11fe84ec void clang::TextTreeStructure::AddChild<clang::ASTNodeTraverser<clang::ASTDumper, clang::TextNodeDumper>::Visit(clang::Decl const*)::'lambda'()>(clang::ASTDumper) /data/sbergman/github.com/llvm/llvm-project/clang/include/clang/AST/TextNodeDumper.h:49:3
#40 0x00007f7b11fe5a0c clang::ASTNodeTraverser<clang::ASTDumper, clang::TextNodeDumper>::Visit(clang::Decl const*) /data/sbergman/github.com/llvm/llvm-project/clang/include/clang/AST/ASTNodeTraverser.h:98:3
#41 0x00007f7b11fdf118 clang::Decl::dump(llvm::raw_ostream&, bool, clang::ASTDumpOutputFormat) const /data/sbergman/github.com/llvm/llvm-project/clang/lib/AST/ASTDumper.cpp:193:77
#42 0x00007f7b155105cd (anonymous namespace)::ASTPrinter::print(clang::Decl*) /data/sbergman/github.com/llvm/llvm-project/clang/lib/Frontend/ASTConsumers.cpp:96:5
#43 0x00007f7b155101c9 (anonymous namespace)::ASTPrinter::HandleTranslationUnit(clang::ASTContext&) /data/sbergman/github.com/llvm/llvm-project/clang/lib/Frontend/ASTConsumers.cpp:48:23
#44 0x00007f7b106ed7b0 clang::ParseAST(clang::Sema&, bool, bool) /data/sbergman/github.com/llvm/llvm-project/clang/lib/Parse/ParseAST.cpp:178:14
#45 0x00007f7b156ce653 clang::ASTFrontendAction::ExecuteAction() /data/sbergman/github.com/llvm/llvm-project/clang/lib/Frontend/FrontendAction.cpp:1042:11
#46 0x00007f7b156cdfbf clang::FrontendAction::Execute() /data/sbergman/github.com/llvm/llvm-project/clang/lib/Frontend/FrontendAction.cpp:939:38
#47 0x00007f7b15654689 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) /data/sbergman/github.com/llvm/llvm-project/clang/lib/Frontend/CompilerInstance.cpp:964:42
#48 0x00007f7b1518e719 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) /data/sbergman/github.com/llvm/llvm-project/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp:290:38
#49 0x0000000000269729 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) /data/sbergman/github.com/llvm/llvm-project/clang/tools/driver/cc1_main.cpp:250:40
#50 0x000000000025f64d ExecuteCC1Tool(llvm::ArrayRef<char const*>, llvm::StringRef) /data/sbergman/github.com/llvm/llvm-project/clang/tools/driver/driver.cpp:309:64
#51 0x000000000025fcad main /data/sbergman/github.com/llvm/llvm-project/clang/tools/driver/driver.cpp:382:26
#52 0x00007f7b14618f43 __libc_start_main /usr/src/debug/glibc-2.29-32-g6d8eaf4a25/csu/../csu/libc-start.c:342:3
#53 0x000000000025e02e _start (/data/sbergman/llvm/debug/inst/bin/clang-10+0x25e02e)