<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/74069>74069</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            "Eagerly instantiate used constexpr function upon definition" broke compiling Qt
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            clang:frontend,
            regression
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          mstorsjo
      </td>
    </tr>
</table>

<pre>
    Since 030047c432cac133738be68fa0974f70e69dd58d, Qt (tested with 6.6) fails to compile, with errors like this:
```
In file included from /home/martin/code/qt/src-6.6/src/corelib/compat/removed_api.cpp:12:
In file included from include/QtCore/qmetatype.h:1:
include/QtCore/../../../src-6.6/src/corelib/kernel/qmetatype.h:2669:1: error: explicit specialization of 'QMetaTypeId<QtMetaTypePrivate::QPairVariantInterfaceImpl>' after instantiation
 2669 | QT_DECL_METATYPE_EXTERN_TAGGED(QtMetaTypePrivate::QPairVariantInterfaceImpl,
 | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2670 |                                QPairVariantInterfaceImpl, Q_CORE_EXPORT)
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/QtCore/../../../src-6.6/src/corelib/kernel/qmetatype.h:1361:5: note: expanded from macro 'QT_DECL_METATYPE_EXTERN_TAGGED'
 1361 | Q_DECLARE_METATYPE(TYPE) \
      | ^~~~~~~~~~~~~~~~~~~~~~~~
include/QtCore/../../../src-6.6/src/corelib/kernel/qmetatype.h:1504:34: note: expanded from macro 'Q_DECLARE_METATYPE'
 1504 | #define Q_DECLARE_METATYPE(TYPE) Q_DECLARE_METATYPE_IMPL(TYPE)
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/QtCore/../../../src-6.6/src/corelib/kernel/qmetatype.h:1508:12: note: expanded from macro 'Q_DECLARE_METATYPE_IMPL'
 1508 |     struct QMetaTypeId< TYPE >                                          \
      | ^~~~~~~~~~~~~~~~~~~
include/QtCore/../../../src-6.6/src/corelib/kernel/qmetatype.h:1220:22: note: implicit instantiation first required here
 1220 |     enum { Defined = QMetaTypeId<T>::Defined, IsBuiltIn=false };
      | ^
1 error generated.
```

Before this commit, this file built just fine. This can be reproduced with this attached preprocessed file, 
[qt-preproc.zip](https://github.com/llvm/llvm-project/files/13526330/qt-preproc.zip), compiled as `clang -target armv7-w64-mingw32 -c qt-preproc.cpp`.

CC @cor3ntin 



</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJy0Vktv2zgQ_jX0ZWBBJvU8-OD4URhot3HWWOyeDIoa2WwlUiWptOlhf_uCtOIkbfoIsCEMSTRHM_N9M5oZbq08KsQ5Sa9IuprwwZ20mXfWaWM_6Eml67v5n1IJhJjFcZKLhFHBxYyxnBUVZkXD4zJPmjzGrKzrtKgJXcLOAaGFQ-uwhs_SnSCLMkJLaLhsLTgNQne9bNELh3M0RhsLrfyI4E7SErYg8YrEC5LF4y9stwoa2SJIJdqhxhoaozsgdHPSHRK66bhxUhG6Ebr2-0-O0I01Yhoc8E_hzGArq_DU9dyLGOz0LdYH3stI9D1hixm9-PC80XFH6GbnltoEax067u56jE5ew0XBM6JR9OTyYxc_olHYfqecZlk52jiTFx6-9K0U0oHtUUjeyq_cSa1AN0BovnuHju_vetzWhC137n57beQtd-i9ZYvdNZfmL24kV26rHJqGC9x2fUvYmtAceOPQgFTWceVkUH_GCN4jIPkSdvvDar18e3i33i_2_1yvD-u_9-ubPw77xZs36xWhxYtN0-Vow6sn6frf_29dnM_joP0X62c-wu6wfH_j4V6_v9kTWo66w_K6X-jUK2TNjGU-Y1KfLEoH4n3ScHXJ6o4Lo0O2_CKK-YjOqzyHPcgvbtaXVwgtzrcSSLr8lo0fx_H14KdxQtiCJb-D_xk4F8xpnJwxUFZjIxX-HP33h4ftu-u3DxK_z82rE1Tc176XEzSCesRScfmmrDODcPC0BoF_Cwhb_-qze1i_m0ivRxGlsa-_TyiS3Vh4nxRGaKSxDgx-GqTBGk5o8J4bSh_qDaqhA5JfwSrkUg2Erb5hau_Lb6iSo4yvN1t7NcjWbRVhq4a3FoHkK8KuniHo_Nfs3CrgiAoNd1hHzzbZ8_UKG23O3di36046bzNsQzesvG34MFgH3qMI9kGSK6gQDPZG14O47__hNe4cFyesoQ_HAq31WTXOAaPt9OqTm44C0VfZk9S3jJNzfRgK6IbQzVG601BFQneEbtr29v427Y3-gMI3dK_VErqZsZRmjMVhFniil5be6jiI1MAtkCwWLVdHmDpujuiAm-42n37Okmkn1fEzozAV8EiNnxSyOHrM2nIJJImFNkw5qeDx0fk6qeesLlnJJzif5fEsYZTl5eQ0x0YkjJdVmtKqqiveYEZjjlmWsLyqqnwi5zSmbEbj2YzG2ayMmpRSTEtRYMELwQqSxNhx2Uaei0ib40RaO-A8T-KsnLS8wtaGSY_SgJOwRWO0cqhqQqnvspQaPBq01rd1Sv1IaOaB2Wo4WpLErbTOPuh30rU4J5Su-RFNe_co_xEGH12hlXX4pTfQDEqEr2LotYJQNqU724HK6I84xkKqI-zcZDDt_MVRD3h92APk_wIAAP__HVRlgA">