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

    <tr>
        <th>Summary</th>
        <td>
            `#include <iostream>` makes it impossible to use `pipe` as a variable name
        </td>
    </tr>

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

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

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

<pre>
    ```cpp
#include <iostream>

int pipe;
```
https://godbolt.org/z/fqPhTzq1E
The latest libc++ rejects the above code with:

> ```
> <source>:3:5: error: redefinition of 'pipe' as different kind of symbol
>     3 | int pipe;
>       | ^
> /usr/include/unistd.h:437:12: note: previous definition is here
> 437 | extern int pipe (int __pipedes[2]) __THROW __wur;
>       | ^
> 1 error generated.
> ```
Note that Clang-17's libc++, libc++, and MSVC-STL accept it.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyMk99u6ygQxp9mfDNKhCGO4wtfJGmtvdh_2ka7lxE2k5gtBhdwsu3Tr3BzTqMeVTqWZRg-efgxzCdD0GdLVEOxg-Ihk1Psna97umpjnrPWqdca1uz97cYR2AOwLXChbWcmRQhir12InuQA4vEmz19tI456JBC72_K3PO9hH-MYQGyBN8Cbs1OtM3Hp_Bl48wa8Ob382R_eXvJb0kNPaGSkENHotgO-A75DT_9SFwPGnlC27kLYOUV41bFPqe9wQDziJ4J5SeyDm3xHiV5sBYhtAWKL5L3zaeJJ0UlbHbWz6E4IvJxPxUuUAZU-nciTjfisrUp6eB1aZz42SI9AKPf4Y0FuMs4yFI93WLyZggfe3OqcYqtDVMt0rpUoQWxznvisi5TG0dNFuyngHa4O2JOnj7QrUc570X-RvP1OhMA3aX48pkhRgGLHoXgAXuHxePjlrz_-wePxOvmfQc_fa4dnsuRlJLX88gJ-d5Ew9jLi3kh7XuQl8DLc3S_w_adIWoW_Pf29XzwdfkXZdTRG1HGZqVqoSlQyozov2bpgq2pTZH1dsHzddWrTsrxqZVUJ1gqheFGqcl20rM10zRlfsZxXrGDVqljyrqBus843SgkqO4IVo0FqszTmMqT-zHQIE9VlVW54ZmRLJsz24dzSFWcReCpf5uv0z6KdzgFWzOgQw0eWqKOh2VxfumnNcJDPFFBH1MPoQtCtIYwOp0CpmHM7rVnqRIkX6bVMupUDZZM39SeL6dhP7bJzA_AmYdyGxehdclHqtgQfgDfz4f4PAAD__49INkk">