llvm-project icon indicating copy to clipboard operation
llvm-project copied to clipboard

Clang crashes in TemplateArgument::isPackExpansion on current main.

Open CarloWood opened this issue 2 years ago • 6 comments

The following snippet crashes: https://wandbox.org/permlink/ypCN8tQA9I26lW5L

CarloWood avatar Aug 01 '22 12:08 CarloWood

@CarloWood: Could you please provide crash details?

EugeneZelenko avatar Aug 01 '22 13:08 EugeneZelenko

godbolt with clang (assertions trunk): https://godbolt.org/z/czTG4GG71

clang++: /root/llvm-project/llvm/include/llvm/Support/Casting.h:109: static bool llvm::isa_impl_cl<To, const From*>::doit(const From*) [with To = clang::PackExpansionExpr; From = clang::Expr]: Assertion `Val && "isa<> used on a null pointer"' failed.
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-assertions-trunk/bin/clang++ -gdwarf-4 -g -o /app/output.s -mllvm --x86-asm-syntax=intel -S --gcc-toolchain=/opt/compiler-explorer/gcc-snapshot -fcolor-diagnostics -fno-crash-diagnostics -std=c++20 <source>
1.	<eof> parser at end of file
2.	<source>:73:6: instantiating function definition 'print_layout<Bar>'
3.	<source>:77:3: instantiating function definition 'print_layout()::(anonymous class)::operator()<std::tuple<Member<float[10]>, const char *, unsigned long>, std::tuple<Member<Foo[3]>, const char *, unsigned long>, std::tuple<Member<Foo>, const char *, unsigned long>>'
 #0 0x0000559bd2a62054 PrintStackTraceSignalHandler(void*) Signals.cpp:0:0
 #1 0x0000559bd2a5fd9c llvm::sys::CleanupOnSignal(unsigned long) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x3e0ad9c)
 #2 0x0000559bd29971d8 CrashRecoverySignalHandler(int) CrashRecoveryContext.cpp:0:0
 #3 0x00007f7d7f27c3c0 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x143c0)
 #4 0x00007f7d7ed4903b raise (/lib/x86_64-linux-gnu/libc.so.6+0x4303b)
 #5 0x00007f7d7ed28859 abort (/lib/x86_64-linux-gnu/libc.so.6+0x22859)
 #6 0x00007f7d7ed28729 (/lib/x86_64-linux-gnu/libc.so.6+0x22729)
 #7 0x00007f7d7ed3a006 (/lib/x86_64-linux-gnu/libc.so.6+0x34006)
 #8 0x0000559bd6122cf5 (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x74cdcf5)
 #9 0x0000559bd6125f54 clang::TemplateArgument::isPackExpansion() const (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x74d0f54)
#10 0x0000559bd5a62b78 clang::Sema::collectUnexpandedParameterPacks(clang::TemplateArgument, llvm::SmallVectorImpl<std::pair<llvm::PointerUnion<clang::TemplateTypeParmType const*, clang::NamedDecl*>, clang::SourceLocation>>&) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x6e0db78)
#11 0x0000559bd59bb833 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformCXXFoldExpr(clang::CXXFoldExpr*) SemaTemplateInstantiate.cpp:0:0
#12 0x0000559bd59b3b36 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformExpr(clang::Expr*) SemaTemplateInstantiate.cpp:0:0
#13 0x0000559bd59e745f clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformStmt(clang::Stmt*, clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::StmtDiscardKind) SemaTemplateInstantiate.cpp:0:0
#14 0x0000559bd59e8ce9 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformCompoundStmt(clang::CompoundStmt*, bool) SemaTemplateInstantiate.cpp:0:0
#15 0x0000559bd59ee289 clang::Sema::SubstStmt(clang::Stmt*, clang::MultiLevelTemplateArgumentList const&) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x6d99289)
#16 0x0000559bd5a3c6da clang::Sema::InstantiateFunctionDefinition(clang::SourceLocation, clang::FunctionDecl*, bool, bool, bool) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x6de76da)
#17 0x0000559bd50f5f15 clang::Sema::runWithSufficientStackSpace(clang::SourceLocation, llvm::function_ref<void ()>) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x64a0f15)
#18 0x0000559bd592ea57 clang::Sema::DeduceReturnType(clang::FunctionDecl*, clang::SourceLocation, bool) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x6cd9a57)
#19 0x0000559bd54617da clang::Sema::DiagnoseUseOfDecl(clang::NamedDecl*, llvm::ArrayRef<clang::SourceLocation>, clang::ObjCInterfaceDecl const*, bool, bool, clang::ObjCInterfaceDecl*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x680c7da)
#20 0x0000559bd57b526b CreateFunctionRefExpr(clang::Sema&, clang::FunctionDecl*, clang::NamedDecl*, clang::Expr const*, bool, clang::SourceLocation, clang::DeclarationNameLoc const&) (.constprop.0) SemaOverload.cpp:0:0
#21 0x0000559bd57e14e1 clang::Sema::BuildCallToObjectOfClassType(clang::Scope*, clang::Expr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x6b8c4e1)
#22 0x0000559bd54add90 clang::Sema::BuildCallExpr(clang::Scope*, clang::Expr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::Expr*, bool, bool) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x6858d90)
#23 0x0000559bd54b2a3b clang::Sema::ActOnCallExpr(clang::Scope*, clang::Expr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::Expr*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x685da3b)
#24 0x0000559bd59bd043 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformCallExpr(clang::CallExpr*) SemaTemplateInstantiate.cpp:0:0
#25 0x0000559bd59b3aa7 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformExpr(clang::Expr*) SemaTemplateInstantiate.cpp:0:0
#26 0x0000559bd59e745f clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformStmt(clang::Stmt*, clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::StmtDiscardKind) SemaTemplateInstantiate.cpp:0:0
#27 0x0000559bd59e8ce9 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformCompoundStmt(clang::CompoundStmt*, bool) SemaTemplateInstantiate.cpp:0:0
#28 0x0000559bd59ee289 clang::Sema::SubstStmt(clang::Stmt*, clang::MultiLevelTemplateArgumentList const&) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x6d99289)
#29 0x0000559bd5a3c6da clang::Sema::InstantiateFunctionDefinition(clang::SourceLocation, clang::FunctionDecl*, bool, bool, bool) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x6de76da)
#30 0x0000559bd5a3aa7f clang::Sema::PerformPendingInstantiations(bool) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x6de5a7f)
#31 0x0000559bd51141e0 clang::Sema::ActOnEndOfTranslationUnitFragment(clang::Sema::TUFragmentKind) (.part.0) Sema.cpp:0:0
#32 0x0000559bd51148da clang::Sema::ActOnEndOfTranslationUnit() (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x64bf8da)
#33 0x0000559bd4fc4b70 clang::Parser::ParseTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&, clang::Sema::ModuleImportState&) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x636fb70)
#34 0x0000559bd4fb8d8a clang::ParseAST(clang::Sema&, bool, bool) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x6363d8a)
#35 0x0000559bd3d20788 clang::CodeGenAction::ExecuteAction() (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x50cb788)
#36 0x0000559bd35c3489 clang::FrontendAction::Execute() (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x496e489)
#37 0x0000559bd354d19e clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x48f819e)
#38 0x0000559bd36a3073 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x4a4e073)
#39 0x0000559bd001b827 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x13c6827)
#40 0x0000559bd0014908 ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&) driver.cpp:0:0
#41 0x0000559bd33bccd9 void llvm::function_ref<void ()>::callback_fn<clang::driver::CC1Command::Execute(llvm::ArrayRef<llvm::Optional<llvm::StringRef>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, bool*) const::'lambda'()>(long) Job.cpp:0:0
#42 0x0000559bd299735c llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x3d4235c)
#43 0x0000559bd33bd3ef clang::driver::CC1Command::Execute(llvm::ArrayRef<llvm::Optional<llvm::StringRef>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, bool*) const (.part.0) Job.cpp:0:0
#44 0x0000559bd33873d9 clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&, bool) const (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x47323d9)
#45 0x0000559bd3387efd clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&, bool) const (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x4732efd)
#46 0x0000559bd3391f9c clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x473cf9c)
#47 0x0000559bd0019ba3 clang_main(int, char**) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x13c4ba3)
#48 0x00007f7d7ed2a0b3 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x240b3)
#49 0x0000559bd00144fe _start (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x13bf4fe)
clang-16: error: clang frontend command failed with exit code 134 (use -v to see invocation)
Compiler returned: 134

Source code:

#include <iostream>
#include <tuple>
#include <array>
#include <type_traits>
#include <cxxabi.h>

struct Mat2
{
  float a[4];
};

struct Base
{
  using base_type = Base;
  using Float = float;
  using mat2 = Mat2;
};

template<typename T>
struct ReflectionOf;

struct Foo : Base
{
  Float m_f;
  mat2 m_m;
};

#define STRINGIFY(x) STR(x)
#define STR(x) #x

#define MEMBER(classname, membername) \
  std::tuple{ Member<decltype(classname::membername)>{}, STRINGIFY(classname) "::" STRINGIFY(membername), offsetof(classname, membername) }

template<typename T>
struct Member
{
  using element_type = T;
};

template<typename... Members>
static constexpr std::tuple<std::tuple<Members, char const*, size_t>...> make_members(std::tuple<Members, char const*, size_t>... args)
{
  return { args... };
}

template<>
struct ReflectionOf<Foo>
{
  static constexpr auto members = make_members(
    MEMBER(Foo, m_f),
    MEMBER(Foo, m_m)
  );
};

struct Bar : Base
{
  Float m_fa[10];
  Foo m_fooa[3];
  Foo m_foo;
};

template<>
struct ReflectionOf<Bar>
{
  static constexpr auto members = make_members(
    MEMBER(Bar, m_fa),
    MEMBER(Bar, m_fooa),
    MEMBER(Bar, m_foo)
  );
};

template<typename T>
void print_layout()
{
  using base_type = typename T::base_type;
  
  [&]<typename... Ts>(std::tuple<Ts...>)
  {
    constexpr std::array alignments{alignof(Ts)...};
    std::cout << "Number of members: " << alignments.size() << '\n';

    ([&]
    {
      using element_type = typename std::tuple_element<0, Ts>::type::element_type;
      if constexpr (std::is_base_of_v<base_type, element_type>)
      {
        print_layout<element_type>();        
      }
      else if constexpr (std::is_same_v<element_type, Base::Float>)
        std::cout << "Float\n";
      else if constexpr (std::is_same_v<element_type, Base::mat2>) 
        std::cout << "mat2\n";
      else
      {
        int rc;
        char const* const demangled_type = abi::__cxa_demangle(typeid(element_type).name(), 0, 0, &rc);
        std::cout << "We get here for type " << demangled_type << "\n";
      }
    }(), ...);

  }(ReflectionOf<T>::members);
}

int main()
{
  print_layout<Bar>();
  std::cout << '\n';

  return 0;
}

shafik avatar Aug 01 '22 14:08 shafik

This looks like: https://github.com/llvm/llvm-project/issues/48732

which has a much simpler reproducer.

shafik avatar Aug 01 '22 14:08 shafik

@llvm/issue-subscribers-clang-frontend

llvmbot avatar Aug 01 '22 14:08 llvmbot

Maybe it is helpful to know that the last change that I made was to change

char const* const demangled_type = abi::__cxa_demangle(typeid(Ts).name(), 0, 0, &rc);

into

char const* const demangled_type = abi::__cxa_demangle(typeid(element_type).name(), 0, 0, &rc);

The first line compiles and works.

CarloWood avatar Aug 02 '22 08:08 CarloWood

@CarloWood: Could you please provide crash details?

If you click on the link you get the code and the dump... Aka from wandbox. I am sorry that I do not have the time to investigate this, or make a shorter "test case"; I am extremely busy as it is :-/

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/wandbox/clang-head/bin/clang-16 -cc1 -triple x86_64-unknown-linux-gnu -emit-obj -mrelax-all --mrelax-relocations -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -main-file-name prog.cc -mrelocation-model pic -pic-level 2 -pic-is-pie -mframe-pointer=all -fmath-errno -ffp-contract=on -fno-rounding-math -mconstructor-aliases -funwind-tables=2 -target-cpu x86-64 -tune-cpu generic -mllvm -treat-scalable-fixed-error-as-warning -debugger-tuning=gdb -fcoverage-compilation-dir=/home/jail -nostdinc++ -resource-dir /opt/wandbox/clang-head/lib/clang/16.0.0 -I /opt/wandbox/clang-head/include/c++/v1 -I /opt/wandbox/clang-head/include/x86_64-unknown-linux-gnu/c++/v1/ -internal-isystem /opt/wandbox/clang-head/lib/clang/16.0.0/include -internal-isystem /usr/local/include -internal-isystem /usr/lib/gcc/x86_64-linux-gnu/10/../../../../x86_64-linux-gnu/include -internal-externc-isystem /usr/include/x86_64-linux-gnu -internal-externc-isystem /include -internal-externc-isystem /usr/include -Wall -Wextra -std=gnu++2b -fdeprecated-macro -fdebug-compilation-dir=/home/jail -ferror-limit 19 -fgnuc-version=4.2.1 -fcxx-exceptions -fexceptions -fcolor-diagnostics -fansi-escape-codes -faddrsig -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o /tmp/prog-1d916f.o -x c++ prog.cc
1.	<eof> parser at end of file
2.	prog.cc:73:6: instantiating function definition 'print_layout<Bar>'
3.	prog.cc:77:3: instantiating function definition 'print_layout()::(anonymous class)::operator()<std::tuple<Member<float[10]>, const char *, unsigned long>, std::tuple<Member<Foo[3]>, const char *, unsigned long>, std::tuple<Member<Foo>, const char *, unsigned long>>'
 #0 0x0000000002874ca3 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/opt/wandbox/clang-head/bin/clang-16+0x2874ca3)
 #1 0x0000000002872bae llvm::sys::RunSignalHandlers() (/opt/wandbox/clang-head/bin/clang-16+0x2872bae)
 #2 0x000000000287502f SignalHandler(int) Signals.cpp:0:0
 #3 0x00007fcd4a6993c0 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x143c0)
 #4 0x0000000004deb94f clang::TemplateArgument::isPackExpansion() const (/opt/wandbox/clang-head/bin/clang-16+0x4deb94f)
 #5 0x00000000048b4fe3 clang::Sema::collectUnexpandedParameterPacks(clang::TemplateArgument, llvm::SmallVectorImpl<std::pair<llvm::PointerUnion<clang::TemplateTypeParmType const*, clang::NamedDecl*>, clang::SourceLocation>>&) (/opt/wandbox/clang-head/bin/clang-16+0x48b4fe3)
 #6 0x0000000004856d8d clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformCXXFoldExpr(clang::CXXFoldExpr*) SemaTemplateInstantiate.cpp:0:0
 #7 0x0000000004850662 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformStmt(clang::Stmt*, clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::StmtDiscardKind) SemaTemplateInstantiate.cpp:0:0
 #8 0x0000000004867d31 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformCompoundStmt(clang::CompoundStmt*, bool) SemaTemplateInstantiate.cpp:0:0
 #9 0x0000000004850601 clang::Sema::SubstStmt(clang::Stmt*, clang::MultiLevelTemplateArgumentList const&) (/opt/wandbox/clang-head/bin/clang-16+0x4850601)
#10 0x000000000488cbf2 clang::Sema::InstantiateFunctionDefinition(clang::SourceLocation, clang::FunctionDecl*, bool, bool, bool) (/opt/wandbox/clang-head/bin/clang-16+0x488cbf2)
#11 0x000000000426e6eb clang::Sema::runWithSufficientStackSpace(clang::SourceLocation, llvm::function_ref<void ()>) (/opt/wandbox/clang-head/bin/clang-16+0x426e6eb)
#12 0x00000000047fca40 clang::Sema::DeduceReturnType(clang::FunctionDecl*, clang::SourceLocation, bool) (/opt/wandbox/clang-head/bin/clang-16+0x47fca40)
#13 0x000000000448fcc6 clang::Sema::DiagnoseUseOfDecl(clang::NamedDecl*, llvm::ArrayRef<clang::SourceLocation>, clang::ObjCInterfaceDecl const*, bool, bool, clang::ObjCInterfaceDecl*) (/opt/wandbox/clang-head/bin/clang-16+0x448fcc6)
#14 0x0000000004722720 CreateFunctionRefExpr(clang::Sema&, clang::FunctionDecl*, clang::NamedDecl*, clang::Expr const*, bool, clang::SourceLocation, clang::DeclarationNameLoc const&) SemaOverload.cpp:0:0
#15 0x0000000004729c80 clang::Sema::BuildCallToObjectOfClassType(clang::Scope*, clang::Expr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation) (/opt/wandbox/clang-head/bin/clang-16+0x4729c80)
#16 0x00000000044ac64a clang::Sema::ActOnCallExpr(clang::Scope*, clang::Expr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::Expr*) (/opt/wandbox/clang-head/bin/clang-16+0x44ac64a)
#17 0x0000000004858de1 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformCallExpr(clang::CallExpr*) SemaTemplateInstantiate.cpp:0:0
#18 0x0000000004850662 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformStmt(clang::Stmt*, clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::StmtDiscardKind) SemaTemplateInstantiate.cpp:0:0
#19 0x0000000004867d31 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformCompoundStmt(clang::CompoundStmt*, bool) SemaTemplateInstantiate.cpp:0:0
#20 0x0000000004850601 clang::Sema::SubstStmt(clang::Stmt*, clang::MultiLevelTemplateArgumentList const&) (/opt/wandbox/clang-head/bin/clang-16+0x4850601)
#21 0x000000000488cbf2 clang::Sema::InstantiateFunctionDefinition(clang::SourceLocation, clang::FunctionDecl*, bool, bool, bool) (/opt/wandbox/clang-head/bin/clang-16+0x488cbf2)
#22 0x000000000488f65a clang::Sema::PerformPendingInstantiations(bool) (/opt/wandbox/clang-head/bin/clang-16+0x488f65a)
#23 0x0000000004270c77 clang::Sema::ActOnEndOfTranslationUnitFragment(clang::Sema::TUFragmentKind) (/opt/wandbox/clang-head/bin/clang-16+0x4270c77)
#24 0x00000000042712de clang::Sema::ActOnEndOfTranslationUnit() (/opt/wandbox/clang-head/bin/clang-16+0x42712de)
#25 0x000000000416830c clang::Parser::ParseTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&, clang::Sema::ModuleImportState&) (/opt/wandbox/clang-head/bin/clang-16+0x416830c)
#26 0x000000000416438e clang::ParseAST(clang::Sema&, bool, bool) (/opt/wandbox/clang-head/bin/clang-16+0x416438e)
#27 0x000000000316c457 clang::FrontendAction::Execute() (/opt/wandbox/clang-head/bin/clang-16+0x316c457)
#28 0x00000000030e5c56 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/opt/wandbox/clang-head/bin/clang-16+0x30e5c56)
#29 0x000000000320f6db clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/opt/wandbox/clang-head/bin/clang-16+0x320f6db)
#30 0x000000000098cde6 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/opt/wandbox/clang-head/bin/clang-16+0x98cde6)
#31 0x000000000098ad5b ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&) driver.cpp:0:0
#32 0x000000000098ab54 clang_main(int, char**) (/opt/wandbox/clang-head/bin/clang-16+0x98ab54)
#33 0x00007fcd4a10d0b3 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x240b3)
#34 0x00000000009878ae _start (/opt/wandbox/clang-head/bin/clang-16+0x9878ae)
clang-16: error: unable to execute command: Segmentation fault (core dumped)
clang-16: error: clang frontend command failed due to signal (use -v to see invocation)
clang version 16.0.0 (https://github.com/llvm/llvm-project.git 773d51ce3bedd091539aa86a5e5fc15a9174ff7b)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /opt/wandbox/clang-head/bin
clang-16: error: unable to execute command: File size limit exceeded (core dumped)
clang-16: note: diagnostic msg: Error generating preprocessed source(s).

CarloWood avatar Aug 02 '22 08:08 CarloWood

Potential duplicate of: https://github.com/llvm/llvm-project/issues/18873

shafik avatar Sep 06 '23 20:09 shafik