<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/64101>64101</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
CalcSpillWeights.cpp fails to build on ` error: constructor required before non-static data member for 'llvm::StackMaps::FunctionInfo::StackSize' has been parsed`
</td>
</tr>
<tr>
<th>Labels</th>
<td>
llvm:codegen,
build-problem
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
sylvestre
</td>
</tr>
</table>
<pre>
On linux Ubuntu bionic with gcc 7:
```
In file included from /usr/include/c++/7/bits/move.h:54:0,
from /usr/include/c++/7/bits/stl_pair.h:59,
from /usr/include/c++/7/utility:70,
from /usr/include/c++/7/tuple:38,
from /build/source/llvm/include/llvm/ADT/DenseMapInfo.h:20,
from /build/source/llvm/include/llvm/ADT/DenseMap.h:17,
from /build/source/llvm/include/llvm/CodeGen/SlotIndexes.h:21,
from /build/source/llvm/include/llvm/CodeGen/CalcSpillWeights.h:12,
from /build/source/llvm/lib/CodeGen/CalcSpillWeights.cpp:9:
/usr/include/c++/7/type_traits: In substitution of 'template<class _Tp, class> static std::true_type std::__do_is_default_constructible_impl::__test(int) [with _Tp = llvm::StackMaps::FunctionInfo; <template-parameter-1-2> = <missing>]':
/usr/include/c++/7/type_traits:889:35: required from 'struct std::__is_default_constructible_impl<llvm::StackMaps::FunctionInfo>'
/usr/include/c++/7/type_traits:143:12: required from 'struct std::__and_<std::__not_<std::is_void<llvm::StackMaps::FunctionInfo> >, std::__is_default_constructible_impl<llvm::StackMaps::FunctionInfo> >'
/usr/include/c++/7/type_traits:893:12: required from 'struct std::__is_default_constructible_atom<llvm::StackMaps::FunctionInfo>'
/usr/include/c++/7/type_traits:914:12: required from 'struct std::__is_default_constructible_safe<llvm::StackMaps::FunctionInfo, false>'
/usr/include/c++/7/type_traits:920:12: required from 'struct std::is_default_constructible<llvm::StackMaps::FunctionInfo>'
/usr/include/c++/7/type_traits:143:12: [ skipping 16 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/include/c++/7/type_traits:1147:12: required from 'struct std::is_copy_constructible<llvm::detail::copy_construction_triviality_helper<std::pair<const llvm::MCSymbol*, llvm::StackMaps::FunctionInfo> > >'
/build/source/llvm/include/llvm/Support/type_traits.h:97:8: required from 'struct llvm::is_trivially_copy_constructible<std::pair<const llvm::MCSymbol*, llvm::StackMaps::FunctionInfo> >'
/build/source/llvm/include/llvm/ADT/SmallVector.h:329:74: required from 'class llvm::SmallVectorImpl<std::pair<const llvm::MCSymbol*, llvm::StackMaps::FunctionInfo> >'
/build/source/llvm/include/llvm/ADT/SmallVector.h:1199:22: required from 'class llvm::SmallVector<std::pair<const llvm::MCSymbol*, llvm::StackMaps::FunctionInfo>, 0>'
/build/source/llvm/include/llvm/ADT/MapVector.h:38:14: required from 'class llvm::MapVector<const llvm::MCSymbol*, llvm::StackMaps::FunctionInfo>'
/build/source/llvm/include/llvm/CodeGen/StackMaps.h:367:13: required from here
/usr/include/c++/7/type_traits:878:48: error: constructor required before non-static data member for 'llvm::StackMaps::FunctionInfo::StackSize' has been parsed
template<typename _Tp, typename = decltype(_Tp())>
^~~~~
/usr/include/c++/7/type_traits:878:48: error: constructor required before non-static data member for 'llvm::StackMaps::FunctionInfo::RecordCount' has been parsed
cc1plus: warning: unrecognized command line option '-Wno-unused-command-line-argument'
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzUWF1v2zYU_TX0C-FAIi1LevCDIsdDHoIBS7c-ChR5bXOlSI0fad2H_PaBkhO7WZM6cVusgRBA9NXROYe6HxJzTm40wAJllyhbTljwW2MXbqfuwHkLk9aI3eJ3jZXU4RP-sw3aB9xKoyXHH6Xf4g3nOEe0QskSJQ__58n-GE6vNV5LBVhqroIAgdfWdBiRVXAWkdV-GZEVR-RyOFY5IqtWeofIqjN3cLFFtMpmiFYJIvWIip_-vQrVedX0TNoRuTwXNXippN8hWuVnM_ShV4BoRYtvI7VBKhHlmGB5hFLqrvsCe79QLd8hslqCdnDD-mu9NoNycsT2TMwBL83PwKuNgN9AI7K6VcZfawGfwI000-8CWzPFb3up1HuQm60fsVNyOraS7cuAvO8RrcpDPnxzs3c9NN6y-FTSCl9r7ELrvPTBS6OxWWNEcg9dr5gHRGuumHO4edcjUuPhBNEr7DzzkmPnRbwzrbwN0ETow1LTCNNI1whYs6B8w4123gbuZaugkV2vHuI8OI9IIbVHpMQouxzyvHnXY0SXeHBiiLz1jH-4Yb0bT1dB88g5PluIXmJE6wfe055Z1oEHO02nJBKOSIjWnXRO6g2iVyhbIpK_1beiiJbTLFqIsYV_grSHOpOPQo-9-IYR9YkqryLntxBOZ3R89Gh1Cl2mRYNofbSijf9iRbrmzkjxCup4oF__CFfwGc4U5cGZ87aSedP9hK0s09lrtvJZuo6t4WS6pMZrphycw5skrzH6Od4_OVlQdondB9n3Um9wOsdSO8-0l2wol9xoD59ig69xcICn68cS1DL-wVvGYapkJz2iywR7g4V0rFWAY_15E7d0lr_SRm763QseCvBM7ovxk1CjG2_lnWRx1mi2oHqwx0UgDjSxR8QLjgr1TX2761qjEKmiMa_J4qeZfHLTvQ19b6z_0q-h35bRr-Jluw4UpXuQrHZfd-4Hqn-T8nEquu2YUn8B92YcMSmJHSqfPaN7bOtH3A6XX4-199eQmaZl1EmeS4cXdP44jTE2OU_nDeuPN7MYqtKJGh-v_Z6K3qDkaLx-AB_VzIcKRv_bwLZg4W1NPI8OzYYsB2uj9Ao_Jq6xh_u0sDYWsDZ6uh9iBfMMd9C1YPHa2OjoibY8BtzKz4BIjrfM4RZA455ZB2I_5B9N05G1Zh08DNSP53E-FcBVXECkGH4uECnjQa_2QCi7ur-_v__FHPoDuLGiNiHO9894xHnaqzC8kXxkVg8jeoWDtsDNRsvPIDA3Xce0wEpqwKYf2i8i-fS9NtOggwMx3YdMY8iU2U3oYLjnk48EE7GgoqQlm8AinZcJTWhaFpPtIoW0pdksLxI-z8t2TmZFO2vLUoAoRFskE7kgCaFJTrJ0TsusuGj5WrA5zeekzZI0TdAsgY5JdRH9uTB2M5HOBVjMZ2mSThRrQbnh0wchewe5EbCJSTK8FRIyZNe0t6ZV0MXVbDmxixg8bcPGoVmipPPucAMvvYLF114M8ZpJ5eLQMYDiaNg8-T_lxzyZBKsWW-9HALJCZLWRfhvaC266o_fgqL-35m_gscUPpjpEVoOv_wYAAP__doPGrg">