Author: Dávid Bolvanský Date: 2020-08-10T23:36:33+02:00 New Revision: b2c9b631bb48087c988d798adc5465499b155a9a
URL: https://github.com/llvm/llvm-project/commit/b2c9b631bb48087c988d798adc5465499b155a9a DIFF: https://github.com/llvm/llvm-project/commit/b2c9b631bb48087c988d798adc5465499b155a9a.diff LOG: [Diagnostics] Move -Wstring-concatenation to -Wextra Added: Modified: clang/include/clang/Basic/DiagnosticGroups.td clang/include/clang/Basic/DiagnosticSemaKinds.td clang/lib/Sema/SemaExpr.cpp clang/test/Sema/string-concat.c Removed: ################################################################################ diff --git a/clang/include/clang/Basic/DiagnosticGroups.td b/clang/include/clang/Basic/DiagnosticGroups.td index 5ddd37e9972a..2b13f9eca12d 100644 --- a/clang/include/clang/Basic/DiagnosticGroups.td +++ b/clang/include/clang/Basic/DiagnosticGroups.td @@ -547,6 +547,7 @@ def StaticLocalInInline : DiagGroup<"static-local-in-inline">; def GNUStaticFloatInit : DiagGroup<"gnu-static-float-init">; def StaticFloatInit : DiagGroup<"static-float-init", [GNUStaticFloatInit]>; def GNUStatementExpression : DiagGroup<"gnu-statement-expression">; +def StringConcatation : DiagGroup<"string-concatenation">; def StringCompare : DiagGroup<"string-compare">; def StringPlusInt : DiagGroup<"string-plus-int">; def StringPlusChar : DiagGroup<"string-plus-char">; @@ -880,7 +881,8 @@ def Extra : DiagGroup<"extra", [ SignCompare, UnusedParameter, NullPointerArithmetic, - EmptyInitStatement + EmptyInitStatement, + StringConcatation ]>; def Most : DiagGroup<"most", [ diff --git a/clang/include/clang/Basic/DiagnosticSemaKinds.td b/clang/include/clang/Basic/DiagnosticSemaKinds.td index d0bddd80b8fe..f2e939da3050 100644 --- a/clang/include/clang/Basic/DiagnosticSemaKinds.td +++ b/clang/include/clang/Basic/DiagnosticSemaKinds.td @@ -3005,7 +3005,7 @@ def warn_objc_string_literal_comparison : Warning< def warn_concatenated_literal_array_init : Warning< "suspicious concatenation of string literals in an array initialization; " "did you mean to separate the elements with a comma?">, - InGroup<DiagGroup<"string-concatenation">>; + InGroup<StringConcatation>, DefaultIgnore; def warn_concatenated_nsarray_literal : Warning< "concatenated NSString literal for an NSArray expression - " "possibly missing a comma">, diff --git a/clang/lib/Sema/SemaExpr.cpp b/clang/lib/Sema/SemaExpr.cpp index 8f38238401fc..28ac1dfeb082 100644 --- a/clang/lib/Sema/SemaExpr.cpp +++ b/clang/lib/Sema/SemaExpr.cpp @@ -6914,7 +6914,6 @@ Sema::ActOnInitList(SourceLocation LBraceLoc, MultiExprArg InitArgList, // Do not warn when all the elements in the initializer are concatenated // together. Do not warn for macros too. if (NumConcat > 1 && E > 2 && !SL->getBeginLoc().isMacroID() && - SL->getString().find(" ") == llvm::StringRef::npos && isa<StringLiteral>(InitArgList[0]) && SLPrev && NumConcat != SLPrev->getNumConcatenated()) { SmallVector<FixItHint, 1> Hints; diff --git a/clang/test/Sema/string-concat.c b/clang/test/Sema/string-concat.c index 09de0a9bffbe..4e5ed4424e7c 100644 --- a/clang/test/Sema/string-concat.c +++ b/clang/test/Sema/string-concat.c @@ -1,6 +1,6 @@ -// RUN: %clang_cc1 -x c -fsyntax-only -verify %s -// RUN: %clang_cc1 -x c++ -fsyntax-only -verify %s +// RUN: %clang_cc1 -x c -Wstring-concatenation -fsyntax-only -verify %s +// RUN: %clang_cc1 -x c++ -Wstring-concatenation -fsyntax-only -verify %s const char *missing_comma[] = { "basic_filebuf", @@ -110,19 +110,6 @@ const char *not_warn2[] = { "// Aaa\\\r" " Bbb\\ \r" " Ccc?" "?/\r" }; -const char *not_warn3[] = { - "// \\param [in,out] aaa Bbb\n", - "// \\param[in,out] aaa Bbb\n", - "// \\param [in, out] aaa Bbb\n", - "// \\param [in,\n" - "// out] aaa Bbb\n", - "// \\param [in,out]\n" - "// aaa Bbb\n", - "// \\param [in,out] aaa\n" - "// Bbb\n" -}; - - // Do not warn when all the elements in the initializer are concatenated together. const char *all_elems_in_init_concatenated[] = {"a" "b" "c"}; _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits