diff options
author | Jędrzej Nowacki <jedrzej.nowacki@qt.io> | 2019-03-12 09:22:15 +0100 |
---|---|---|
committer | Jędrzej Nowacki <jedrzej.nowacki@qt.io> | 2019-04-02 12:43:14 +0000 |
commit | b91e6f6f40864d54903d707d7f19a9732188b670 (patch) | |
tree | 89386ebd77aaf01158f79c00d3b957edf8aad575 | |
parent | b5f76eeb5310211f128ff312223f641711198af5 (diff) |
Issue a warning about unused result of qScopeGuard and QScopeGuard
If the result is unassigned then resulting QScopeGuard is destroyed
immediately, we can warn about it, as it is definitely a bug.
Change-Id: I627b05cecb3d0e62dbc24373e621f2be36d9b324
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
-rw-r--r-- | src/corelib/tools/qscopeguard.h | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/corelib/tools/qscopeguard.h b/src/corelib/tools/qscopeguard.h index 31100fcabb..0f61996eb6 100644 --- a/src/corelib/tools/qscopeguard.h +++ b/src/corelib/tools/qscopeguard.h @@ -50,7 +50,12 @@ template <typename F> class QScopeGuard; template <typename F> QScopeGuard<F> qScopeGuard(F f); template <typename F> -class QScopeGuard +class +#ifndef __INTEL_COMPILER +// error #2621: attribute "__warn_unused_result__" does not apply here +Q_REQUIRED_RESULT +#endif +QScopeGuard { public: QScopeGuard(QScopeGuard &&other) Q_DECL_NOEXCEPT @@ -86,6 +91,10 @@ private: template <typename F> +#ifndef __INTEL_COMPILER +// Causes "error #3058: GNU attributes on a template redeclaration have no effect" +Q_REQUIRED_RESULT +#endif QScopeGuard<F> qScopeGuard(F f) { return QScopeGuard<F>(std::move(f)); |