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

Clang crash when lowering windows CXX exception #86258

Closed
Dynamu7777 opened this issue Mar 22, 2024 · 5 comments
Closed

Clang crash when lowering windows CXX exception #86258

Dynamu7777 opened this issue Mar 22, 2024 · 5 comments
Labels
backend:X86 crash Prefer [crash-on-valid] or [crash-on-invalid]

Comments

@Dynamu7777
Copy link

Dynamu7777 commented Mar 22, 2024

Given the input https://godbolt.org/z/Txd39vETh, clang crashes in addTryBlockMapEntry.

Input:

; ModuleID = '/app/example.ll'
source_filename = "recursive_throw.cpp"
target datalayout = "e-m:w-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-pc-windows-msvc19.29.30140"

; Function Attrs: mustprogress uwtable
define dso_local void @"?foo@@YAXH@Z"(i32 %0) local_unnamed_addr #0 personality ptr @__CxxFrameHandler3 {
codeRepl:
  %1 = alloca ptr, align 8
  %2 = alloca i32, align 4
  invoke void @"?foo@@YAXH@Z"(i32 poison)
          to label %6 unwind label %3

3:                                                ; preds = %codeRepl
  %4 = catchswitch within none [label %codeRepl16] unwind to caller

codeRepl16:                                       ; preds = %3
  %5 = catchpad within %4 [ptr undef, i32 8, ptr %1]
  call void @_CxxThrowException(ptr nonnull %2, ptr nonnull undef) #1 [ "funclet"(token %5) ]
  unreachable

6:                                                ; preds = %codeRepl
  ret void
}

declare dso_local i32 @__CxxFrameHandler3(...)

declare dso_local void @_CxxThrowException(ptr, ptr) local_unnamed_addr

attributes #0 = { mustprogress uwtable "frame-pointer"="none" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { noreturn }

!llvm.linker.options = !{!0, !1, !1}
!llvm.module.flags = !{!2, !3, !4}
!llvm.ident = !{!5}

!0 = !{!"/FAILIFMISMATCH:\22_CRT_STDIO_ISO_WIDE_SPECIFIERS=0\22"}
!1 = !{!"/DEFAULTLIB:uuid.lib"}
!2 = !{i32 1, !"wchar_size", i32 2}
!3 = !{i32 8, !"PIC Level", i32 2}
!4 = !{i32 7, !"uwtable", i32 2}
!5 = !{!"clang version 15.0.1"}

Backtrace:

