Details
-
Bug
-
Resolution: Fixed
-
Not Evaluated
-
6.8
-
None
-
fc96d9d27 (dev)
Description
qt has a `class DBusConnection`, which conflicts with `typedef struct DBusConnection DBusConnection;` in `/usr/include/dbus-1.0/dbus/dbus-connection.h`.
this causes clang to emit -Wmismatched-tags warnings:
[879/5298 1.6/sec] Building CXX object qtbase/src/gui/CMakeFiles/Gui.dir/accessible/linux/qspiaccessiblebridge.cpp.o In file included from /home/tim/dev/qt6-dev/qtbase/src/gui/accessible/linux/qspiaccessiblebridge.cpp:12: In file included from /home/tim/dev/qt6-dev/qtbase/src/gui/accessible/linux/atspiadaptor_p.h:19: In file included from /usr/include/at-spi-2.0/atspi/atspi.h:29: In file included from /usr/include/at-spi-2.0/atspi/atspi-accessible.h:33: In file included from /usr/include/at-spi-2.0/atspi/atspi-application.h:28: In file included from /usr/include/dbus-1.0/dbus/dbus.h:31: In file included from /usr/include/dbus-1.0/dbus/dbus-bus.h:30: /usr/include/dbus-1.0/dbus/dbus-connection.h:52:9: warning: struct 'DBusConnection' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags] 52 | typedef struct DBusConnection DBusConnection; | ^ /home/tim/dev/qt6-dev/qtbase/src/gui/accessible/linux/qspiaccessiblebridge_p.h:30:7: note: previous use is here 30 | class DBusConnection; | ^ 1 warning generated.
also i wonder if this may have some effects on LTO builds: `struct DBusConnection` is an opaque type, but it smells like we're violating the one-definition-rule if someone may statically link dbus ...
afaict `class DBusConnection` is private, so maybe we can simply rename it (or move it into a namespace?)
Attachments
Issue Links
- Is tested by
-
QTQAINFRA-3697 Add developer-build with clang 7 (or higher)
- Open