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

    <tr>
        <th>Summary</th>
        <td>
            Compilation errors about `unique_ptr<clang::SyntaxOnlyAction>` with clang as the host compiler
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            c++,
            clang:frontend
      </td>
    </tr>

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

    <tr>
      <th>Reporter</th>
      <td>
          yuanfang-chen
      </td>
    </tr>
</table>

<pre>
    GCC works fine.

To reproduce
```
> clang++ --version
clang version 17.0.3
Target: x86_64-unknown-linux-gnu
Thread model: posix

> clang++ -Wno-gnu-line-marker -std=c++17 -fsyntax-only -x c++-cpp-output CrossTranslationUnit.cpp.ii.txt

/opt/rh/devtoolset-7/root/usr/lib/gcc/x86_64-redhat-linux/7/../../../../include/c++/7/bits/unique_ptr.h:76:16: error: invalid application of 'sizeof' to an incomplete type 'clang::SyntaxOnlyAction'
   76 |  static_assert(sizeof(_Tp)>0,
      | ^~~~~~~~~~~
/opt/rh/devtoolset-7/root/usr/lib/gcc/x86_64-redhat-linux/7/../../../../include/c++/7/bits/unique_ptr.h:268:4: note: in instantiation of member function 'std::default_delete<clang::SyntaxOnlyAction>::operator()' requested here
 268 |    get_deleter()(__ptr);
      | ^
/opt/rh/devtoolset-7/root/usr/lib/gcc/x86_64-redhat-linux/7/../../../../include/c++/7/bits/unique_ptr.h:233:45: note: in instantiation of member function 'std::unique_ptr<clang::SyntaxOnlyAction>::~unique_ptr' requested here
 233 |  constexpr unique_ptr(nullptr_t) noexcept : unique_ptr() { }
      | ^
/public/home/xx/Src/aomp-git/trunk18.0/llvm-project/clang/include/clang/Frontend/ASTUnit.h:80:7: note: forward declaration of 'clang::SyntaxOnlyAction'
   80 | class SyntaxOnlyAction;
      |       ^
1 error generated.
```


[CrossTranslationUnit.cpp.ii.txt](https://github.com/llvm/llvm-project/files/13098302/CrossTranslationUnit.cpp.ii.txt)


</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzMlslu4zgTgJ-GvhQkSKSt5eCD7UT_8T8kgzkalFS2OKFINpfEnkM_-4CS4nYjPb1gLh0EhMxaWPVVsSTunDgrxC3Z7MnmYcWDH7TdXgNXJ67OSTegWrW6v27_dzjAm7YvDk5CYUqyB5Lt5vVZg0VjdR86XPaLbPmff7JH6CRXZ0L3hO4hSV7ROqHVLJ5EsGxBXqZZyhbP3J7RE7aDS1Uci3US1IvSbyqRQoVLclZh0Rss8h5G3aOM2kY7cbkP8UMEfyodzaMjTEZuX9BC4nxP2EM36-QlJCd3VZ5fEq3kFZILLKKkMybRwZvg4WC1c8-WKye5F1r9oYRPO2NSIVJ_8V8FQRttPKGNHQhtenz1WkuHPinjntZRFJwltJGiJbQ5dx2hzZK5xX7gfk6c0CaapOnHRahOhh4JbZZYF91WeBfdK_Ep4NF4mw6E7cqCsF0eF0BrtY0PQr1yKXrgxkjRTTmBPgGhpRN_oz4RWoLXwBUI1enRSPQI_mowqsyM2Y6w3dOE7v9KXndddEJoOWMAgLIAUh4AnOdedEfuHFpPaPV-QnV8NoTWhD1mhB5uZgCTGdk8fr79_a5oaVERtltHokp7nMmCUM5z5cUN64hjixZOQU2QJsyxCyPBHk88SH_sMTIm7PA9uuxxFmiDlnttCa0iQVqCxU8BncceBrTLBQVaVHMJAM74fsTNqDrGPKYK7L9B_7dlzlhkvvkv0L-4_Engn-8s_pU2YzPtTivn8WIs3FtVKkhpvD16QmtQGi8dGg8x_K_UopSUeyDlw_eqYkIrRWQ96DGiu0TCTzbucD2a5CxiabwN6iWv0iwWSL6OibH6L-yiaJmU9_SXncZq5VH1hDa7p-dp1kXwVRaHyT32k7Zv3PbQYye5vZ8iPzkiqmzKq5PcOfgI_0NbLk_vGPJ5oMEZVbwP2KfffjPdr5v9j4b55oHQavDeuJgAbWJXCz-ENu30uHD8iPMkJMZuzVlWVyyjhDY_OojW95Gt-i3ra1bzFW7zoq7yPM831WrYZoyuWVa0mPfrkmZss2nLft0VbVfzFntciS3NKMszus5yRlmVYl1VjFYbWuRVXZYlWWc4ciHTGHOq7XklnAu4Leq6LlaStyjd9HFA6e0G0jiTKX0v5OnWEzR-QtjtlH4bzo6sMymcd1-ce-Elbg96NGJOfC6TA97q4IEU2a_cvyKDN-GH-c0O3IEfEAbtPHTTCWhXwcrtLxdsQhArNlH4JwAA__8IG9BX">