[PATCH] D124996: [clang][preprocessor] Fix unsigned-ness of utf8 char literals

2022-05-12 Thread Timm Bäder via Phabricator via cfe-commits
This revision was landed with ongoing or failed builds. This revision was automatically updated to reflect the committed changes. Closed by commit rGb91073db6ac3: [clang][preprocessor] Fix unsigned-ness of utf8 char literals (authored by tbaeder). Repository: rG LLVM Github Monorepo CHANGES SI

[PATCH] D124996: [clang][preprocessor] Fix unsigned-ness of utf8 char literals

2022-05-12 Thread Aaron Ballman via Phabricator via cfe-commits
aaron.ballman accepted this revision. aaron.ballman added a comment. LGTM as well, thank you for this! CHANGES SINCE LAST ACTION https://reviews.llvm.org/D124996/new/ https://reviews.llvm.org/D124996 ___ cfe-commits mailing list cfe-commits@lists.l

[PATCH] D124996: [clang][preprocessor] Fix unsigned-ness of utf8 char literals

2022-05-12 Thread Tom Honermann via Phabricator via cfe-commits
tahonermann accepted this revision as: tahonermann. tahonermann added a comment. This revision is now accepted and ready to land. Looks good, @tbaeder! Thank you for sticking with me through all these iterations! CHANGES SINCE LAST ACTION https://reviews.llvm.org/D124996/new/ https://reviews

[PATCH] D124996: [clang][preprocessor] Fix unsigned-ness of utf8 char literals

2022-05-11 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 428861. tbaeder marked 2 inline comments as done. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D124996/new/ https://reviews.llvm.org/D124996 Files: clang/docs/ReleaseNotes.rst clang/lib/Lex/PPExpressions.cpp clang/test/Lexer/utf8-char-literal.c

[PATCH] D124996: [clang][preprocessor] Fix unsigned-ness of utf8 char literals

2022-05-11 Thread Tom Honermann via Phabricator via cfe-commits
tahonermann added inline comments. Comment at: clang/test/Lexer/utf8-char-literal.cpp:54-56 +# if !(u8'\xff' == 0xff) +#error u8 char literal is not unsigned +# endif tbaeder wrote: > tahonermann wrote: > > The C++ case looks good now, but the condition doe

[PATCH] D124996: [clang][preprocessor] Fix unsigned-ness of utf8 char literals

2022-05-10 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added inline comments. Comment at: clang/test/Lexer/utf8-char-literal.cpp:54-56 +# if !(u8'\xff' == 0xff) +#error u8 char literal is not unsigned +# endif tahonermann wrote: > The C++ case looks good now, but the condition doesn't look right for the

[PATCH] D124996: [clang][preprocessor] Fix unsigned-ness of utf8 char literals

2022-05-10 Thread Tom Honermann via Phabricator via cfe-commits
tahonermann added inline comments. Comment at: clang/test/Lexer/utf8-char-literal.cpp:54-56 +# if !(u8'\xff' == 0xff) +#error u8 char literal is not unsigned +# endif The C++ case looks good now, but the condition doesn't look right for the C case. The exp

[PATCH] D124996: [clang][preprocessor] Fix unsigned-ness of utf8 char literals

2022-05-10 Thread Tom Honermann via Phabricator via cfe-commits
tahonermann added inline comments. Comment at: clang/test/Lexer/utf8-char-literal.cpp:3-4 // RUN: %clang_cc1 -triple x86_64-apple-darwin -std=c2x -x c -fsyntax-only -verify %s -// RUN: %clang_cc1 -triple x86_64-apple-darwin -std=c++1z -fsyntax-only -verify %s +// RUN: %clang_c

[PATCH] D124996: [clang][preprocessor] Fix unsigned-ness of utf8 char literals

2022-05-10 Thread Aaron Ballman via Phabricator via cfe-commits
aaron.ballman added inline comments. Comment at: clang/test/Lexer/utf8-char-literal.cpp:3-4 // RUN: %clang_cc1 -triple x86_64-apple-darwin -std=c2x -x c -fsyntax-only -verify %s -// RUN: %clang_cc1 -triple x86_64-apple-darwin -std=c++1z -fsyntax-only -verify %s +// RUN: %clang

[PATCH] D124996: [clang][preprocessor] Fix unsigned-ness of utf8 char literals

2022-05-10 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 428303. tbaeder marked 4 inline comments as done. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D124996/new/ https://reviews.llvm.org/D124996 Files: clang/docs/ReleaseNotes.rst clang/lib/Lex/PPExpressions.cpp clang/test/Lexer/utf8-char-literal.c

[PATCH] D124996: [clang][preprocessor] Fix unsigned-ness of utf8 char literals

2022-05-09 Thread Tom Honermann via Phabricator via cfe-commits
tahonermann added inline comments. Comment at: clang/test/Lexer/utf8-char-literal.cpp:5-7 +// RUN: %clang_cc1 -triple x86_64-apple-darwin -std=c++17 -fsyntax-only -fchar8_t -DCHAR8_T -verify %s +// RUN: %clang_cc1 -triple x86_64-apple-darwin -std=c++20 -fsyntax-only -verify %s

[PATCH] D124996: [clang][preprocessor] Fix unsigned-ness of utf8 char literals

2022-05-09 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder marked 4 inline comments as done. tbaeder added inline comments. Comment at: clang/test/Lexer/utf8-char-literal.cpp:37-47 +#if __cplusplus == 201703L +# if defined(CHAR8_T) +#if u8'\xff' == '\xff' // expected-warning {{right side of operator converted from negative

[PATCH] D124996: [clang][preprocessor] Fix unsigned-ness of utf8 char literals

