[clang-format] Disable IntegerLiteralSeparator for C++ before c++14 (#151273)

Fixes #151102
This commit is contained in:
Owen Pan
2025-07-30 09:43:46 -07:00
committed by GitHub
parent c9e2ad7da8
commit 5fc482cfc0
2 changed files with 10 additions and 4 deletions

View File

@@ -45,15 +45,18 @@ std::pair<tooling::Replacements, unsigned>
IntegerLiteralSeparatorFixer::process(const Environment &Env,
const FormatStyle &Style) {
switch (Style.Language) {
case FormatStyle::LK_Cpp:
case FormatStyle::LK_ObjC:
Separator = '\'';
break;
case FormatStyle::LK_CSharp:
case FormatStyle::LK_Java:
case FormatStyle::LK_JavaScript:
Separator = '_';
break;
case FormatStyle::LK_Cpp:
case FormatStyle::LK_ObjC:
if (Style.Standard >= FormatStyle::LS_Cpp14) {
Separator = '\'';
break;
}
[[fallthrough]];
default:
return {};
}

View File

@@ -83,6 +83,9 @@ TEST_F(IntegerLiteralSeparatorTest, SingleQuoteAsSeparator) {
"d = 5678_km;\n"
"h = 0xDEF_u16;",
Style);
Style.Standard = FormatStyle::LS_Cpp11;
verifyFormat("ld = 1234L;", Style);
}
TEST_F(IntegerLiteralSeparatorTest, UnderscoreAsSeparator) {