<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">