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

    <tr>
        <th>Summary</th>
        <td>
            Compilation problem with `#include clang/Interpreter/Interpreter.h`
        </td>
    </tr>

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

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

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

<pre>
    With Clang-20, in trying to use `clang-repl` to extend C++, when I include
`#include "clang/Interpreter/Interpreter.h"`
... I obtain the following compilation error:
```
/home/stustd/workspace/thirdparty/inst/llvm/20/include/clang/Interpreter/Interpreter.h:17:
In file included from /home/stustd/workspace/thirdparty/inst/llvm/20/include/clang/AST/Decl.h:20:
In file included from /home/stustd/workspace/thirdparty/inst/llvm/20/include/clang/AST/DeclBase.h:19:
In file included from /home/stustd/workspace/thirdparty/inst/llvm/20/include/clang/AST/DeclarationName.h:18:
In file included from /home/stustd/workspace/thirdparty/inst/llvm/20/include/clang/Basic/IdentifierTable.h:21:
In file included from /home/stustd/workspace/thirdparty/inst/llvm/20/include/clang/Basic/TokenKinds.h:27:
/home/stustd/workspace/thirdparty/inst/llvm/20/include/clang/Basic/TokenKinds.def:475:1: error: redefinition of enumerator 'kw___thread'
  475 | KEYWORD(__thread , KEYALL)
      | ^
/home/stustd/workspace/thirdparty/inst/llvm/20/include/clang/Basic/TokenKinds.def:23:26: note: expanded from macro 'KEYWORD'
   23 | #define KEYWORD(X,Y) TOK(kw_ ## X)
      |                          ^
<scratch space>:52:1: note: expanded from here
   52 | kw___thread
      | ^
/home/stustd/workspace/thirdparty/inst/llvm/20/include/clang/Basic/TokenKinds.def:413:1: note: previous definition is here
  413 | CXX11_KEYWORD(thread_local , KEYC23)
      | ^
/home/stustd/workspace/thirdparty/inst/llvm/20/include/clang/Basic/TokenKinds.def:26:28: note: expanded from macro 'CXX11_KEYWORD'
   26 | #define CXX11_KEYWORD(X,Y) KEYWORD(X,KEYCXX11|(Y))
      | ^
/home/stustd/workspace/thirdparty/inst/llvm/20/include/clang/Basic/TokenKinds.def:23:26: note: expanded from macro 'KEYWORD'
   23 | #define KEYWORD(X,Y) TOK(kw_ ## X)
      |                          ^
<scratch space>:11:1: note: expanded from here
   11 | kw___thread
      | ^
```
I cannot see difference with the `ClangInterpreterTest` unittest. What am I missing?
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzUVl9r47gX_TQ3L2KCfBU7yYMfUreG0OE38NtC26cg29extrZkJLmZfvtFdvOnZRa6sLSzxgSsXFnnnHtucqRzaq-JUoivIL6eycE3xqbOD85Xs8JUL-m98g3LWqn335ADZkxp5u2L0nvmDRscMUh4OX5vqW8h4WGdfnrSFcsAr8Y7Y4eGNNsypct2qAj4NfANJBxQvC4xQBzfA5hvtSfbW_Jk3z7NG0AM28b98_mcbZkpvAygGmK1aVtzCNhK0_WqlV4ZzchaY0FszodO9_SIeWM6Aswn1oD5wdgn18syLPpG2aqX1r8A5ko7D5i37XMHmAc58iMfzD-CXWyi5QnIVrNatXSUpGK1NR371_Fs_rgDzK-pbEcAyL8OwJV0NKmw_joQ0o6u-J_sXrGsPhvLlXSqDN6oSHtVK7J3smgnNBh9FZo780T6VunKTUDORv2MIyuqQWwWyzh0BMTmNLTMUkW10mocZVMz0kNHVnpjGeDy6bDb7XxjSVaAywkvY4tlzGCZsdubx_sf_78GXB2LWPgtur153Hz_Drg-1ocr1EN889mUUYSPJDDVxtNI_Wcv9anhnSytCVRPZE40GYoJNopRI7og_ACYPQKu2d2PW8DV02EXygAFe_gF8b-9zoqIzJVW-rJhkwriBsQmxmO_fg2-IUuns2Icz7ps2dfrv4jEewq9pWdlBscujKfcGy6LaFI-e3iIot1Z9YnWrjWlbI9Wy4Lsv4XVgstw9QGrvaN1YbjkneHeC3Cy3dulIEOohGUGuAoFv4kk_-npi6J_MH1R9PHpexuRtqyUWhvPHBGrVF2TJV0SO4RoGGIXJHxMiBdh546cD1lw0Mp7cn7O7hvpmezYlnXKOaX3IPJZlYpqLdZyRmm0RLGIEsFx1qSJWKxLsVrGsuJ1HcXroiyiqKhXMY-XkaxmKkWOC76KIsRFzHFOBefrukwS4nFZJgQLTp1U7Tw4Y27sfqacGyiNOK6EmLWyoNaNufcUOzFEYJuGDd-KYe9gwVvlvDu_wivfUppdZMvemqKlbtLibZ79SCBM-Gywbdp437vwf4s5YL5XvhmKeWm6s7FHUL01f1IZ7D5ycYD5K53nFP8KAAD__1tzmkE">