summaryrefslogtreecommitdiff
path: root/compilerplugins
diff options
context:
space:
mode:
authorNoel Grandin <noel.grandin@collabora.co.uk>2018-07-23 12:21:25 +0200
committerNoel Grandin <noel.grandin@collabora.co.uk>2018-07-24 08:34:32 +0200
commit4089e1d9f67a61322b1fa4330ee10f62b3684f7f (patch)
tree7659ae6a7f10243a43bf49a02cd85752aa82cdf3 /compilerplugins
parentfbd757349ea0dd2e9daecc2b6d1aa2e80aa7a319 (diff)
loplugin:useuniqueptr fix check for DELETEZ inside compound stmt
Change-Id: Id748b8b0c9cfe8c288dfafb5d0c2a83a8de2c91c Reviewed-on: https://gerrit.libreoffice.org/57871 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'compilerplugins')
-rw-r--r--compilerplugins/clang/test/useuniqueptr.cxx5
-rw-r--r--compilerplugins/clang/useuniqueptr.cxx2
2 files changed, 6 insertions, 1 deletions
diff --git a/compilerplugins/clang/test/useuniqueptr.cxx b/compilerplugins/clang/test/useuniqueptr.cxx
index 24a34c0e54b9..844f7fb65d7e 100644
--- a/compilerplugins/clang/test/useuniqueptr.cxx
+++ b/compilerplugins/clang/test/useuniqueptr.cxx
@@ -154,11 +154,16 @@ class Foo12 {
class Foo13 {
int * m_pbar1; // expected-note {{member is here [loplugin:useuniqueptr]}}
int * m_pbar2; // expected-note {{member is here [loplugin:useuniqueptr]}}
+ int * m_pbar3; // expected-note {{member is here [loplugin:useuniqueptr]}}
~Foo13()
{
if (m_pbar1)
DELETEZ(m_pbar1); // expected-error {{unconditional call to delete on a member, should be using std::unique_ptr [loplugin:useuniqueptr]}}
DELETEZ(m_pbar2); // expected-error {{unconditional call to delete on a member, should be using std::unique_ptr [loplugin:useuniqueptr]}}
+ if (m_pbar3)
+ {
+ DELETEZ(m_pbar3); // expected-error {{unconditional call to delete on a member, should be using std::unique_ptr [loplugin:useuniqueptr]}}
+ }
}
};
// check for unconditional inner compound statements
diff --git a/compilerplugins/clang/useuniqueptr.cxx b/compilerplugins/clang/useuniqueptr.cxx
index c7f6d7a2444c..f41b55a5eb0f 100644
--- a/compilerplugins/clang/useuniqueptr.cxx
+++ b/compilerplugins/clang/useuniqueptr.cxx
@@ -228,7 +228,7 @@ void UseUniquePtr::CheckForSimpleDelete(const CXXMethodDecl* methodDecl, const C
auto ifDeleteExpr = dyn_cast<CXXDeleteExpr>(*j);
if (ifDeleteExpr)
CheckDeleteExpr(methodDecl, ifDeleteExpr);
- ParenExpr const * parenExpr = dyn_cast<ParenExpr>(*i);
+ ParenExpr const * parenExpr = dyn_cast<ParenExpr>(*j);
if (parenExpr)
CheckParenExpr(methodDecl, parenExpr);
}