compilerplugins/clang/stringconcatauto.cxx | 6 ------ compilerplugins/clang/test/stringconcatauto.cxx | 18 ++---------------- 2 files changed, 2 insertions(+), 22 deletions(-)
New commits: commit e0a5a201d4170f4dac23a0e1aa8df18918549991 Author: Stephan Bergmann <[email protected]> AuthorDate: Sat Nov 5 11:34:34 2022 +0100 Commit: Stephan Bergmann <[email protected]> CommitDate: Sat Nov 5 15:50:43 2022 +0100 loplugin:stringconcatauto: There's no dangling-ref issue with O[U]StringNumber ...so it's unclear why 2f5f45921b05904a4be1ff633be09c62cb44ff08 "support O(U)String::number() for fast string concatenation" added that here. On the contrary, variables of type OStringNumber can be useful replacements for calls to std::sprintf (which started to emit deprecation warnings with macOS 13 SDK now), so this is in preparation for follow-up commits that will replace many uses of that across the code base with various alternatives. Change-Id: I6f8508d49dc84773c50f4c33dba38fe08c4c8969 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/142318 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <[email protected]> diff --git a/compilerplugins/clang/stringconcatauto.cxx b/compilerplugins/clang/stringconcatauto.cxx index f228f865c677..934556271b4f 100644 --- a/compilerplugins/clang/stringconcatauto.cxx +++ b/compilerplugins/clang/stringconcatauto.cxx @@ -85,12 +85,6 @@ bool StringConcatAuto::checkDecl( const DeclaratorDecl* decl, QualType type, con const char* typeString = nullptr; if( tc.Struct("StringConcat").Namespace("rtl").GlobalNamespace()) typeString = "O(U)String"; - else if( tc.Struct("StringNumberBase").Namespace("rtl").GlobalNamespace()) - typeString = "O(U)String"; - else if( tc.Struct("OUStringNumber").Namespace("rtl").GlobalNamespace()) - typeString = "OUString"; - else if( tc.Struct("OStringNumber").Namespace("rtl").GlobalNamespace()) - typeString = "OString"; else return true; report( DiagnosticsEngine::Warning, diff --git a/compilerplugins/clang/test/stringconcatauto.cxx b/compilerplugins/clang/test/stringconcatauto.cxx index 9fed0b83c75c..dde4211eaee4 100644 --- a/compilerplugins/clang/test/stringconcatauto.cxx +++ b/compilerplugins/clang/test/stringconcatauto.cxx @@ -24,11 +24,7 @@ void foo() // expected-error-re@-1 {{creating a variable of type {{.+}} will make it reference temporaries}} // expected-note@-2 {{use O(U)String instead}} auto str5 = OUString::number(50); - // expected-error-re@-1 {{creating a variable of type '{{(rtl::)?}}OUStringNumber<{{.*}}>' will make it reference temporaries}} - // expected-note@-2 {{use OUString instead}} auto str6 = OUString::number(50).toAsciiUpperCase(); - // expected-error-re@-1 {{creating a variable of type '{{(rtl::)?}}StringNumberBase<{{.*}}>' will make it reference temporaries}} - // expected-note@-2 {{use O(U)String instead}} (void)str1; (void)str2; (void)str3; @@ -45,18 +41,8 @@ struct A { return "bar" + OString::number(110); } - auto baz() - // expected-error-re@-1 {{returning a variable of type '{{(rtl::)?}}OStringNumber<{{.*}}>' will make it reference temporaries}} - // expected-note@-2 {{use OString instead}} - { - return OString::number(120); - } - auto baz2() - // expected-error-re@-1 {{returning a variable of type '{{(rtl::)?}}StringNumberBase<{{.*}}>' will make it reference temporaries}} - // expected-note@-2 {{use O(U)String instead}} - { - return OString::number(120).toAsciiUpperCase(); - } + auto baz() { return OString::number(120); } + auto baz2() { return OString::number(120).toAsciiUpperCase(); } }; template <typename T> void fun(const T& par)
