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

    <tr>
        <th>Summary</th>
        <td>
            Absolute file name for source file emitted with `-fopenmp`
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

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

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

<pre>
    when `-fopenmp` is added to compiler commandline then, it adds a section which includes absolute path to sourcefile as specified on cmdline. There seems to be no way to eliminate this even with `-fmacro-prefix-map/-fdebug-prefix-map` and friends. 

example

```c++
#include <iostream>
#include <sstream>
#include <omp.h>

int main() {
#pragma omp parallel
{
    std::stringstream ss;
    ss << "hello world from " << omp_get_thread_num() << '\n';
    std::cout << ss.str();
}
}
```

put this in `/tmp` and compile 

```
clang++ -g -S -fverbose-asm /tmp/a.cpp -fdebug-prefix-map=/tmp/= -fmacro-prefix-map=/tmp= -o a.s.ok
clang++ -g -S -fverbose-asm /tmp/a.cpp -fdebug-prefix-map=/tmp/= -fmacro-prefix-map=/tmp= -fopenmp -o a.s.bad
```

diff the asm outputs and following is interesting when `-fopenmp` is added

```diff
 +.type>.L__unnamed_2,@object           # @0
    +.L__unnamed_2:
 +.asciz> ";/tmp/a.cpp;main;6;1;;" /\/tmp        [1/1]
 +.size>.L__unnamed_2, 23
    +
```
This ends up in object file and eventually in the binary which makes them non-reproducible. 
I can see it happen with clang16 to clang18 and trunk too.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzEVU-vozgM_zTpxQJBUgo9cHhtp9JKe9u5V4EYyLz8UxKm8-bTrwJtX2dVvesiBInt2I79yy88BDkaxJZUB1KdNnyOk_Xtu-c_Np0VH-11QgNkV2SDdWi0I7sCZAAuBAqIFnqrnVTo00BzI5Q0CHFCQ-gRZEyGATgE7KO0Bq6T7CeQplezwAC8C1bNEcHxOCV3wc6-x0EqBB4gOOzlIFGANdDrxXkO3yf0CAFRh7SkQzAWrvwjTVBJLQ2PKQcZAH-igauM07oFzXtvM-dxkL8yzR2h52wQ2M3js3BXADcCBi_RiJADKU6keFu_-Itrp_BZRHbF-vaEHtK7Sim77RIIO0obokeuCfv2Sh2-1Frt8ulTt3yliaC5NIQ2hO6B1J9hneej5mC1A8c9VwrVTXc3AgAIURD2RthbiF6acU0AQiDs2Sik-IQdgVA6oVIWrtarVBurk-yuttpdRoyXOHnk4mJmfU_svrwm1dGkH3uVRG_neLcNIQ_Rr-sf1qQ-_XdwL_tzWdwc18bLBbSEnqN-NPQGVXjZvHXaK27GtY2QjZD9A9nwE31nA2Y8pC0vDumZ571z8AI87PSwIewELzD3sEhqCzwPuX3_n8LfDvU9j46LL4or5DCkow0pFTtHN8ewnhSrlL1KM8JS-YgeQ0zTr8jjZRdSiBs8CD3k8cMhYd_yvy-X2RiuUVwooUeyLWz3A_sInw-hDMi2KD7BlRz8sZC9PbnmoZe_CfuWUJxQ9kdlCTssh4sddoQdyqRPJjQ1gFTH1fgRuTqUhJ5LUp2e_Af5-1XqQNkfGb4s9_eFuowIMLuE5NtmV1Y0YmG1OHOlPpI2daSThvuPG7tq_o4hiTUYazKPzlsx97JTeCezv6DnJlFoouiJO3enyQWB5W5h9mXYLBGjn807RGvzjWiZ2LM932Bb1kVTVZTu6WZqB7HfdXWDdTkMxU7UzbbZ8rpshq7pse_4Rra0oNuC0pKWVclovquart7vBLJ6qPumJNsCNZcqV-qnzq0fNzKEGduGVttyo3iHKiz3FKUGr7AoU_eq08a3aU3WzWMg20LJEMOnlyijwvbtftUsZUwdgcH624WzClHLGFE8XRgP2G5mr9opRhcSjOiZ0PMo4zR3eW81oecU7PbLnLepX4SelxQDoedlC_8GAAD__zHqPXQ">