clang++: /root/llvm-project/llvm/include/llvm/Support/Casting.h:578: decltype(auto) llvm::cast(From*) [with To = llvm::GlobalVariable; From = llvm::Constant]: Assertion `isa<To>(Val) && "cast<Ty>() argument of incompatible type!"' 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++ -g -o /app/output.s -masm=intel -S -x ir -fcolor-diagnostics -fno-crash-diagnostics -O3 -lmsvcrt -target x86_64-pc-windows-msvc -fcxx-exceptions <source>
1.	Code generation
2.	Running pass 'Function Pass Manager' on module '<source>'.
3.	Running pass 'X86 DAG->DAG Instruction Selection' on function '@"?foo@@YAXH@Z"'
 #0 0x000000000391d768 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x391d768)
 #1 0x000000000391b44c llvm::sys::CleanupOnSignal(unsigned long) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x391b44c)
 #2 0x0000000003861d98 CrashRecoverySignalHandler(int) CrashRecoveryContext.cpp:0:0
 #3 0x00007fbe03042520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
 #4 0x00007fbe030969fc pthread_kill (/lib/x86_64-linux-gnu/libc.so.6+0x969fc)
 #5 0x00007fbe03042476 gsignal (/lib/x86_64-linux-gnu/libc.so.6+0x42476)
 #6 0x00007fbe030287f3 abort (/lib/x86_64-linux-gnu/libc.so.6+0x287f3)
 #7 0x00007fbe0302871b (/lib/x86_64-linux-gnu/libc.so.6+0x2871b)
 #8 0x00007fbe03039e96 (/lib/x86_64-linux-gnu/libc.so.6+0x39e96)
 #9 0x0000000002fd3203 addTryBlockMapEntry(llvm::WinEHFuncInfo&, int, int, int, llvm::ArrayRef<llvm::CatchPadInst const*>) WinEHPrepare.cpp:0:0
#10 0x0000000002fd8749 calculateCXXStateNumbers(llvm::WinEHFuncInfo&, llvm::Instruction const*, int) WinEHPrepare.cpp:0:0
#11 0x0000000002fd8cb7 llvm::calculateWinCXXEHStateNumbers(llvm::Function const*, llvm::WinEHFuncInfo&) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x2fd8cb7)
#12 0x000000000497ea7e llvm::FunctionLoweringInfo::set(llvm::Function const&, llvm::MachineFunction&, llvm::SelectionDAG*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x497ea7e)
#13 0x0000000004a9aad4 llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) (.part.0) SelectionDAGISel.cpp:0:0
#14 0x00000000024b646c (anonymous namespace)::X86DAGToDAGISel::runOnMachineFunction(llvm::MachineFunction&) X86ISelDAGToDAG.cpp:0:0
#15 0x0000000002cd2dc1 llvm::MachineFunctionPass::runOnFunction(llvm::Function&) (.part.0) MachineFunctionPass.cpp:0:0
#16 0x00000000032b5323 llvm::FPPassManager::runOnFunction(llvm::Function&) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x32b5323)
#17 0x00000000032b5561 llvm::FPPassManager::runOnModule(llvm::Module&) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x32b5561)
#18 0x00000000032b5dc5 llvm::legacy::PassManagerImpl::run(llvm::Module&) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x32b5dc5)
#19 0x0000000003b9c73c (anonymous namespace)::EmitAssemblyHelper::EmitAssembly(clang::BackendAction, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream>>, clang::BackendConsumer*) BackendUtil.cpp:0:0
#20 0x0000000003b9cace clang::EmitBackendOutput(clang::DiagnosticsEngine&, clang::HeaderSearchOptions const&, clang::CodeGenOptions const&, clang::TargetOptions const&, clang::LangOptions const&, llvm::StringRef, llvm::Module*, clang::BackendAction, llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem>, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream>>, clang::BackendConsumer*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x3b9cace)
#21 0x00000000041b9fd5 clang::CodeGenAction::ExecuteAction() (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x41b9fd5)
#22 0x00000000044390a9 clang::FrontendAction::Execute() (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x44390a9)
#23 0x00000000043c26de clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x43c26de)
#24 0x000000000451c0ce clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x451c0ce)
#25 0x0000000000c28ecc cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0xc28ecc)
#26 0x0000000000c2215a ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&, llvm::ToolContext const&) driver.cpp:0:0
#27 0x00000000041fcdb9 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
#28 0x0000000003862244 llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x3862244)
#29 0x00000000041fd3af 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
#30 0x00000000041c3745 clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&, bool) const (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x41c3745)
#31 0x00000000041c41ad 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+++0x41c41ad)
#32 0x00000000041cbf15 clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x41cbf15)
#33 0x0000000000c26365 clang_main(int, char**, llvm::ToolContext const&) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0xc26365)
#34 0x0000000000b1c824 main (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0xb1c824)
#35 0x00007fbe03029d90 (/lib/x86_64-linux-gnu/libc.so.6+0x29d90)
#36 0x00007fbe03029e40 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29e40)
#37 0x0000000000c21c4e _start (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0xc21c4e)
clang++: error: clang frontend command failed with exit code 134 (use -v to see invocation)
Compiler returned: 134
@github-actions github-actions bot added the clang Clang issues not falling into any other category label Mar 22, 2024
@Dynamu7777
Copy link
Author

Rolling back to Clang16 and changing invoke void @"?foo@@YAXH@Z"(i32 poison) to invoke void @"?foo@@YAXH@Z"(i32 0) fixes the crash.

@Dynamu7777
Copy link
Author

Here's a more sane example with the poison and undef mostly removed.

https://godbolt.org/z/sjdz3v9Ye

@Dynamu7777
Copy link
Author

Looks like it was a user issue. The problem here was that the type descriptor(first argument to catchpad) was null. Similarly, the second argument to _CxxThrowException, the EH type info, was null.

The undef and poison in my examples were just a result of me minimizing the faulty input by hand. In my actual unminized input, the global variables being passed to CxxThrowException and CatchPad were hidden behind calls to getter methods. I am very confident that this causes Clang to crash because it expects that the EHTypeInfo and the type descriptors are global variables(instead of LLVM instructions). That would explain the assertion failure happening on the cast.

@Dynamu7777
Copy link
Author

Closing since resolved. It may make sense to add an assertion into addTryBlockMapEntry, with an error message that clearly states what the issue is. From the documentation it wasn't obvious to me that both of the arguments must be global variables... although in retrospect it makes sense.

@EugeneZelenko EugeneZelenko added backend:X86 crash Prefer [crash-on-valid] or [crash-on-invalid] and removed clang Clang issues not falling into any other category labels Mar 22, 2024
@llvmbot
Copy link
Collaborator

llvmbot commented Mar 22, 2024

@llvm/issue-subscribers-backend-x86

Author: None (Dynamu7777)

Given the input https://godbolt.org/z/Txd39vETh, clang crashes in `addTryBlockMapEntry`.

Input:

; ModuleID = '/app/example.ll'
source_filename = "recursive_throw.cpp"
target datalayout = "e-m:w-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-pc-windows-msvc19.29.30140"

; Function Attrs: mustprogress uwtable
define dso_local void @"?foo@@<!-- -->YAXH@<!-- -->Z"(i32 %0) local_unnamed_addr #<!-- -->0 personality ptr @<!-- -->__CxxFrameHandler3 {
codeRepl:
  %1 = alloca ptr, align 8
  %2 = alloca i32, align 4
  invoke void @"?foo@@<!-- -->YAXH@<!-- -->Z"(i32 poison)
          to label %6 unwind label %3

3:                                                ; preds = %codeRepl
  %4 = catchswitch within none [label %codeRepl16] unwind to caller

codeRepl16:                                       ; preds = %3
  %5 = catchpad within %4 [ptr undef, i32 8, ptr %1]
  call void @<!-- -->_CxxThrowException(ptr nonnull %2, ptr nonnull undef) #<!-- -->1 [ "funclet"(token %5) ]
  unreachable

6:                                                ; preds = %codeRepl
  ret void
}

declare dso_local i32 @<!-- -->__CxxFrameHandler3(...)

declare dso_local void @<!-- -->_CxxThrowException(ptr, ptr) local_unnamed_addr

attributes #<!-- -->0 = { mustprogress uwtable "frame-pointer"="none" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #<!-- -->1 = { noreturn }

!llvm.linker.options = !{!0, !1, !1}
!llvm.module.flags = !{!2, !3, !4}
!llvm.ident = !{!5}

!0 = !{!"/FAILIFMISMATCH:\22_CRT_STDIO_ISO_WIDE_SPECIFIERS=0\22"}
!1 = !{!"/DEFAULTLIB:uuid.lib"}
!2 = !{i32 1, !"wchar_size", i32 2}
!3 = !{i32 8, !"PIC Level", i32 2}
!4 = !{i32 7, !"uwtable", i32 2}
!5 = !{!"clang version 15.0.1"}

Backtrace:

clang++: /root/llvm-project/llvm/include/llvm/Support/Casting.h:578: decltype(auto) llvm::cast(From*) [with To = llvm::GlobalVariable; From = llvm::Constant]: Assertion `isa&lt;To&gt;(Val) &amp;&amp; "cast&lt;Ty&gt;() argument of incompatible type!"' 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++ -g -o /app/output.s -masm=intel -S -x ir -fcolor-diagnostics -fno-crash-diagnostics -O3 -lmsvcrt -target x86_64-pc-windows-msvc -fcxx-exceptions &lt;source&gt;
1.	Code generation
2.	Running pass 'Function Pass Manager' on module '&lt;source&gt;'.
3.	Running pass 'X86 DAG-&gt;DAG Instruction Selection' on function '@"?foo@@<!-- -->YAXH@<!-- -->Z"'
 #<!-- -->0 0x000000000391d768 llvm::sys::PrintStackTrace(llvm::raw_ostream&amp;, int) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x391d768)
 #<!-- -->1 0x000000000391b44c llvm::sys::CleanupOnSignal(unsigned long) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x391b44c)
 #<!-- -->2 0x0000000003861d98 CrashRecoverySignalHandler(int) CrashRecoveryContext.cpp:0:0
 #<!-- -->3 0x00007fbe03042520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
 #<!-- -->4 0x00007fbe030969fc pthread_kill (/lib/x86_64-linux-gnu/libc.so.6+0x969fc)
 #<!-- -->5 0x00007fbe03042476 gsignal (/lib/x86_64-linux-gnu/libc.so.6+0x42476)
 #<!-- -->6 0x00007fbe030287f3 abort (/lib/x86_64-linux-gnu/libc.so.6+0x287f3)
 #<!-- -->7 0x00007fbe0302871b (/lib/x86_64-linux-gnu/libc.so.6+0x2871b)
 #<!-- -->8 0x00007fbe03039e96 (/lib/x86_64-linux-gnu/libc.so.6+0x39e96)
 #<!-- -->9 0x0000000002fd3203 addTryBlockMapEntry(llvm::WinEHFuncInfo&amp;, int, int, int, llvm::ArrayRef&lt;llvm::CatchPadInst const*&gt;) WinEHPrepare.cpp:0:0
