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

Crash on missing template disambiguator after C++20-allowed missing typename disambiguator #91677

Open
dwblaikie opened this issue May 9, 2024 · 3 comments · May be fixed by #94725
Open

Crash on missing template disambiguator after C++20-allowed missing typename disambiguator #91677

dwblaikie opened this issue May 9, 2024 · 3 comments · May be fixed by #94725
Labels
clang:frontend Language frontend issues, e.g. anything involving "Sema" crash-on-valid

Comments

@dwblaikie
Copy link
Collaborator

dwblaikie commented May 9, 2024

https://godbolt.org/z/MEKToW14c

template <typename> struct t1 {
  template <typename>
  struct t2 {};
};

template <typename T>
t1<T>::template t2<T> f1();

void f2() {
  f1<bool>();
}
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace, preprocessed source, and associated run script.
Stack dump:
0.	Program arguments: /opt/compiler-explorer/clang-16.0.0/bin/clang++ -gdwarf-4 -g -o /app/output.s -mllvm --x86-asm-syntax=intel -S --gcc-toolchain=/opt/compiler-explorer/gcc-12.2.0 -fcolor-diagnostics -fno-crash-diagnostics -std=c++20 <source>
1.	<eof> parser at end of file
2.	<source>:9:6: LLVM IR generation of declaration 'f2'
3.	<source>:9:6: Generating code for declaration 'f2'
 #0 0x0000569be3cb48df llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/opt/compiler-explorer/clang-16.0.0/bin/clang+++0x3ba18df)
 #1 0x0000569be3cb290c llvm::sys::CleanupOnSignal(unsigned long) (/opt/compiler-explorer/clang-16.0.0/bin/clang+++0x3b9f90c)
 #2 0x0000569be3c05518 CrashRecoverySignalHandler(int) CrashRecoveryContext.cpp:0:0
 #3 0x00007599e2a42520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
 #4 0x0000569be357cac5 llvm::FunctionType::get(llvm::Type*, llvm::ArrayRef<llvm::Type*>, bool) (/opt/compiler-explorer/clang-16.0.0/bin/clang+++0x3469ac5)
 #5 0x0000569be4449873 clang::CodeGen::CodeGenTypes::GetFunctionType(clang::CodeGen::CGFunctionInfo const&) (/opt/compiler-explorer/clang-16.0.0/bin/clang+++0x4336873)
 #6 0x0000569be423c394 clang::CodeGen::CodeGenTypes::ConvertFunctionTypeInternal(clang::QualType) (/opt/compiler-explorer/clang-16.0.0/bin/clang+++0x4129394)
 #7 0x0000569be423d7f8 clang::CodeGen::CodeGenTypes::ConvertType(clang::QualType) (/opt/compiler-explorer/clang-16.0.0/bin/clang+++0x412a7f8)
 #8 0x0000569be41fd6bf clang::CodeGen::CodeGenModule::GetAddrOfFunction(clang::GlobalDecl, llvm::Type*, bool, bool, clang::CodeGen::ForDefinition_t) (/opt/compiler-explorer/clang-16.0.0/bin/clang+++0x40ea6bf)
 #9 0x0000569be44a558c EmitFunctionDeclPointer(clang::CodeGen::CodeGenModule&, clang::GlobalDecl) CGExpr.cpp:0:0
