[PATCH] D87962: [clang] Change the multi-character character constants from extension to implementation-defined.
Chuyang Chen via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Fri Oct 2 02:25:20 PDT 2020
nomanous updated this revision to Diff 295766.
nomanous added a comment.
I change the four-char constants back to "Warning" in this revision, but set it to be ignored by default.
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D87962/new/
https://reviews.llvm.org/D87962
Files:
clang/include/clang/Basic/DiagnosticLexKinds.td
clang/test/FixIt/format.m
clang/test/Lexer/constants.c
clang/test/Lexer/multi-char-constants.c
Index: clang/test/Lexer/multi-char-constants.c
===================================================================
--- /dev/null
+++ clang/test/Lexer/multi-char-constants.c
@@ -0,0 +1,9 @@
+// RUN: %clang_cc1 -fsyntax-only -verify -Wfour-char-constants -pedantic-errors %s
+
+int x = 'ab'; // expected-warning {{multi-character character constant}}
+int y = 'abcd'; // expected-warning {{multi-character character constant}}
+
+int main() {
+ return 0;
+}
+
Index: clang/test/Lexer/constants.c
===================================================================
--- clang/test/Lexer/constants.c
+++ clang/test/Lexer/constants.c
@@ -1,4 +1,4 @@
-// RUN: %clang_cc1 -fsyntax-only -verify -pedantic -ftrigraphs %s
+// RUN: %clang_cc1 -fsyntax-only -verify -Wfour-char-constants -pedantic -ftrigraphs %s
int x = 000000080; // expected-error {{invalid digit}}
@@ -26,7 +26,7 @@
'\\
t',
'??!', // expected-warning {{trigraph converted to '|' character}}
- 'abcd' // expected-warning {{multi-character character constant}}
+ 'abcd' // expected-warning {{multi-character character constant}}
};
// PR4499
@@ -36,15 +36,14 @@
int m3 = '\\\
';
-
#pragma clang diagnostic ignored "-Wmultichar"
int d = 'df'; // no warning.
-int e = 'abcd'; // still warn: expected-warning {{multi-character character constant}}
+int e = 'abcd'; // still warn: expected-warning {{multi-character character constant}}
#pragma clang diagnostic ignored "-Wfour-char-constants"
-int f = 'abcd'; // ignored.
+int f = 'abcd'; // ignored.
// rdar://problem/6974641
float t0[] = {
Index: clang/test/FixIt/format.m
===================================================================
--- clang/test/FixIt/format.m
+++ clang/test/FixIt/format.m
@@ -177,7 +177,7 @@
// type-checker expects %c to correspond to an integer argument, because
// many C library functions like fgetc() actually return an int (using -1
// as a sentinel).
- NSLog(@"%c", 'abcd'); // missing-warning{{format specifies type 'char' but the argument has type 'int'}}
+ NSLog(@"%c", 'abcd'); // missing-warning{{format specifies type 'char' but the argument has type 'int'}} \
// CHECK-NOT: fix-it:"{{.*}}":{[[@LINE-1]]:11-[[@LINE-1]]:13}:"%d"
}
Index: clang/include/clang/Basic/DiagnosticLexKinds.td
===================================================================
--- clang/include/clang/Basic/DiagnosticLexKinds.td
+++ clang/include/clang/Basic/DiagnosticLexKinds.td
@@ -104,10 +104,10 @@
"raw string literals are incompatible with C++98">,
InGroup<CXX98Compat>, DefaultIgnore;
-def ext_multichar_character_literal : ExtWarn<
+def ext_multichar_character_literal : Warning<
"multi-character character constant">, InGroup<MultiChar>;
-def ext_four_char_character_literal : Extension<
- "multi-character character constant">, InGroup<FourByteMultiChar>;
+def ext_four_char_character_literal : Warning<
+ "multi-character character constant">, InGroup<FourByteMultiChar>, DefaultIgnore;
// Unicode and UCNs
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D87962.295766.patch
Type: text/x-patch
Size: 3018 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20201002/a7f54a64/attachment-0001.bin>
More information about the cfe-commits
mailing list