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

    <tr>
        <th>Summary</th>
        <td>
            [flang] MSVC debug information format selection
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            flang
      </td>
    </tr>

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

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

<pre>
    For targets such as `x86_64-pc-windows-msvc`, LLVM/Flang generates
object files for the MSVC ABI and uses MSVC-compatible tooling.

MSVC tooling supports multiple different ways of storing full symbolic
debugging information:

* Embedded: Stored directly in object files (`.obj`)
 MSVC flag: cl -Z7
* ProgramDatabase: Stored in a separate program database file (`.pdb`).
  A `mspdbsrv` service coordinates multiple compiler processes writing to
  the same compiler-generated `.pdb` file.
  MSVC flag: cl -Zi
* EditAndContinue: Stored in a separate program database file (`.pdb`)
  that also supports Visual Studio's edit-and-continue debugging features.
  MSVC flag: cl -ZI

LLVM/**Clang** only supports the "embedded" mode, activated by `-g -Xclang -gcodeview`.
It does not support the other two modes.

LLVM/**Flang** should decide which modes it intends to support, to what level, and with what flags.

Cc: @DavidTruby

</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJykVM2O4zYTfBr60pChoSz_HHTwznwGBtgFPmCCQZBLwJ-WxA1FCuyWHb99QMleexEkl1wkgmxWVVc3WxG5LiA2ov4i6reVmriPqdFJ2T9c6FY62mtziglYpQ6ZgCbTgyIQ2_LP_fb37aYYTXFxwcYLFQOdjdiWQr7C16-f34Q8nbwKHXQYMClGEuWbKI9Rf0fD0DqPBG0G7xG-fXy-wvHLO6hgYSKkeacwcRgVO-0ROEbvQrdeQJbvfOt2ADSNY0xMMEye3egRrGtbTBgYLupKEFsgjinHtpP3QNdBR-_MgmVRT12XD11oYxoUuxhEdXzmE_II_xs0WotWVEf44JjQgnUJDfsruAA_ZSfkXmzLddTfZ18OC8qSbOtVlzGMh-K33QP__yl2SQ1vipVWhE80LoACwlFlM2Fc4sDeAmfKO-No9cJ4swvgmGs20Gg1pbPYlkCYzs4gmBiTdSHX5-Fc9t15TJnFIOV6XJLj7A7HO2SuG6nhEV3cK23hIWLW9UPG31N3T9Zax8dgX2NgF6b_mvpDpmJQnuKjQz4dTcrDB0_WRSF3BGgdFyrYwtzI4dEPLSqeEtK_JPH-3CW35hcyJ_Wan8CyhBj89SEi2yekxHs_SQlDtJifjzLszrOP-pqtLDoofjXzYyo6Ey2eHV5ysgvhO4ONSBAi3-Fn9Mg9JuBLnIFp_Y8iT08iqY-Tt2DROItw6Z3pl-vgGFxgDJaAf5iZ5XKESzbZ4xn9rD9YuDjul-3s1M_kryY7Jzblmzo7-0ua9HU5WNmmsofqoFbYvOzKl121e9lXq75pD5uy3ajSalO1qt7bqm5LvdmrcrfbHnaHlWtkKasXWdZludnKat1arfSh3rdmU9dlvRWbEgfl_Nr787COqVs5ogmb3aY61CuvNHqa56CU7WKHzCMxNTm-0FNHYlN6R0wPBHbs5-G53KjfltaYW-d5jMCyAkKPJm-spuSbnnmkPGFyGU6d437SaxMHIU-Z4fYrxhTzSBHyNAsmIU-z5r8CAAD__wZX2Mo">