mstorsjo wrote: This change broke building Qt (tested with 6.8), ending up with errors like this:
``` qtbase/src/corelib/kernel/qcoreapplication.cpp:2946:78: error: 'this' cannot be used in a static member function declaration 2946 | : slotObject(std::move(slotObject)), context(context ? context : this) | ^ qtbase/src/corelib/kernel/qobjectdefs_impl.h:405:23: note: in instantiation of template class 'QtPrivate::CallableHelper<void (PermissionReceiver::*)(const QPermission &)>' requested here 405 | struct Callable : CallableHelper<Func, Args...>::Type | ^ qtbase/src/corelib/kernel/qobjectdefs.h:437:38: note: in instantiation of template class 'QtPrivate::Callable<void (PermissionReceiver::*)(const QPermission &)>' requested here 437 | typename QtPrivate::Callable<Func>::ReturnType *ret) | ^ qtbase/src/corelib/kernel/qcoreapplication.cpp:2980:13: note: while substituting deduced template arguments into function template 'invokeMethod' [with Func = void (PermissionReceiver::*)(const QPermission &)] 2980 | QMetaObject::invokeMethod(receiver, | ^ ``` This issue also persists on the latest git main as of right now. I've reduced the issue down to the following small reproducer: ```c++ template <typename Func> struct CallableHelper { static auto Resolve() -> Func; }; struct QIODevice { void d_func() { d_ptr; } int d_ptr; }; struct Callable : CallableHelper<void (QIODevice::*)()> {}; ``` Reproducible with e.g. `clang -target x86_64-linux-gnu -c repro.cpp` (presumably the same way for any target). https://github.com/llvm/llvm-project/pull/132401 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits