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

    <tr>
        <th>Summary</th>
        <td>
            [clang++] warning: stack frame size (11850326592728) exceeds limit (4294967295) in 'main'
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            clang
      </td>
    </tr>

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

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

<pre>
    Compiling this code with clang++-16 and 17:
```
#include <cstddef>
#include <cstdint>
#include <iostream>

template <typename T, char (T::*M)[0]>
struct offset_of {
    constexpr operator size_t() const {
        return (std::uintptr_t)&(static_cast<T*>(nullptr)->*M);
 }
};
template <typename T, char (T::*M)[0]>
struct B {
    char aa[10];
    static const int off = offset_of<T, M>();
};

struct A {
    char a;
    char _mark[0];
    B<A, &A::_mark> b;
};

int main()
{
    A a;
    std::cout << "size " << sizeof(A) << " off " << a.b.off << std::endl;
    return 0;
}
```

gives this:
```
warning: stack frame size (11812651990584) exceeds limit (4294967295) in 'main' [-Wframe-larger-than]
   23 | int main()
      |     ^
1 warning generated.
```

That looks wrong, and gcc-g++ doesn't say
anything of that kind when compiling this.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJysVE2P4ygQ_TWVC0qEi_iDgw9OMn2bW0t7bGEgNts2WICnp_fXr7Dd3cmoe1YrTRTZMq-oeq8ongjBdFbrGvIT5JedmGPvfB1imHatU6_12Y2TGYztSOxNINIpTV5M7IkchO0AT4CnfVYQYRXJSmAN0AvQBgq6_ddPZMbKYVaaADvLEJXSV2DfvkKNjV-gxoXotRg_4OUZ9TgNIi4h8XXSVoyaPAKeieyFJ4DVY-LGGsDmOyCH_EQhv7xnCdHPMhJ3vQYdn9yVQHlaEUIIkc6GqH9OnrhJexGdJ8H8o58iYAXIV_x-S_p5HWdvU_EQ1Vp-NjZO0aedHLBYIBGNfJIiRGDnR8AmkcLKzsMwRQ_I98vCSpu9lYDysukvL--rf6gLp1_Up71CQH7K1ugbbGW_NcDYpYME2OWjk6uoM_m-yroVcUv9jkDzGYG7usvS0yj887uGG_QE7NykooBFsypeY9k30v6mfBIwCmM3nlvUTeLmFxrv5yrdHFPXgaWimKYjvd-W0re7AlZNGpePuLVdH3Hi0B7WDq7b3tJrq4a7wtto0Tsxn9685dmZHzosN_irG_oivDW2A9akM5XP5OrT8GxCqiyrMizyjHOaV8ckQv-UWqtABjOamEKOyI-8KJHnCTZp7su1mSWB_LT_a8m4H4TvtN_HXth0bG-KkBEoz-SzE1gvU0KXd74Na0Y2zqTTNt1KrQ6_acFjLyIZnHsO5MW7ZF3nxbQ6KfebjxHldEh8Iwnidd0m7GvsUxF3JTGleDZWkZdeWyLvrPGwUzVTnHGx03VW0hIpzyu662ukhTgiPWal4Jy3WcuURtXKVpWKi7LcmRopHinSglY5o_SQVYKjallblPLK-BGOVI_CDIdh-DEenO92JoRZ1xWtaLEbRKuHsDg44mbLmMzc1yl-385dgCMdTIjhI0M0cVhs_8bIIb-Q_x6EnDIsco7lan7_ZxB2sx_qPsZpmUN8AHzoTOzn9iDdCPiQ2G2v_eTd31pGwIdFbAB8WPT-GwAA__8NvNxb">