is very like mine.
wasm-ld: /b/s/w/ir/cache/builder/emscripten-releases/llvm-project/llvm/include/llvm/ADT/Optional.h:177: const T &llvm::optional_detail::OptionalStorage<unsigned int, true>::getValue() const & [T = unsigned int]: Assertion `hasVal' failed.
#0 0x00007f282876e164 PrintStackTraceSignalHandler(void*) (/root/emsdk/upstream/bin/../lib/libLLVM-10svn.so+0x6ca164)
#1 0x00007f282876be1e llvm::sys::RunSignalHandlers() (/root/emsdk/upstream/bin/../lib/libLLVM-10svn.so+0x6c7e1e)
#2 0x00007f282876e418 SignalHandler(int) (/root/emsdk/upstream/bin/../lib/libLLVM-10svn.so+0x6ca418)
#3 0x00007f282b5985d0 __restore_rt (/lib64/libpthread.so.0+0xf5d0)
#4 0x00007f28274742c7 raise (/lib64/libc.so.6+0x362c7)
#5 0x00007f28274759b8 abort (/lib64/libc.so.6+0x379b8)
#6 0x00007f282746d0e6 __assert_fail_base (/lib64/libc.so.6+0x2f0e6)
#7 0x00007f282746d192 (/lib64/libc.so.6+0x2f192)
#8 0x00000000006a8f22 (/root/emsdk/upstream/bin/wasm-ld+0x6a8f22)
#9 0x00000000006916b7 lld::wasm::InputChunk::writeTo(unsigned char*) const (/root/emsdk/upstream/bin/wasm-ld+0x6916b7)
#10 0x00000000006c0b3d lld::wasm::CustomSection::writeTo(unsigned char*) (/root/emsdk/upstream/bin/wasm-ld+0x6c0b3d)
#11 0x00000000006bc80d std::_Function_handler<void (), void llvm::parallel::detail::parallel_for_each<__gnu_cxx::__normal_iterator<lld::wasm::OutputSection**, std::vector<lld::wasm::OutputSection*, std::allocator<lld::wasm::OutputSection*> > >, (anonymous namespace)::Writer::writeSections()::$_0>(__gnu_cxx::__normal_iterator<lld::wasm::OutputSection**, std::vector<lld::wasm::OutputSection*, std::allocator<lld::wasm::OutputSection*> > >, __gnu_cxx::__normal_iterator<lld::wasm::OutputSection**, std::vector<lld::wasm::OutputSection*, std::allocator<lld::wasm::OutputSection*> > >, (anonymous namespace)::Writer::writeSections()::$_0)::'lambda'()>::_M_invoke(std::_Any_data const&) (/root/emsdk/upstream/bin/wasm-ld+0x6bc80d)
#12 0x00007f2828703c85 std::_Function_handler<void (), llvm::parallel::detail::TaskGroup::spawn(std::function<void ()>)::$_0>::_M_invoke(std::_Any_data const&) (/root/emsdk/upstream/bin/../lib/libLLVM-10svn.so+0x65fc85)
#13 0x00007f2828703867 llvm::parallel::detail::(anonymous namespace)::ThreadPoolExecutor::work() (/root/emsdk/upstream/bin/../lib/libLLVM-10svn.so+0x65f867)
#14 0x00007f28287036f7 std::thread::_Impl<std::_Bind_simple<llvm::parallel::detail::(anonymous namespace)::ThreadPoolExecutor::ThreadPoolExecutor(unsigned int)::'lambda'() ()> >::_M_run() (/root/emsdk/upstream/bin/../lib/libLLVM-10svn.so+0x65f6f7)
#15 0x00007f2827ddbad3 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count() /root/gcc-6.1.0/build/x86_64-pc-linux-gnu/libstdc++-v3/include/bits/shared_ptr_base.h:661:0
#16 0x00007f2827ddbad3 std::__shared_ptr<std::thread::_Impl_base, (__gnu_cxx::_Lock_policy)2>::~__shared_ptr() /root/gcc-6.1.0/build/x86_64-pc-linux-gnu/libstdc++-v3/include/bits/shared_ptr_base.h:928:0
#17 0x00007f2827ddbad3 std::shared_ptr<std::thread::_Impl_base>::~shared_ptr() /root/gcc-6.1.0/build/x86_64-pc-linux-gnu/libstdc++-v3/include/bits/shared_ptr.h:93:0
#18 0x00007f2827ddbad3 execute_native_thread_routine_compat /root/gcc-6.1.0/build/x86_64-pc-linux-gnu/libstdc++-v3/src/c++11/../../../../../libstdc++-v3/src/c++11/thread.cc:102:0
#19 0x00007f282b590dd5 start_thread (/lib64/libpthread.so.0+0x7dd5)
#20 0x00007f282753c02d clone (/lib64/libc.so.6+0xfe02d)
My Question is: Is the gcc code in my backstrace rational? Is that llvm bug?