[clang] Reapply "[Clang][Sema] Refactor collection of multi-level template argument lists (#106585)" (PR #111173)
Martin Storsjö via cfe-commits
cfe-commits at lists.llvm.org
Wed Oct 9 00:04:37 PDT 2024
mstorsjo wrote:
This still breaks building Qt, in the same source file as before, but with a different error.
Standalone reproducible with https://martin.st/temp/qwindowsystem-preproc.cpp:
```
$ clang -target i686-w64-mingw32 -c qwindowsystem-preproc.cpp -w
qwindowsystem-preproc.cpp:150631:73: error: cannot initialize a parameter of type 'QWindowSystemInterfacePrivate::WindowSystemEvent *' with an rvalue of type 'QWindowSystemInterface::SynchronousDelivery *'
150631 | if (!QWindowSystemInterfacePrivate::eventHandler->sendEvent(&event))
| ^~~~~~
qwindowsystem-preproc.cpp:150621:77: note: in instantiation of function template specialization 'QWindowSystemHelper<QWindowSystemInterface::SynchronousDelivery>::handleEvent<QWindowSystemInterfacePrivate::EnterEvent, QWindow *, QPointF, QPointF>' requested here
150621 | ? QWindowSystemHelper<QWindowSystemInterface::SynchronousDelivery>::handleEvent<EventType>(args...)
| ^
qwindowsystem-preproc.cpp:150654:52: note: in instantiation of function template specialization 'QWindowSystemHelper<QWindowSystemInterface::DefaultDelivery>::handleEvent<QWindowSystemInterfacePrivate::EnterEvent, QWindow *, QPointF, QPointF>' requested here
150654 | return QWindowSystemHelper<Delivery>::template handleEvent<EventType>(args...);
| ^
qwindowsystem-preproc.cpp:150702:9: note: in instantiation of function template specialization 'handleWindowSystemEvent<QWindowSystemInterfacePrivate::EnterEvent, QWindowSystemInterface::DefaultDelivery, QWindow *, QPointF, QPointF>' requested here
150702 | handleWindowSystemEvent<QWindowSystemInterfacePrivate::EnterEvent, Delivery>(window,
| ^
qwindowsystem-preproc.cpp:150699:66: note: in instantiation of function template specialization 'QWindowSystemInterface::handleEnterEvent<QWindowSystemInterface::DefaultDelivery>' requested here
150699 | template __attribute__((dllexport)) void QWindowSystemInterface::handleEnterEvent<QWindowSystemInterface::DefaultDelivery>(QWindow *window, const QPointF &local, const QPointF &global); template __attribute__((dllexport)) void QWindowSystemInterface::handleEnterEvent<QWindowSystemInterface::SynchronousDelivery>(QWindow *window, const QPointF &local, const QPointF &global); template __attribute__((dllexport)) void QWindowSystemInterface::handleEnterEvent<QWindowSystemInterface::AsynchronousDelivery>(QWindow *window, const QPointF &local, const QPointF &global); template<typename Delivery> void QWindowSystemInterface::handleEnterEvent(QWindow *window, const QPointF &local, const QPointF &global)
| ^
qwindowsystem-preproc.cpp:146799:78: note: passing argument to parameter 'event' here
146799 | virtual bool sendEvent(QWindowSystemInterfacePrivate::WindowSystemEvent *event);
| ^
```
Also reproducible in a full build (for e.g. linux) with the same instructions as last time:
```
$ git clone https://github.com/qt/qtbase
$ cd qtbase
$ git checkout v6.8.0
$ mkdir build
$ cd build
$ cmake .. -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DINPUT_opengl=no
$ ninja
```
I'll go ahead and push a revert again.
https://github.com/llvm/llvm-project/pull/111173
More information about the cfe-commits
mailing list