#10 0x0000569be44b405a EmitDirectCallee(clang::CodeGen::CodeGenFunction&, clang::GlobalDecl) CGExpr.cpp:0:0
#11 0x0000569be44cd525 clang::CodeGen::CodeGenFunction::EmitCallee(clang::Expr const*) (/opt/compiler-explorer/clang-16.0.0/bin/clang+++0x43ba525)
#12 0x0000569be44cd94a clang::CodeGen::CodeGenFunction::EmitCallExpr(clang::CallExpr const*, clang::CodeGen::ReturnValueSlot) (/opt/compiler-explorer/clang-16.0.0/bin/clang+++0x43ba94a)
#13 0x0000569be4516727 (anonymous namespace)::ScalarExprEmitter::VisitCallExpr(clang::CallExpr const*) CGExprScalar.cpp:0:0
#14 0x0000569be450b5e0 (anonymous namespace)::ScalarExprEmitter::Visit(clang::Expr*) CGExprScalar.cpp:0:0
#15 0x0000569be450da97 clang::CodeGen::CodeGenFunction::EmitScalarExpr(clang::Expr const*, bool) (/opt/compiler-explorer/clang-16.0.0/bin/clang+++0x43faa97)
#16 0x0000569be44aebb6 clang::CodeGen::CodeGenFunction::EmitAnyExpr(clang::Expr const*, clang::CodeGen::AggValueSlot, bool) (/opt/compiler-explorer/clang-16.0.0/bin/clang+++0x439bbb6)
#17 0x0000569be44cbce9 clang::CodeGen::CodeGenFunction::EmitIgnoredExpr(clang::Expr const*) (/opt/compiler-explorer/clang-16.0.0/bin/clang+++0x43b8ce9)
#18 0x0000569be4135593 clang::CodeGen::CodeGenFunction::EmitStmt(clang::Stmt const*, llvm::ArrayRef<clang::Attr const*>) (/opt/compiler-explorer/clang-16.0.0/bin/clang+++0x4022593)
#19 0x0000569be413b7aa clang::CodeGen::CodeGenFunction::EmitCompoundStmtWithoutScope(clang::CompoundStmt const&, bool, clang::CodeGen::AggValueSlot) (/opt/compiler-explorer/clang-16.0.0/bin/clang+++0x40287aa)
#20 0x0000569be419b08d clang::CodeGen::CodeGenFunction::EmitFunctionBody(clang::Stmt const*) (/opt/compiler-explorer/clang-16.0.0/bin/clang+++0x408808d)
#21 0x0000569be41a62a6 clang::CodeGen::CodeGenFunction::GenerateCode(clang::GlobalDecl, llvm::Function*, clang::CodeGen::CGFunctionInfo const&) (/opt/compiler-explorer/clang-16.0.0/bin/clang+++0x40932a6)
#22 0x0000569be41fd88a clang::CodeGen::CodeGenModule::EmitGlobalFunctionDefinition(clang::GlobalDecl, llvm::GlobalValue*) (/opt/compiler-explorer/clang-16.0.0/bin/clang+++0x40ea88a)
#23 0x0000569be41fa015 clang::CodeGen::CodeGenModule::EmitGlobalDefinition(clang::GlobalDecl, llvm::GlobalValue*) (/opt/compiler-explorer/clang-16.0.0/bin/clang+++0x40e7015)
#24 0x0000569be41fa503 clang::CodeGen::CodeGenModule::EmitGlobal(clang::GlobalDecl) (/opt/compiler-explorer/clang-16.0.0/bin/clang+++0x40e7503)
#25 0x0000569be4201ff9 clang::CodeGen::CodeGenModule::EmitTopLevelDecl(clang::Decl*) (.part.0) CodeGenModule.cpp:0:0
#26 0x0000569be4fa6d01 (anonymous namespace)::CodeGeneratorImpl::HandleTopLevelDecl(clang::DeclGroupRef) ModuleBuilder.cpp:0:0
#27 0x0000569be4f9973d clang::BackendConsumer::HandleTopLevelDecl(clang::DeclGroupRef) (/opt/compiler-explorer/clang-16.0.0/bin/clang+++0x4e8673d)
#28 0x0000569be61c9a74 clang::ParseAST(clang::Sema&, bool, bool) (/opt/compiler-explorer/clang-16.0.0/bin/clang+++0x60b6a74)
#29 0x0000569be4fa4865 clang::CodeGenAction::ExecuteAction() (/opt/compiler-explorer/clang-16.0.0/bin/clang+++0x4e91865)
#30 0x0000569be4880671 clang::FrontendAction::Execute() (/opt/compiler-explorer/clang-16.0.0/bin/clang+++0x476d671)
#31 0x0000569be4804993 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/opt/compiler-explorer/clang-16.0.0/bin/clang+++0x46f1993)
#32 0x0000569be4964b3b clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/opt/compiler-explorer/clang-16.0.0/bin/clang+++0x4851b3b)
#33 0x0000569be148d41c cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/opt/compiler-explorer/clang-16.0.0/bin/clang+++0x137a41c)
#34 0x0000569be1488bdc ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&) driver.cpp:0:0
#35 0x0000569be4665ce9 void llvm::function_ref<void ()>::callback_fn<clang::driver::CC1Command::Execute(llvm::ArrayRef<std::optional<llvm::StringRef>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, bool*) const::'lambda'()>(long) Job.cpp:0:0
#36 0x0000569be3c05977 llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) (/opt/compiler-explorer/clang-16.0.0/bin/clang+++0x3af2977)
#37 0x0000569be4665f1c clang::driver::CC1Command::Execute(llvm::ArrayRef<std::optional<llvm::StringRef>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, bool*) const (.part.0) Job.cpp:0:0
#38 0x0000569be462e3fc clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&, bool) const (/opt/compiler-explorer/clang-16.0.0/bin/clang+++0x451b3fc)
#39 0x0000569be462eded clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&, bool) const (/opt/compiler-explorer/clang-16.0.0/bin/clang+++0x451bded)
#40 0x0000569be463923c clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&) (/opt/compiler-explorer/clang-16.0.0/bin/clang+++0x452623c)
#41 0x0000569be148b523 clang_main(int, char**) (/opt/compiler-explorer/clang-16.0.0/bin/clang+++0x1378523)
#42 0x00007599e2a29d90 (/lib/x86_64-linux-gnu/libc.so.6+0x29d90)
#43 0x00007599e2a29e40 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29e40)
#44 0x0000569be1484d1e _start (/opt/compiler-explorer/clang-16.0.0/bin/clang+++0x1371d1e)
@dwblaikie dwblaikie added clang Clang issues not falling into any other category crash-on-invalid labels May 9, 2024
@EugeneZelenko EugeneZelenko added clang:codegen and removed clang Clang issues not falling into any other category labels May 9, 2024
@llvmbot
Copy link
Collaborator

llvmbot commented May 9, 2024

@llvm/issue-subscribers-clang-codegen

Author: David Blaikie (dwblaikie)

https://godbolt.org/z/shvqo8jhY ``` template <typename> struct t1 { template <typename> struct t2 {}; };

template <typename T>
t1<T>::t2<T> f1();

void f2() {
f1<bool>();
}


PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace, preprocessed source, and associated run script.
Stack dump:
0. Program arguments: /opt/compiler-explorer/clang-16.0.0/bin/clang++ -gdwarf-4 -g -o /app/output.s -mllvm --x86-asm-syntax=intel -S --gcc-toolchain=/opt/compiler-explorer/gcc-12.2.0 -fcolor-diagnostics -fno-crash-diagnostics -std=c++20 <source>

  1. <eof> parser at end of file
  2. <source>:9:6: LLVM IR generation of declaration 'f2'
  3. <source>:9:6: Generating code for declaration 'f2'
    #0 0x0000569be3cb48df llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/opt/compiler-explorer/clang-16.0.0/bin/clang+++0x3ba18df)
    #1 0x0000569be3cb290c llvm::sys::CleanupOnSignal(unsigned long) (/opt/compiler-explorer/clang-16.0.0/bin/clang+++0x3b9f90c)
    #2 0x0000569be3c05518 CrashRecoverySignalHandler(int) CrashRecoveryContext.cpp:0:0
    #3 0x00007599e2a42520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
    #4 0x0000569be357cac5 llvm::FunctionType::get(llvm::Type*, llvm::ArrayRef<llvm::Type*>, bool) (/opt/compiler-explorer/clang-16.0.0/bin/clang+++0x3469ac5)
    #5 0x0000569be4449873 clang::CodeGen::CodeGenTypes::GetFunctionType(clang::CodeGen::CGFunctionInfo const&) (/opt/compiler-explorer/clang-16.0.0/bin/clang+++0x4336873)
    #6 0x0000569be423c394 clang::CodeGen::CodeGenTypes::ConvertFunctionTypeInternal(clang::QualType) (/opt/compiler-explorer/clang-16.0.0/bin/clang+++0x4129394)
    #7 0x0000569be423d7f8 clang::CodeGen::CodeGenTypes::ConvertType(clang::QualType) (/opt/compiler-explorer/clang-16.0.0/bin/clang+++0x412a7f8)
    #8 0x0000569be41fd6bf clang::CodeGen::CodeGenModule::GetAddrOfFunction(clang::GlobalDecl, llvm::Type*, bool, bool, clang::CodeGen::ForDefinition_t) (/opt/compiler-explorer/clang-16.0.0/bin/clang+++0x40ea6bf)
    #9 0x0000569be44a558c EmitFunctionDeclPointer(clang::CodeGen::CodeGenModule&, clang::GlobalDecl) CGExpr.cpp:0:0
    #10 0x0000569be44b405a EmitDirectCallee(clang::CodeGen::CodeGenFunction&, clang::GlobalDecl) CGExpr.cpp:0:0
    #11 0x0000569be44cd525 clang::CodeGen::CodeGenFunction::EmitCallee(clang::Expr const*) (/opt/compiler-explorer/clang-16.0.0/bin/clang+++0x43ba525)
    #12 0x0000569be44cd94a clang::CodeGen::CodeGenFunction::EmitCallExpr(clang::CallExpr const*, clang::CodeGen::ReturnValueSlot) (/opt/compiler-explorer/clang-16.0.0/bin/clang+++0x43ba94a)
    #13 0x0000569be4516727 (anonymous namespace)::ScalarExprEmitter::VisitCallExpr(clang::CallExpr const*) CGExprScalar.cpp:0:0
    #14 0x0000569be450b5e0 (anonymous namespace)::ScalarExprEmitter::Visit(clang::Expr*) CGExprScalar.cpp:0:0
    #15 0x0000569be450da97 clang::CodeGen::CodeGenFunction::EmitScalarExpr(clang::Expr const*, bool) (/opt/compiler-explorer/clang-16.0.0/bin/clang+++0x43faa97)
    #16 0x0000569be44aebb6 clang::CodeGen::CodeGenFunction::EmitAnyExpr(clang::Expr const*, clang::CodeGen::AggValueSlot, bool) (/opt/compiler-explorer/clang-16.0.0/bin/clang+++0x439bbb6)
    #17 0x0000569be44cbce9 clang::CodeGen::CodeGenFunction::EmitIgnoredExpr(clang::Expr const*) (/opt/compiler-explorer/clang-16.0.0/bin/clang+++0x43b8ce9)
    #18 0x0000569be4135593 clang::CodeGen::CodeGenFunction::EmitStmt(clang::Stmt const*, llvm::ArrayRef<clang::Attr const*>) (/opt/compiler-explorer/clang-16.0.0/bin/clang+++0x4022593)
    #19 0x0000569be413b7aa clang::CodeGen::CodeGenFunction::EmitCompoundStmtWithoutScope(clang::CompoundStmt const&, bool, clang::CodeGen::AggValueSlot) (/opt/compiler-explorer/clang-16.0.0/bin/clang+++0x40287aa)
    #20 0x0000569be419b08d clang::CodeGen::CodeGenFunction::EmitFunctionBody(clang::Stmt const*) (/opt/compiler-explorer/clang-16.0.0/bin/clang+++0x408808d)
    #21 0x0000569be41a62a6 clang::CodeGen::CodeGenFunction::GenerateCode(clang::GlobalDecl, llvm::Function*, clang::CodeGen::CGFunctionInfo const&) (/opt/compiler-explorer/clang-16.0.0/bin/clang+++0x40932a6)
    #22 0x0000569be41fd88a clang::CodeGen::CodeGenModule::EmitGlobalFunctionDefinition(clang::GlobalDecl, llvm::GlobalValue*) (/opt/compiler-explorer/clang-16.0.0/bin/clang+++0x40ea88a)
    #23 0x0000569be41fa015 clang::CodeGen::CodeGenModule::EmitGlobalDefinition(clang::GlobalDecl, llvm::GlobalValue*) (/opt/compiler-explorer/clang-16.0.0/bin/clang+++0x40e7015)
    #24 0x0000569be41fa503 clang::CodeGen::CodeGenModule::EmitGlobal(clang::GlobalDecl) (/opt/compiler-explorer/clang-16.0.0/bin/clang+++0x40e7503)
    #25 0x0000569be4201ff9 clang::CodeGen::CodeGenModule::EmitTopLevelDecl(clang::Decl*) (.part.0) CodeGenModule.cpp:0:0
    #26 0x0000569be4fa6d01 (anonymous namespace)::CodeGeneratorImpl::HandleTopLevelDecl(clang::DeclGroupRef) ModuleBuilder.cpp:0:0
    #27 0x0000569be4f9973d clang::BackendConsumer::HandleTopLevelDecl(clang::DeclGroupRef) (/opt/compiler-explorer/clang-16.0.0/bin/clang+++0x4e8673d)
    #28 0x0000569be61c9a74 clang::ParseAST(clang::Sema&, bool, bool) (/opt/compiler-explorer/clang-16.0.0/bin/clang+++0x60b6a74)
    #29 0x0000569be4fa4865 clang::CodeGenAction::ExecuteAction() (/opt/compiler-explorer/clang-16.0.0/bin/clang+++0x4e91865)
    #30 0x0000569be4880671 clang::FrontendAction::Execute() (/opt/compiler-explorer/clang-16.0.0/bin/clang+++0x476d671)
    #31 0x0000569be4804993 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/opt/compiler-explorer/clang-16.0.0/bin/clang+++0x46f1993)
    #32 0x0000569be4964b3b clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/opt/compiler-explorer/clang-16.0.0/bin/clang+++0x4851b3b)
    #33 0x0000569be148d41c cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/opt/compiler-explorer/clang-16.0.0/bin/clang+++0x137a41c)
    #34 0x0000569be1488bdc ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&) driver.cpp:0:0
    #35 0x0000569be4665ce9 void llvm::function_ref<void ()>::callback_fn<clang::driver::CC1Command::Execute(llvm::ArrayRef<std::optional<llvm::StringRef>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, bool) const::'lambda'()>(long) Job.cpp:0:0
    #36 0x0000569be3c05977 llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) (/opt/compiler-explorer/clang-16.0.0/bin/clang+++0x3af2977)
    #37 0x0000569be4665f1c clang::driver::CC1Command::Execute(llvm::ArrayRef<std::optional<llvm::StringRef>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, bool) const (.part.0) Job.cpp:0:0
    #38 0x0000569be462e3fc clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&, bool) const (/opt/compiler-explorer/clang-16.0.0/bin/clang+++0x451b3fc)
    #39 0x0000569be462eded clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&, bool) const (/opt/compiler-explorer/clang-16.0.0/bin/clang+++0x451bded)
    #40 0x0000569be463923c clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&) (/opt/compiler-explorer/clang-16.0.0/bin/clang+++0x452623c)
    #41 0x0000569be148b523 clang_main(int, char**) (/opt/compiler-explorer/clang-16.0.0/bin/clang+++0x1378523)
    #42 0x00007599e2a29d90 (/lib/x86_64-linux-gnu/libc.so.6+0x29d90)
    #43 0x00007599e2a29e40 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29e40)
    #44 0x0000569be1484d1e _start (/opt/compiler-explorer/clang-16.0.0/bin/clang+++0x1371d1e)