#<!-- -->10 0x0000000002fd8749 calculateCXXStateNumbers(llvm::WinEHFuncInfo&amp;, llvm::Instruction const*, int) WinEHPrepare.cpp:0:0
#<!-- -->11 0x0000000002fd8cb7 llvm::calculateWinCXXEHStateNumbers(llvm::Function const*, llvm::WinEHFuncInfo&amp;) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x2fd8cb7)
#<!-- -->12 0x000000000497ea7e llvm::FunctionLoweringInfo::set(llvm::Function const&amp;, llvm::MachineFunction&amp;, llvm::SelectionDAG*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x497ea7e)
#<!-- -->13 0x0000000004a9aad4 llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&amp;) (.part.0) SelectionDAGISel.cpp:0:0
#<!-- -->14 0x00000000024b646c (anonymous namespace)::X86DAGToDAGISel::runOnMachineFunction(llvm::MachineFunction&amp;) X86ISelDAGToDAG.cpp:0:0
#<!-- -->15 0x0000000002cd2dc1 llvm::MachineFunctionPass::runOnFunction(llvm::Function&amp;) (.part.0) MachineFunctionPass.cpp:0:0
#<!-- -->16 0x00000000032b5323 llvm::FPPassManager::runOnFunction(llvm::Function&amp;) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x32b5323)
#<!-- -->17 0x00000000032b5561 llvm::FPPassManager::runOnModule(llvm::Module&amp;) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x32b5561)
#<!-- -->18 0x00000000032b5dc5 llvm::legacy::PassManagerImpl::run(llvm::Module&amp;) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x32b5dc5)
#<!-- -->19 0x0000000003b9c73c (anonymous namespace)::EmitAssemblyHelper::EmitAssembly(clang::BackendAction, std::unique_ptr&lt;llvm::raw_pwrite_stream, std::default_delete&lt;llvm::raw_pwrite_stream&gt;&gt;, clang::BackendConsumer*) BackendUtil.cpp:0:0
#<!-- -->20 0x0000000003b9cace clang::EmitBackendOutput(clang::DiagnosticsEngine&amp;, clang::HeaderSearchOptions const&amp;, clang::CodeGenOptions const&amp;, clang::TargetOptions const&amp;, clang::LangOptions const&amp;, llvm::StringRef, llvm::Module*, clang::BackendAction, llvm::IntrusiveRefCntPtr&lt;llvm::vfs::FileSystem&gt;, std::unique_ptr&lt;llvm::raw_pwrite_stream, std::default_delete&lt;llvm::raw_pwrite_stream&gt;&gt;, clang::BackendConsumer*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x3b9cace)
#<!-- -->21 0x00000000041b9fd5 clang::CodeGenAction::ExecuteAction() (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x41b9fd5)
#<!-- -->22 0x00000000044390a9 clang::FrontendAction::Execute() (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x44390a9)
#<!-- -->23 0x00000000043c26de clang::CompilerInstance::ExecuteAction(clang::FrontendAction&amp;) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x43c26de)
#<!-- -->24 0x000000000451c0ce clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x451c0ce)
#<!-- -->25 0x0000000000c28ecc cc1_main(llvm::ArrayRef&lt;char const*&gt;, char const*, void*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0xc28ecc)
#<!-- -->26 0x0000000000c2215a ExecuteCC1Tool(llvm::SmallVectorImpl&lt;char const*&gt;&amp;, llvm::ToolContext const&amp;) driver.cpp:0:0
#<!-- -->27 0x00000000041fcdb9 void llvm::function_ref&lt;void ()&gt;::callback_fn&lt;clang::driver::CC1Command::Execute(llvm::ArrayRef&lt;std::optional&lt;llvm::StringRef&gt;&gt;, std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt;&gt;*, bool*) const::'lambda'()&gt;(long) Job.cpp:0:0
#<!-- -->28 0x0000000003862244 llvm::CrashRecoveryContext::RunSafely(llvm::function_ref&lt;void ()&gt;) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x3862244)
#<!-- -->29 0x00000000041fd3af clang::driver::CC1Command::Execute(llvm::ArrayRef&lt;std::optional&lt;llvm::StringRef&gt;&gt;, std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt;&gt;*, bool*) const (.part.0) Job.cpp:0:0
#<!-- -->30 0x00000000041c3745 clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&amp;, clang::driver::Command const*&amp;, bool) const (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x41c3745)
#<!-- -->31 0x00000000041c41ad clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&amp;, llvm::SmallVectorImpl&lt;std::pair&lt;int, clang::driver::Command const*&gt;&gt;&amp;, bool) const (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x41c41ad)
#<!-- -->32 0x00000000041cbf15 clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&amp;, llvm::SmallVectorImpl&lt;std::pair&lt;int, clang::driver::Command const*&gt;&gt;&amp;) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x41cbf15)
#<!-- -->33 0x0000000000c26365 clang_main(int, char**, llvm::ToolContext const&amp;) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0xc26365)
#<!-- -->34 0x0000000000b1c824 main (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0xb1c824)
#<!-- -->35 0x00007fbe03029d90 (/lib/x86_64-linux-gnu/libc.so.6+0x29d90)
#<!-- -->36 0x00007fbe03029e40 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29e40)
#<!-- -->37 0x0000000000c21c4e _start (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0xc21c4e)
clang++: error: clang frontend command failed with exit code 134 (use -v to see invocation)
Compiler returned: 134

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backend:X86 crash Prefer [crash-on-valid] or [crash-on-invalid]
Projects
None yet
Development

No branches or pull requests

3 participants