<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">