Skip to content

Commit 8fa45e1

Browse files
Chuyang ChenAaronBallman
authored andcommitted
Convert diagnostics about multi-character literals from extension to warning
This addresses PR46797.
1 parent 5588dbc commit 8fa45e1

File tree

4 files changed

+10
-6
lines changed

4 files changed

+10
-6
lines changed

clang/include/clang/Basic/DiagnosticLexKinds.td

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -104,10 +104,10 @@ def warn_cxx98_compat_raw_string_literal : Warning<
104104
"raw string literals are incompatible with C++98">,
105105
InGroup<CXX98Compat>, DefaultIgnore;
106106

107-
def ext_multichar_character_literal : ExtWarn<
107+
def warn_multichar_character_literal : Warning<
108108
"multi-character character constant">, InGroup<MultiChar>;
109-
def ext_four_char_character_literal : Extension<
110-
"multi-character character constant">, InGroup<FourByteMultiChar>;
109+
def warn_four_char_character_literal : Warning<
110+
"multi-character character constant">, InGroup<FourByteMultiChar>, DefaultIgnore;
111111

112112

113113
// Unicode and UCNs

clang/lib/Lex/LiteralSupport.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1373,9 +1373,9 @@ CharLiteralParser::CharLiteralParser(const char *begin, const char *end,
13731373
if (isWide())
13741374
PP.Diag(Loc, diag::warn_extraneous_char_constant);
13751375
else if (isAscii() && NumCharsSoFar == 4)
1376-
PP.Diag(Loc, diag::ext_four_char_character_literal);
1376+
PP.Diag(Loc, diag::warn_four_char_character_literal);
13771377
else if (isAscii())
1378-
PP.Diag(Loc, diag::ext_multichar_character_literal);
1378+
PP.Diag(Loc, diag::warn_multichar_character_literal);
13791379
else
13801380
PP.Diag(Loc, diag::err_multichar_utf_character_literal);
13811381
IsMultiChar = true;

clang/test/Lexer/constants.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// RUN: %clang_cc1 -fsyntax-only -verify -pedantic -ftrigraphs %s
1+
// RUN: %clang_cc1 -fsyntax-only -verify -Wfour-char-constants -pedantic -ftrigraphs %s
22

33
int x = 000000080; // expected-error {{invalid digit}}
44

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
// RUN: %clang_cc1 -fsyntax-only -verify -Wfour-char-constants -pedantic-errors %s
2+
3+
int x = 'ab'; // expected-warning {{multi-character character constant}}
4+
int y = 'abcd'; // expected-warning {{multi-character character constant}}

0 commit comments

Comments
 (0)