</details>

@efriedma-quic efriedma-quic added clang:frontend Language frontend issues, e.g. anything involving "Sema" and removed clang:codegen labels May 9, 2024
@llvmbot
Copy link
Collaborator

llvmbot commented May 9, 2024

@llvm/issue-subscribers-clang-frontend

Author: David Blaikie (dwblaikie)

https://godbolt.org/z/MEKToW14c ``` template <typename> struct t1 { template <typename> struct t2 {}; };

template <typename T>
t1<T>::template t2<T> f1();

void f2() {
f1<bool>();
}

PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace, preprocessed source, and associated run script.
Stack dump:
0. Program arguments: /opt/compiler-explorer/clang-16.0.0/bin/clang++ -gdwarf-4 -g -o /app/output.s -mllvm --x86-asm-syntax=intel -S --gcc-toolchain=/opt/compiler-explorer/gcc-12.2.0 -fcolor-diagnostics -fno-crash-diagnostics -std=c++20 <source>

  1. <eof> parser at end of file
  2. <source>:9:6: LLVM IR generation of declaration 'f2'
  3. <source>:9:6: Generating code for declaration 'f2'
    #0 0x0000569be3cb48df llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/opt/compiler-explorer/clang-16.0.0/bin/clang+++0x3ba18df)
    #1 0x0000569be3cb290c llvm::sys::CleanupOnSignal(unsigned long) (/opt/compiler-explorer/clang-16.0.0/bin/clang+++0x3b9f90c)
    #2 0x0000569be3c05518 CrashRecoverySignalHandler(int) CrashRecoveryContext.cpp:0:0
    #3 0x00007599e2a42520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
    #4 0x0000569be357cac5 llvm::FunctionType::get(llvm::Type*, llvm::ArrayRef<llvm::Type*>, bool) (/opt/compiler-explorer/clang-16.0.0/bin/clang+++0x3469ac5)
    #5 0x0000569be4449873 clang::CodeGen::CodeGenTypes::GetFunctionType(clang::CodeGen::CGFunctionInfo const&) (/opt/compiler-explorer/clang-16.0.0/bin/clang+++0x4336873)
    #6 0x0000569be423c394 clang::CodeGen::CodeGenTypes::ConvertFunctionTypeInternal(clang::QualType) (/opt/compiler-explorer/clang-16.0.0/bin/clang+++0x4129394)
    #7 0x0000569be423d7f8 clang::CodeGen::CodeGenTypes::ConvertType(clang::QualType) (/opt/compiler-explorer/clang-16.0.0/bin/clang+++0x412a7f8)
    #8 0x0000569be41fd6bf clang::CodeGen::CodeGenModule::GetAddrOfFunction(clang::GlobalDecl, llvm::Type*, bool, bool, clang::CodeGen::ForDefinition_t) (/opt/compiler-explorer/clang-16.0.0/bin/clang+++0x40ea6bf)
    #9 0x0000569be44a558c EmitFunctionDeclPointer(clang::CodeGen::CodeGenModule&, clang::GlobalDecl) CGExpr.cpp:0:0
    #10 0x0000569be44b405a EmitDirectCallee(clang::CodeGen::CodeGenFunction&, clang::GlobalDecl) CGExpr.cpp:0:0
    #11 0x0000569be44cd525 clang::CodeGen::CodeGenFunction::EmitCallee(clang::Expr const*) (/opt/compiler-explorer/clang-16.0.0/bin/clang+++0x43ba525)
    #12 0x0000569be44cd94a clang::CodeGen::CodeGenFunction::EmitCallExpr(clang::CallExpr const*, clang::CodeGen::ReturnValueSlot) (/opt/compiler-explorer/clang-16.0.0/bin/clang+++0x43ba94a)
    #13 0x0000569be4516727 (anonymous namespace)::ScalarExprEmitter::VisitCallExpr(clang::CallExpr const*) CGExprScalar.cpp:0:0
    #14 0x0000569be450b5e0 (anonymous namespace)::ScalarExprEmitter::Visit(clang::Expr*) CGExprScalar.cpp:0:0
    #15 0x0000569be450da97 clang::CodeGen::CodeGenFunction::EmitScalarExpr(clang::Expr const*, bool) (/opt/compiler-explorer/clang-16.0.0/bin/clang+++0x43faa97)
    #16 0x0000569be44aebb6 clang::CodeGen::CodeGenFunction::EmitAnyExpr(clang::Expr const*, clang::CodeGen::AggValueSlot, bool) (/opt/compiler-explorer/clang-16.0.0/bin/clang+++0x439bbb6)
    #17 0x0000569be44cbce9 clang::CodeGen::CodeGenFunction::EmitIgnoredExpr(clang::Expr const*) (/opt/compiler-explorer/clang-16.0.0/bin/clang+++0x43b8ce9)
    #18 0x0000569be4135593 clang::CodeGen::CodeGenFunction::EmitStmt(clang::Stmt const*, llvm::ArrayRef<clang::Attr const*>) (/opt/compiler-explorer/clang-16.0.0/bin/clang+++0x4022593)
    #19 0x0000569be413b7aa clang::CodeGen::CodeGenFunction::EmitCompoundStmtWithoutScope(clang::CompoundStmt const&, bool, clang::CodeGen::AggValueSlot) (/opt/compiler-explorer/clang-16.0.0/bin/clang+++0x40287aa)
    #20 0x0000569be419b08d clang::CodeGen::CodeGenFunction::EmitFunctionBody(clang::Stmt const*) (/opt/compiler-explorer/clang-16.0.0/bin/clang+++0x408808d)
    #21 0x0000569be41a62a6 clang::CodeGen::CodeGenFunction::GenerateCode(clang::GlobalDecl, llvm::Function*, clang::CodeGen::CGFunctionInfo const&) (/opt/compiler-explorer/clang-16.0.0/bin/clang+++0x40932a6)
    #22 0x0000569be41fd88a clang::CodeGen::CodeGenModule::EmitGlobalFunctionDefinition(clang::GlobalDecl, llvm::GlobalValue*) (/opt/compiler-explorer/clang-16.0.0/bin/clang+++0x40ea88a)
    #23 0x0000569be41fa015 clang::CodeGen::CodeGenModule::EmitGlobalDefinition(clang::GlobalDecl, llvm::GlobalValue*) (/opt/compiler-explorer/clang-16.0.0/bin/clang+++0x40e7015)
    #24 0x0000569be41fa503 clang::CodeGen::CodeGenModule::EmitGlobal(clang::GlobalDecl) (/opt/compiler-explorer/clang-16.0.0/bin/clang+++0x40e7503)
    #25 0x0000569be4201ff9 clang::CodeGen::CodeGenModule::EmitTopLevelDecl(clang::Decl*) (.part.0) CodeGenModule.cpp:0:0
    #26 0x0000569be4fa6d01 (anonymous namespace)::CodeGeneratorImpl::HandleTopLevelDecl(clang::DeclGroupRef) ModuleBuilder.cpp:0:0
    #27 0x0000569be4f9973d clang::BackendConsumer::HandleTopLevelDecl(clang::DeclGroupRef) (/opt/compiler-explorer/clang-16.0.0/bin/clang+++0x4e8673d)
    #28 0x0000569be61c9a74 clang::ParseAST(clang::Sema&, bool, bool) (/opt/compiler-explorer/clang-16.0.0/bin/clang+++0x60b6a74)
    #29 0x0000569be4fa4865 clang::CodeGenAction::ExecuteAction() (/opt/compiler-explorer/clang-16.0.0/bin/clang+++0x4e91865)
    #30 0x0000569be4880671 clang::FrontendAction::Execute() (/opt/compiler-explorer/clang-16.0.0/bin/clang+++0x476d671)
    #31 0x0000569be4804993 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/opt/compiler-explorer/clang-16.0.0/bin/clang+++0x46f1993)
    #32 0x0000569be4964b3b clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/opt/compiler-explorer/clang-16.0.0/bin/clang+++0x4851b3b)
    #33 0x0000569be148d41c cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/opt/compiler-explorer/clang-16.0.0/bin/clang+++0x137a41c)
    #34 0x0000569be1488bdc ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&) driver.cpp:0:0
    #35 0x0000569be4665ce9 void llvm::function_ref<void ()>::callback_fn<clang::driver::CC1Command::Execute(llvm::ArrayRef<std::optional<llvm::StringRef>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, bool) const::'lambda'()>(long) Job.cpp:0:0
    #36 0x0000569be3c05977 llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) (/opt/compiler-explorer/clang-16.0.0/bin/clang+++0x3af2977)
    #37 0x0000569be4665f1c clang::driver::CC1Command::Execute(llvm::ArrayRef<std::optional<llvm::StringRef>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, bool) const (.part.0) Job.cpp:0:0
    #38 0x0000569be462e3fc clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&, bool) const (/opt/compiler-explorer/clang-16.0.0/bin/clang+++0x451b3fc)
    #39 0x0000569be462eded clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&, bool) const (/opt/compiler-explorer/clang-16.0.0/bin/clang+++0x451bded)
    #40 0x0000569be463923c clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&) (/opt/compiler-explorer/clang-16.0.0/bin/clang+++0x452623c)
    #41 0x0000569be148b523 clang_main(int, char**) (/opt/compiler-explorer/clang-16.0.0/bin/clang+++0x1378523)
    #42 0x00007599e2a29d90 (/lib/x86_64-linux-gnu/libc.so.6+0x29d90)
    #43 0x00007599e2a29e40 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29e40)
    #44 0x0000569be1484d1e _start (/opt/compiler-explorer/clang-16.0.0/bin/clang+++0x1371d1e)
</details>

@efriedma-quic
Copy link
Collaborator

(With assertions enables, this gives "non-canonical or dependent type in IR-generation", which is almost never a codegen issue.)

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" crash-on-valid
Projects
None yet
4 participants