2022-05-09 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 427989. tbaeder marked an inline comment as done. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D124996/new/ https://reviews.llvm.org/D124996 Files: clang/docs/ReleaseNotes.rst clang/lib/Lex/PPExpressions.cpp clang/test/Lexer/utf8-char-literal.c

[PATCH] D124996: [clang][preprocessor] Fix unsigned-ness of utf8 char literals

2022-05-06 Thread Tom Honermann via Phabricator via cfe-commits
tahonermann added a comment. Thanks for your continued work on this, Tim! I think this is close. I did spot one issue and added a few other comments. Comment at: clang/lib/Lex/PPExpressions.cpp:417-418 +else if (Literal.isUTF8()) + Val.setIsUnsigned(PP.getLangOpts().C

[PATCH] D124996: [clang][preprocessor] Fix unsigned-ness of utf8 char literals

2022-05-06 Thread Aaron Ballman via Phabricator via cfe-commits
aaron.ballman added inline comments. Comment at: clang/test/Lexer/utf8-char-literal.cpp:37-47 +#if __cplusplus == 201703L +# if defined(CHAR8_T) +#if u8'\xff' == '\xff' // expected-warning {{right side of operator converted from negative value to unsigned}} +# error So

[PATCH] D124996: [clang][preprocessor] Fix unsigned-ness of utf8 char literals

2022-05-06 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added inline comments. Comment at: clang/test/Lexer/utf8-char-literal.cpp:39 +# if defined(CHAR8_T) +#if u8'\xff' == '\xff' // expected-warning {{right side of operator converted from negative value to unsigned}} +# error Something's not right.

[PATCH] D124996: [clang][preprocessor] Fix unsigned-ness of utf8 char literals

2022-05-06 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 427614. tbaeder marked 2 inline comments as done. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D124996/new/ https://reviews.llvm.org/D124996 Files: clang/docs/ReleaseNotes.rst clang/lib/Lex/PPExpressions.cpp clang/test/Lexer/utf8-char-literal.c

[PATCH] D124996: [clang][preprocessor] Fix unsigned-ness of utf8 char literals

2022-05-05 Thread Aaron Ballman via Phabricator via cfe-commits
aaron.ballman added a reviewer: clang-language-wg. aaron.ballman added a comment. In D124996#3493930 , @tahonermann wrote: > I think changes are needed to make this behavior dependent on whether > `char8_t` support is active or not. Good catch Tom, I f

[PATCH] D124996: [clang][preprocessor] Fix unsigned-ness of utf8 char literals

2022-05-05 Thread Tom Honermann via Phabricator via cfe-commits
tahonermann added inline comments. Comment at: clang/lib/Lex/PPExpressions.cpp:413 Val.setIsUnsigned(!TargetInfo::isTypeSigned(TI.getWCharType())); -else if (!Literal.isUTF16() && !Literal.isUTF32()) +else if (!Literal.isUTF8() && !Literal.isUTF16() && !Literal.isU

[PATCH] D124996: [clang][preprocessor] Fix unsigned-ness of utf8 char literals

2022-05-05 Thread Tom Honermann via Phabricator via cfe-commits
tahonermann requested changes to this revision. tahonermann added a comment. This revision now requires changes to proceed. I think changes are needed to make this behavior dependent on whether `char8_t` support is active or not. Comment at: clang/lib/Lex/PPExpressions.cpp:413

[PATCH] D124996: [clang][preprocessor] Fix unsigned-ness of utf8 char literals

2022-05-05 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 427289. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D124996/new/ https://reviews.llvm.org/D124996 Files: clang/docs/ReleaseNotes.rst clang/lib/Lex/PPExpressions.cpp clang/test/Lexer/utf8-char-literal.cpp Index: clang/test/Lexer/utf8-char-lit

[PATCH] D124996: [clang][preprocessor] Fix unsigned-ness of utf8 char literals

2022-05-05 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 427283. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D124996/new/ https://reviews.llvm.org/D124996 Files: clang/docs/ReleaseNotes.rst clang/lib/Lex/PPExpressions.cpp clang/test/Lexer/utf8-char-literal.cpp Index: clang/test/Lexer/utf8-char-lit

[PATCH] D124996: [clang][preprocessor] Fix unsigned-ness of utf8 char literals

2022-05-05 Thread Aaron Ballman via Phabricator via cfe-commits
aaron.ballman accepted this revision. aaron.ballman added a comment. This revision is now accepted and ready to land. Presuming precommit CI comes back green, this LGTM! Can you also add a release note for the bug fix when landing, please? CHANGES SINCE LAST ACTION https://reviews.llvm.org/D1

[PATCH] D124996: [clang][preprocessor] Fix unsigned-ness of utf8 char literals

2022-05-05 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 427267. tbaeder marked 2 inline comments as done. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D124996/new/ https://reviews.llvm.org/D124996 Files: clang/lib/Lex/PPExpressions.cpp clang/test/Lexer/utf8-char-literal.cpp Index: clang/test/Lexer/u

[PATCH] D124996: [clang][preprocessor] Fix unsigned-ness of utf8 char literals

2022-05-05 Thread Aaron Ballman via Phabricator via cfe-commits
aaron.ballman added inline comments. Comment at: clang/test/Lexer/utf8-char-literal.cpp:16 char f = u8'ab'; // expected-error {{Unicode character literals may not contain multiple characters}} #elif __STDC_VERSION__ > 202000L char a = u8'ñ'; // expected-error {{character

[PATCH] D124996: [clang][preprocessor] Fix unsigned-ness of utf8 char literals

2022-05-05 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder created this revision. tbaeder added reviewers: aaron.ballman, tahonermann. Herald added a project: All. tbaeder requested review of this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits. UTF8 char literals are always unsigned. Fixes https://github.com/llvm/