Avoid --enable-compiler-plugins=debug loplugin:overrideparam TODO warning

> cui/source/factory/dlgfact.hxx:531:116: fatal error: TODO: Unexpected 'IdenticalDefaultArgumentsResult::Maybe' [loplugin:overrideparam]
>   531 |                                             const OUString& rName, const OUString& rDesc, const OUString& rTitle = u""_ustr) override;
>       |                                                                                                                    ^~~~~~~~
> include/svx/svxdlg.hxx:380:116: note: TODO: second argument is here [loplugin:overrideparam]
>   380 |                                             const OUString& rName, const OUString& rDesc, const OUString& rTitle = u""_ustr ) = 0;
>       |                                                                                                                    ^~~~~~~~
> MaterializeTemporaryExpr 0x1732504d0 'const OUString':'const class rtl::OUString' lvalue
> `-ImplicitCastExpr 0x1732504b8 'const OUString':'const class rtl::OUString' <NoOp>
>   `-CXXBindTemporaryExpr 0x173250498 'OUString':'class rtl::OUString' (CXXTemporary 0x173250498)
>     `-UserDefinedLiteral 0x173250468 'OUString':'class rtl::OUString'
>       `-ImplicitCastExpr 0x173250450 'OUString (*)(void)' <FunctionToPointerDecay>
>         `-DeclRefExpr 0x173250430 'OUString (void)' lvalue Function 0x14a24f188 'operator""_ustr' 'OUString (void)'
> MaterializeTemporaryExpr 0x14a250658 'const OUString':'const class rtl::OUString' lvalue
> `-ImplicitCastExpr 0x14a250640 'const OUString':'const class rtl::OUString' <NoOp>
>   `-CXXBindTemporaryExpr 0x14a250620 'OUString':'class rtl::OUString' (CXXTemporary 0x14a250620)
>     `-UserDefinedLiteral 0x14a2505f0 'OUString':'class rtl::OUString'
>       `-ImplicitCastExpr 0x14a2505d8 'OUString (*)(void)' <FunctionToPointerDecay>
>         `-DeclRefExpr 0x14a24f298 'OUString (void)' lvalue Function 0x14a24f188 'operator""_ustr' 'OUString (void)'

(Unfortunately, there appears to be no way to get at the actual string literal
content here to check it for equality, so keep returning Maybe for now.)

Change-Id: I4beac3c7f17a689488a41efe5da0554af7beff65
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168246
Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
Tested-by: Jenkins
This commit is contained in:
Stephan Bergmann
2024-05-31 12:27:51 +02:00
parent be2638603b
commit de4708fcaf
+14
View File
@@ -611,6 +611,20 @@ Plugin::IdenticalDefaultArgumentsResult Plugin::checkIdenticalDefaultArguments(
: IdenticalDefaultArgumentsResult::No;
}
}
if (auto const lit1 = dyn_cast<clang::UserDefinedLiteral>(
argument1->IgnoreImplicit()->IgnoreParens()))
{
if (auto const lit2 = dyn_cast<clang::UserDefinedLiteral>(
argument2->IgnoreImplicit()->IgnoreParens()))
{
return lit1->getLiteralOperatorKind() == clang::UserDefinedLiteral::LOK_Template
&& lit2->getLiteralOperatorKind() == clang::UserDefinedLiteral::LOK_Template
&& lit1->getCalleeDecl()->getCanonicalDecl()
== lit2->getCalleeDecl()->getCanonicalDecl()
? IdenticalDefaultArgumentsResult::Maybe //TODO: obtain content to compare
: IdenticalDefaultArgumentsResult::No;
}
}
// catch params with defaults like "= OUString()"
for (Expr const * e1 = desugared1, * e2 = desugared2;;) {
auto const ce1 = dyn_cast<CXXConstructExpr>(skipImplicit(e1));