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

    <tr>
        <th>Summary</th>
        <td>
            __FILE__ is converted to backward slashes on Windows when -fmacro-prefix-map is used
        </td>
    </tr>

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

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

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

<pre>
    On Windows, the value of __FILE__ uses by default forward slashes as separator for the path components, which is a good thing.

However, when -fmacro-prefix-map is used, the value of __FILE__  switches to backward slashes. I assume this is unintended, e.g. a bug.

How to reproduce:

1. Install LLVM-16.0.0-win64.exe
2. Create the file "sample.cpp" containing a single line:
```
C:\Users\WDAGUtilityAccount\Desktop>type sample.cpp
__FILE__
```
(WDAGUtilityAccount is the default user of the Windows Sandbox I use)
3. Simple use of clang++ using backward slashes as input path:
```
clang++ -E C:\Users\WDAGUtilityAccount\Desktop\sample.cpp

"C:\\Users\\WDAGUtilityAccount\\Desktop\\sample.cpp"
```
3. Simple use of clang++ using forward slashes as input path:
```
clang++ -E C:/Users/WDAGUtilityAccount/Desktop/sample.cpp

"C:/Users/WDAGUtilityAccount/Desktop/sample.cpp"
```
So far, so good. Now comes the weird part:
4. Use of clang++ using forward slashes as input path and -fmacro-prefix-map:
```
clang++ -E -fmacro-prefix-map=C:/Users/WDAGUtilityAccount/=HOME/ C:/Users/WDAGUtilityAccount/Desktop/sample.cpp
"HOME\\Desktop\\sample.cpp"
```
__FILE__ is converted to backward slashes for now reason.




</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyklU1v4zYQhn8NdRlYkKiP2AcdEjvuBsh2D0G6x4AiRxIbmlT5ESX_vqAcp07jtKkLGDIkkg_feWc4ZM7JXiM2pLoi1SZhwQ_GNoZb80dA7zFpjXhpfmj4KbUwkyN0DX5AeGIqIJgOHh62N7fXDw8QHDpoX0Bgx4Ly0Bk7MSvAKeYGdMAcOByZZd7YODhjRuYH4GY3Go3az_RpkHwA6YBBb4wAP0jdpyTbkOxy__xmJnxCu5-MGhbdjnFrFqPFTj4vdmyMy4ND8blacJP0POryBlrGH4-1pnADzLmww7i7m2laao9a7JmY9ikwaMMHYRFncbRGBI6kuDwezlO40c4zpeD29rfvi7xOszRbTFLXZYrPuJ9FU1hbZB5n5Z1UCIRSx3ajwpSPI6EUuNGeSS11Dwyc1L1CUFIfbVhnr7_5dR0HqvW9Q-tItf65ufzl3ksl_csl5yZoT6r1Bt2jNyMprv3LiHC04Yw4OHeST-jyIzPaFkM4FERwaGMO4rfXaoI7pkVrnuEmjhK62uOKFO5k3D5-jUu4Yron9IrQKwgx3g8pi-Ul9Rj8XFKf-XDMWVzDf7GlWv_dkUPo9BVzRPoM9o73HknpScVfsOLEQTvPCbrd66fbE-Lp9qCcbv_ZiXMwn0R_Z6Bj80F3Zu4GKfxqptgwcF9bE0orYGTWvwVapnB_llXAtDjRS77o4KmFm6_4QYrNtx_frwnd_t8sUDqDzimzt74oXWwuT2g9ilOtce7c2kxgkTmj37W_42cimkKsihVLsMnrZVZVeUHLZGhysVx2nBclcsq6alViVrSrNl-VNKuqZZ3Ihma0yMqsyFflsizTi7oo6wtBRdkuL1hdkjLDHZMqVepplxrbJ9K5gE2dr_I6UaxF5Q73mW3ipEUbekfKTEnn3V_LvPQKm6-Hbt5uwX-7d5JgVTN4P7p9Rgnd9tIPoU252RG6jRJe_xajNb8jj6mdw4iJnyP5MwAA__83VmNK">