summaryrefslogtreecommitdiff
path: root/compilerplugins
diff options
context:
space:
mode:
authorStephan Bergmann <sbergman@redhat.com>2020-12-20 09:47:06 +0100
committerStephan Bergmann <sbergman@redhat.com>2020-12-20 13:07:02 +0100
commitcf7306194f5c677fef75e3ff5098676ee302359e (patch)
treea52a0980de72c7f70e4f3ae55126579655440773 /compilerplugins
parent24b02a4f2507f40fe9d36c393c59e12c072428c3 (diff)
No longer need to worry about ambiguous operator== in loplugin:stringviewparam
...after 46c5de832868d2812448b2caace3eeaa9237b9f6 "make *String(string_view) constructors explicit" Change-Id: I6e884c762a2fc91f5dd6fbb197a596fd60f17cae Reviewed-on: https://gerrit.libreoffice.org/c/core/+/108043 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
Diffstat (limited to 'compilerplugins')
-rw-r--r--compilerplugins/clang/stringviewparam.cxx9
1 files changed, 4 insertions, 5 deletions
diff --git a/compilerplugins/clang/stringviewparam.cxx b/compilerplugins/clang/stringviewparam.cxx
index 1e4e71c2d801..1e802068da9c 100644
--- a/compilerplugins/clang/stringviewparam.cxx
+++ b/compilerplugins/clang/stringviewparam.cxx
@@ -194,11 +194,10 @@ SmallVector<DeclRefExpr const*, 2> relevantCXXOperatorCallExpr(CXXOperatorCallEx
return wrap(relevantDeclRefExpr(arg0));
}
- // TODO Can't currently convert rtl::OString because we end up with ambiguous operator==
- // (one in string_view header and one in rtl/string.hxx header)
auto st1 = relevantStringType(arg0->getType());
auto st2 = relevantStringType(arg1->getType());
- if (st1 == StringType::RtlOustring && st2 == StringType::RtlOustring)
+ if ((st1 == StringType::RtlOstring && st2 == StringType::RtlOstring)
+ || (st1 == StringType::RtlOustring && st2 == StringType::RtlOustring))
{
SmallVector<DeclRefExpr const*, 2> v;
if (auto const e = relevantDeclRefExpr(arg0))
@@ -211,11 +210,11 @@ SmallVector<DeclRefExpr const*, 2> relevantCXXOperatorCallExpr(CXXOperatorCallEx
}
return v;
}
- if (st1 == StringType::RtlOustring && isStringView(arg1->getType()))
+ if (st1 != StringType::None && isStringView(arg1->getType()))
{
return wrap(relevantDeclRefExpr(arg0));
}
- if (st2 == StringType::RtlOustring && isStringView(arg0->getType()))
+ if (st2 != StringType::None && isStringView(arg0->getType()))
{
return wrap(relevantDeclRefExpr(arg1));
}