Adapt external/pdfium/gcc-c++20-comparison.patch to P2468R2

(<https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2468r2.html> "The
Equality Operator You Are Looking For"), as now implemented by Clang 16 trunk
since
<https://github.com/llvm/llvm-project/commit/38b9d313e6945804fffc654f849cfa05ba2c713d>
"[C++20][Clang] P2468R2 The Equality Operator You Are Looking For", and which
started to make my --with-latest-c++ build fail with

> workdir/UnpackedTarball/pdfium/fpdfsdk/cpdfsdk_interactiveform.cpp:189:22: error: invalid operands to binary expression ('const CPDF_Dictionary *' and 'RetainPtr<const CPDF_Object>')
>       if (pAnnotDict == pDict)
>           ~~~~~~~~~~ ^  ~~~~~
> workdir/UnpackedTarball/pdfium/core/fxcrt/bytestring.h:227:13: note: candidate function not viable: no known conversion from 'const CPDF_Dictionary *' to 'const char *' for 1st argument
> inline bool operator==(const char* lhs, const ByteString& rhs) {
>             ^
> workdir/UnpackedTarball/pdfium/core/fxcrt/bytestring.h:227:13: note: candidate function (with reversed parameter order) not viable: no known conversion from 'const CPDF_Dictionary *' to 'const ByteString' for 1st argument
> workdir/UnpackedTarball/pdfium/core/fxcrt/bytestring.h:230:13: note: candidate function not viable: no known conversion from 'const CPDF_Dictionary *' to 'ByteStringView' (aka 'StringViewTemplate<char>') for 1st argument
> inline bool operator==(ByteStringView lhs, const ByteString& rhs) {
>             ^
> workdir/UnpackedTarball/pdfium/core/fxcrt/bytestring.h:230:13: note: candidate function (with reversed parameter order) not viable: no known conversion from 'const CPDF_Dictionary *' to 'const ByteString' for 1st argument
> workdir/UnpackedTarball/pdfium/core/fxcrt/widestring.h:285:13: note: candidate function not viable: no known conversion from 'const CPDF_Dictionary *' to 'const wchar_t *' for 1st argument
> inline bool operator==(const wchar_t* lhs, const WideString& rhs) {
>             ^
> workdir/UnpackedTarball/pdfium/core/fxcrt/widestring.h:285:13: note: candidate function (with reversed parameter order) not viable: no known conversion from 'const CPDF_Dictionary *' to 'const WideString' for 1st argument
> workdir/UnpackedTarball/pdfium/core/fxcrt/widestring.h:288:13: note: candidate function not viable: no known conversion from 'const CPDF_Dictionary *' to 'WideStringView' (aka 'StringViewTemplate<wchar_t>') for 1st argument
> inline bool operator==(WideStringView lhs, const WideString& rhs) {
>             ^
> workdir/UnpackedTarball/pdfium/core/fxcrt/widestring.h:288:13: note: candidate function (with reversed parameter order) not viable: no known conversion from 'const CPDF_Dictionary *' to 'const WideString' for 1st argument
> workdir/UnpackedTarball/pdfium/core/fxge/cfx_color.h:61:13: note: candidate function not viable: no known conversion from 'const CPDF_Dictionary *' to 'const CFX_Color' for 1st argument
> inline bool operator==(const CFX_Color& c1, const CFX_Color& c2) {
>             ^
> workdir/UnpackedTarball/pdfium/core/fxcrt/string_view_template.h:277:13: note: candidate template ignored: could not match 'StringViewTemplate' against 'RetainPtr'
> inline bool operator==(const T* lhs, const StringViewTemplate<T>& rhs) {
>             ^
> workdir/UnpackedTarball/pdfium/core/fxcrt/string_view_template.h:277:13: note: candidate template ignored: could not match 'const T *' against 'RetainPtr<const CPDF_Object>'
> workdir/UnpackedTarball/pdfium/core/fxcrt/observed_ptr.h:98:13: note: candidate template ignored: could not match 'ObservedPtr' against 'RetainPtr'
> inline bool operator==(const U* lhs, const ObservedPtr<T>& rhs) {
>             ^
> workdir/UnpackedTarball/pdfium/core/fxcrt/observed_ptr.h:98:13: note: candidate template ignored: could not match 'const U *' against 'RetainPtr<const CPDF_Object>'

Change-Id: Ibef9e5515dc466431741220adebec9c6e20850e1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/141154
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
diff --git a/external/pdfium/gcc-c++20-comparison.patch b/external/pdfium/gcc-c++20-comparison.patch
index 0895ea8..bc7f2ed 100644
--- a/external/pdfium/gcc-c++20-comparison.patch
+++ b/external/pdfium/gcc-c++20-comparison.patch
@@ -4,7 +4,7 @@
   mutable intptr_t m_nRefCount = 0;
 };
 
+#if __cplusplus < 202002L
+#if __cplusplus < 202002L || (defined __clang__ && __clang_major__ >= 16)
 template <typename T, typename U>
 inline bool operator==(const U* lhs, const RetainPtr<T>& rhs) {
   return rhs == lhs;