summaryrefslogtreecommitdiff
path: root/compilerplugins/clang/dllprivate.cxx
AgeCommit message (Collapse)Author
2024-11-18loplugin:dllprivate: Extend for new qtbase macroMichael Weghorn
Qt's qtbase commit [1] commit cecca90ff23ff27b9396defc21abd472b3fe0003 Author: Thiago Macieira <thiago.macieira@intel.com> AuthorDate: Tue Oct 1 11:26:30 2024 -0700 Commit: Thiago Macieira <thiago.macieira@intel.com> CommitDate: Tue Nov 12 17:14:46 2024 -0800 moc: fix support for generating meta objects for nested private classes introduced a new QT_OBJECT_GADGET_COMMON macro, causing my `--enable-qt6` clang plugin build with current qtbase git dev (as of commit 957e2be00a5c45223a5ef842a5f9f2f7b7be882b) to fail as follows for classes using the Q_OBJECT macro: In file included from /home/michi/development/git/libreoffice/vcl/qt6/QtAccessibleRegistry.cxx:10: In file included from /home/michi/development/git/libreoffice/vcl/qt6/../qt5/QtAccessibleRegistry.cxx:11: In file included from /home/michi/development/git/libreoffice/vcl/inc/qt6/QtXAccessible.hxx:10: /home/michi/development/git/libreoffice/vcl/inc/qt6/../qt5/QtXAccessible.hxx:27:5: error: declaration nested in DLLPRIVATE declaration redundantly marked as DLLPRIVATE [loplugin:dllprivate] 27 | Q_OBJECT | ^~~~~~~~ /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qtmetamacros.h:145:5: note: expanded from macro 'Q_OBJECT' 145 | QT_OBJECT_GADGET_COMMON \ | ^~~~~~~~~~~~~~~~~~~~~~~ /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qtmetamacros.h:132:5: note: expanded from macro 'QT_OBJECT_GADGET_COMMON' 132 | Q_DECL_HIDDEN_STATIC_METACALL static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qtmetamacros.h:98:39: note: expanded from macro 'Q_DECL_HIDDEN_STATIC_METACALL' 98 | #define Q_DECL_HIDDEN_STATIC_METACALL Q_DECL_HIDDEN | ^ /home/michi/development/git/qt5/qtbase/src/corelib/global/qcompilerdetection.h:190:46: note: expanded from macro 'Q_DECL_HIDDEN' 190 | # define Q_DECL_HIDDEN __attribute__((visibility("hidden"))) | ^ /home/michi/development/git/libreoffice/vcl/inc/qt6/../qt5/QtXAccessible.hxx:25:7: note: parent declaration is here [loplugin:dllprivate] 25 | class QtXAccessible : public QObject | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 26 | { | ~ 27 | Q_OBJECT | ~~~~~~~~ 28 | 29 | public: | ~~~~~~~ 30 | QtXAccessible(css::uno::Reference<css::accessibility::XAccessible> xAccessible); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 31 | 32 | /** Reference to the XAccessible. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 33 | * This is cleared once it has been passed to the QtAccessibleWidget, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 34 | * which then keeps an own reference and takes care of all required | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 35 | * access to the XAccessible for the Qt a11y bridge. */ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 36 | css::uno::Reference<css::accessibility::XAccessible> m_xAccessible; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 37 | }; | ~ 1 error generated. make[1]: *** [/home/michi/development/git/libreoffice/solenv/gbuild/LinkTarget.mk:339: /home/michi/development/git/libreoffice/workdir/CxxObject/vcl/qt6/QtAccessibleRegistry.o] Error 1 Extend the plugin to also take the new macro into account in addition to Q_OBJECT. [1] https://code.qt.io/cgit/qt/qtbase.git/commit/?id=cecca90ff23ff27b9396defc21abd472b3fe0003 Change-Id: I990f0b25010b3a0f0cc3902f732b93d13bb85d78 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/176702 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2019-07-17make some plugins used the shared frameworkNoel Grandin
Change-Id: Ie283a4774564f25e0fde8ca35212f92be786d671 Reviewed-on: https://gerrit.libreoffice.org/75785 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-08-23filter out AST in more pluginsNoel Grandin
I seem to have missed quite a few in commit 9f4d23c15115d64febd6bf01f870cc157badd350 filter out some of the AST in the plugins This nets me another 14% improvement Change-Id: I39b980b49ced560f768045dbedd3ddfef29306c1 Reviewed-on: https://gerrit.libreoffice.org/59501 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-11-07Clean away temporarily added using declarationsStephan Bergmann
Change-Id: I26734c13515394162d88351a1cbe2b20abdac865
2017-10-11Use unique class names for better FlameGraph resultsStephan Bergmann
...of measuring loplugin performance, when gathering data with perf and all plugins that used "Visitor" as class name were lumped together. (Cf. <https://whatofhow.wordpress.com/2016/06/28/plugin-flamed/>.) Change-Id: Ie482f443faced7469528da4772e735bc2eda596d Reviewed-on: https://gerrit.libreoffice.org/43324 Reviewed-by: Stephan Bergmann <sbergman@redhat.com> Tested-by: Stephan Bergmann <sbergman@redhat.com>
2017-10-04Revert "check for unnecessary DLLPUBLIC annotations"Stephan Bergmann
This reverts commit a599eeab786ecbe1b5b6509e3c792e5c1ba31248, plus follow-up fa4431449d0306e8179f53a2a69c549800bd24bd "Avoid bogus loplugin:dllmacro 'unnecessary *DLLPUBLIC declaration ...'". See (abandoned) <https://gerrit.libreoffice.org/#/c/42983/> "loplugin:dllmacro: Handle implicit member functions" how this would have needed to be extended to give consistent results across Linux and macOS, but then would have started to remove DLLPUBLIC from entities that apparently need to at least have default type visibility on macOS and started to make tests fail.
2017-09-29check for unnecessary DLLPUBLIC annotationsNoel Grandin
on classes which are fully defined in a header file Rename the dllprivate plugin to dllmacro and add the functionality there. Change-Id: I4581d551c46a8f61213d95973f323359d08278d8
2016-10-01Fix typosAndrea Gelmini
Change-Id: I6aeda978911b25caa45d4e459e581fc743e93d2c Reviewed-on: https://gerrit.libreoffice.org/29442 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2016-09-20Adapt loplugin:dllprivate to DISABLE_DYNLOADINGStephan Bergmann
Change-Id: I721cfeaa144c773ead457e1c9138009d4071a06a
2016-09-13loplugin:dllprivateStephan Bergmann
Change-Id: I1fe70a39c50aba8b84c117653185fc37dbbfeab0