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

    <tr>
        <th>Summary</th>
        <td>
            Debug build of FortranSemantics.lib too large
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            platform:windows,
            flang,
            flang:semantics
      </td>
    </tr>

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

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

<pre>
    It is not possible anymore to compile a debug build Flang using MSVC:
```
> cmake --build . --target FortranSemantics
[...]
C:\Users\meinersbur\build\llvm-project\debug_vs17\Debug\lib\FortranSemantics.lib : fatal error LNK1248: image size (1062E7AEC) exceeds maximum allowable size (FFFFFFFF) [C:\Users\meinersbur\build\llvm-project\debug_vs17\tools\flang\lib\Semantics\FortranSemantics.vcxproj]
```

So the FortranSemantics.lib would be 4.2GB which exceeds the maximum of 4GB. For comparison:
 * FortranLower.lib (3.8 GB, + .pdb 331MB)
 * FortranEvaluate.lib (3.7GB, + .pdb 113MB)
 * Final executable size: flang.exe (393MB, + .pdb 3.6GB) 
 * Largest non-Flang .lib: clangSema.lib (712MB)
 * debug+asserts build using gcc: libFortranSemantics.a (6.47GB, -fno-split-dwarf: 7.1GB)
 * Largest .a in debug+asserts build using gcc: libFortranLower.a (8.8GB, -fno-split-dwarf: 8.4GB (?))

Same error reported elsewhere on GitHub:
 * https://github.com/microsoft/vcpkg/issues/42515

This make it impossible to debug Flang under Windows. Maybe we can split up the library into two parts, e.g. split off the `check-*.cpp` files?
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJykVc1u8zYQfBr6sjAhUaItHXSQldgtmvSS_hwLUlrJbChRICk76dMXlGzHyfe1QFHDgEFid3Z3djgWzqluQCwI3xH-sBKTPxpbPKMa0Do52ZU0zXvxowflYDAeRuOckhpBDO-9sQjeQG36UYUraFBOHchJ6Qb2WgwdTE4NHTy__FaRpCRRSTbR5RuVJHmEuhevCOv1kkNhvfbCduhhb6y3YnjBXgxe1S7E8x2llPAHEpUzHK9-dWgd4VV_a5jwasYivNL61K9Ha_7E2hNezc39cXLxlvDqIRxCjJKEV1-LUa0kkKSEVnihAa01Fp5-_ilmaRauVS86BKf-QiAsi6MNe9yWjxVhOeBbjdg46MWb6qcehNbmLAJj1_D95ROiCd_930m8MToktoHv20QfvH1nulP9FsAWJj9tJCpfDPgjfkP_zMjZTLoBiZBSdtjB-ajq423gkHUd2rSQHnY0oMzqEFY5MywKAMLKK_yTOaNdyGZZQjM47AirgLAd0LGRkCTx846w_Eva40noSXj8yNx-SYzj5HOiGsIe37Ce_G0Z84IDaxTf5s0k-Zx13wDdBOQcrkBPQZ3Ow2CG9aLw0ERAqsMp8HXtahuzTz3MWyNsJ5xD693lmSwPpKvrgKGV_IZ4EbA2NL2MuG4Hs3ajVn7dnIVtQ9qWxof7StcmqQA1_Le6y0bmmhnN_rlkRtPDLkSRJAh5KR7kI3q8vBeLo7EeG0Dt8HxEi2AGOCj_wyTvpHD0fnThzPaE7Tvlj5OktekJ2_eqtsaZ1hO2P9Xja0fYXjk3oSNsnzIe86XoL0cVHtwrgvKg-ptHeXNxpIsXDQ1a-F0NjTk7Cs_iXSKcEWoxwDweTOMsY62kFfYd1OAN-LOBUVjvAhVIO3qJNW07B5NNVB-xfl0TVtJ6HMkmglZpdCTZr5oiafIkFyss4m2SbfJtliWrY8FlJkSdSC6FjBlH2fCt2NR5HqUNi1m2UgWLGI9YlMZ5kkUJbbNNJLM8YzlPI7ERJI2wF0rT4A3U2G41M1PEjG_TfKWFRO1mW2ds1MK3xvYkKc_L9IQxwirC2OIan09J6W7uwVj4W7DF7EBy6hxJI62cdx91vfIai4c76zft9_3DGwM6aHM1WV38y-ID9uXnZnt3q7_MeCrY3wEAAP__j10knA">