<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/59035>59035</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            [`clang-format-15`][C/C++] Nested Empty Braces Mis-formatting
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          Jacobfaib
      </td>
    </tr>
</table>

<pre>
    Given
```c
// tmp.cpp
void foo()
{
  {
    {
      int x = 1;
    }
  }
  {
    int x = 1;
  }
}
```
What I expected ✅:
```c
$ clang-format tmp.cpp
void foo()
{
  {
    {
      int x = 1;
    }
  }
  {
    int x = 1;
  }
}
```
What I got ❌:
```c
$ clang-format tmp.cpp
void foo()
{
  {{int x = 1;
}
}
{
  int x = 1;
}
}
```

Version Info:
-------------
```sh
$ clang-format --version
Homebrew clang-format version 15.0.4
```
`clang-format` config
-----------------------
```
Language:        Cpp
AccessModifierOffset: -2
AlignAfterOpenBracket: Align
AlignArrayOfStructures: Left
AlignConsecutiveMacros: Consecutive
AlignConsecutiveAssignments: Consecutive
AlignConsecutiveBitFields: Consecutive
AlignConsecutiveDeclarations: Consecutive
AlignEscapedNewlines: DontAlign
AlignOperands: AlignAfterOperator
AlignTrailingComments: true
AllowAllArgumentsOnNextLine: true
AllowAllConstructorInitializersOnNextLine: true
AllowAllParametersOfDeclarationOnNextLine: true
AllowShortEnumsOnASingleLine: false
AllowShortBlocksOnASingleLine: Always
AllowShortCaseLabelsOnASingleLine: false
AllowShortFunctionsOnASingleLine: Inline
AllowShortLambdasOnASingleLine: All
AllowShortIfStatementsOnASingleLine: AllIfsAndElse
AllowShortLoopsOnASingleLine: true
AlwaysBreakAfterDefinitionReturnType: None
AlwaysBreakAfterReturnType: None
AlwaysBreakBeforeMultilineStrings: false
AlwaysBreakTemplateDeclarations: Yes
BinPackArguments: true
BinPackParameters: true
BreakBeforeBraces: Custom
BraceWrapping:
  AfterCaseLabel:  false
  AfterClass:      true
  AfterControlStatement: Never
  AfterEnum:       false
  AfterFunction:   true
  AfterNamespace:  true
  AfterObjCDeclaration: false
  AfterStruct:     true
  AfterUnion:      true
  AfterExternBlock: false
  BeforeCatch:     false
  BeforeElse:      false
  BeforeLambdaBody: false
  BeforeWhile:     false
  IndentBraces:    false
  SplitEmptyFunction: true
  SplitEmptyRecord: false
  SplitEmptyNamespace: true
BreakBeforeBinaryOperators: None
# BreakBeforeConceptDeclarations: Allowed
BreakBeforeInheritanceComma: false
BreakInheritanceList: AfterColon
BreakBeforeTernaryOperators: true
BreakConstructorInitializersBeforeComma: false
BreakConstructorInitializers: AfterColon
BreakAfterJavaFieldAnnotations: false
BreakStringLiterals: true
ColumnLimit: 110
CompactNamespaces: false
ConstructorInitializerAllOnOneLineOrOnePerLine: false
ConstructorInitializerIndentWidth: 2
ContinuationIndentWidth: 2
Cpp11BracedListStyle: true
DeriveLineEnding: true
DerivePointerAlignment: false
DisableFormat: false
EmptyLineAfterAccessModifier: Never
EmptyLineBeforeAccessModifier: LogicalBlock
ExperimentalAutoDetectBinPacking: false
FixNamespaceComments: true
IncludeBlocks: Preserve
IncludeIsMainSourceRegex: ''
IndentAccessModifiers: false
IndentCaseLabels: false
IndentCaseBlocks: false
IndentGotoLabels: true
IndentPPDirectives: BeforeHash
IndentExternBlock: NoIndent
IndentRequires: false
IndentWidth: 2
IndentWrappedFunctionNames: false
InsertTrailingCommas: None
KeepEmptyLinesAtTheStartOfBlocks: false
LambdaBodyIndentation: Signature
MacroBlockBegin: ''
MacroBlockEnd:   ''
MaxEmptyLinesToKeep: 1
NamespaceIndentation: None
PackConstructorInitializers: NextLine
PenaltyBreakAssignment: 1000000
PenaltyBreakBeforeFirstCallParameter: 1000000
PenaltyBreakComment: 300000
PenaltyBreakFirstLessLess: 120
PenaltyBreakString: 1000
PenaltyBreakTemplateDeclaration: 10
PenaltyExcessCharacter: 0
PenaltyReturnTypeOnItsOwnLine: 1000000
PenaltyIndentedWhitespace: 0
PointerAlignment: Right
PPIndentWidth: -1
ReferenceAlignment: Pointer
ReflowComments: false
ShortNamespaceLines: 0
SortIncludes: Never
SortUsingDeclarations: false
SpaceAfterCStyleCast: false
SpaceAfterLogicalNot: false
SpaceAfterTemplateKeyword: true
SpaceBeforeAssignmentOperators: true
SpaceBeforeCaseColon: false
SpaceBeforeCpp11BracedList: false
SpaceBeforeCtorInitializerColon: true
SpaceBeforeInheritanceColon: true
SpaceBeforeParens: ControlStatementsExceptControlMacros
SpaceAroundPointerQualifiers: Default
SpaceBeforeRangeBasedForLoopColon: true
SpaceInEmptyBlock: true
SpaceInEmptyParentheses: false
SpacesBeforeTrailingComments: 1
SpacesInAngles: Never
SpacesInConditionalStatement: false
SpacesInContainerLiterals: true
SpacesInCStyleCastParentheses: false
SpacesInLineCommentPrefix:
  Minimum: 1
  Maximum: -1
SpacesInParentheses: false
SpacesInSquareBrackets: false
SpaceBeforeSquareBrackets: false
SeparateDefinitionBlocks: Leave
BitFieldColonSpacing: Both
Standard: Latest
TabWidth: 2
UseCRLF: false
UseTab: Never
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzVWEl34jgQ_jVw8SMPm5DlwIEldDNDEiakp98chV0GdRvJI8kJzK-f0uLdpHOZw_AIAdVXpdpV8o5H58kX-gasN1z0htPezdC-Q_c7WOLbU8f0KkxTu_bGaeTFnPeCu15w73C3M_vF8ypfGz88jzLlnbzeaOH5vVENtijZF52SulkLdPklt8D-_H4gylt5cEohVBB5vYegdz_v3Y17o-klk6-9MCFsP4i5OCL3_974PVfW7kXvbv7f2X0761KzQ8mS7ZMMdavs558gJOXMW7GYFzYNqq8GszxcsHMweLOyLP0rP8JOwHsd5CCeP74aXl1364WurLDgTy_kLKb7Dt0uaml_rlFMRvaAhnnuNc8jMQ1DkPKRRzSmIJ7jWILSuEHg6Ands2mskJYCmwkS_rQAQ6hihCDn53irRBaqTIDUoDXEqoKZcyYhzBR2iEcSCm4wlcVu6FRKXDgCU5_Dz6haUkiiz6EXgG4WRGE4PmB4kCFJIXqC94Qya9uCM9V0AvpIEGZ3rnkON-CiAnwVhKKk_ZwfC8PQc8WWCX_Hj6nYZ4b8zJ7gpNa4dTdQK20cz8WKUUVJQv_BFPsV2wYNP4LSyLjihw_Ztgcu1APLjih9ukUTEsiRMUlkCzpLePizjZ0m7-Qsm-A5kbAmO0g-KXyZsdBErgVfMR2oJn5NjruIdGmTNKErTGWiwLm_jV_Fcsqihw6l1pynbZaqG7XpMwHkp0mPBcRUB42zF8DKYa_n1HA8cXaB4xO4GWDfgMcsUTrPAMsStZEtRxb4VzimCdrbLIe_wAUJ2_EGi79IybpNjlomVINcqqRbiC2geSYVP-YAXP0uSJqimkUD9jxjbpEVpoFV9M_pCZGyaG7lrjkZC1XwpAin8RlgC66hdEqXDbK9SZ5qFtPa5AntlikaYegt8vPux7zi2kYcHMj2zlyJloxvrNi-i_xwwg9myq0l3rp-TlR4yAV00E0y5_I76LZ6ZjjkXdjg-4Em0LnBikXo-TL2Tfo2Tah6OKbqXPVz1cYS8QIhF1FLhRJQi0V3ElJGxDnvy7JeRb1g5FWwmD4hpKpZGKbeIWqJXrEDCKoIMunmThp6GmQFs6bSHqc2U5N8bqhIfMWwNrVtWHWh_-cGXFDjAtdFdczib-SNmON1yhhXpT-awm3HWVNkQUpdZxScHdmaHqmx3feH-foRw6aK-DUFdyuMkXjGM8t02meBXzYgOk6NbmabmN9ppExlBAVWUZYZ6y4g0tT3TT5HOoRbdU4a6bbAEL8ZpR5YZLtai7rhOLNqC9yA01B5QSXZJbC0E2CdZjJdSzdRqY9xjQ5XQG0-tLFrvqchSWzvsCx4wxFUq0SSaab4Apt6qFyXd8ZUlFnSUxG07pFmxcIki8BOA5q0wRERxFudvJKPhLItz0QIL7CHk0b2glv9djgdjLoFzSyxmHKUuEgulWmRv3DFS-6qGZq62SyoQH9gBA3d-vUryS8FFtVoyE_cLlchL_B3RkUrz7tTzq3qQxKivE0at7fY0bOqOmKSRov7HSAtskJO1esBJwQi1HPc6ZOy8VsdijNsi3lL9LRvcWaoNxJmsKesGbySjBVhT4E6-VTq9Mq1jqY7WGqRXw0VSqN0an7Q0oqZ1oKBkUSdbV8rLhhmv6F5tWE2yksqJGZPZXj-kMlVg8aMLkCMxDUmtP4zwoIOlO2n-V5tescAZ8E16MNJV878gIjQqV4HlKPlM1vh5PvO8lbaZaKNBUR48KvyyM0xHc3the4PrgI2m0aaD1ykXyAGAXg21jidtAKCp2-101Sy1QzhRbqs8_ua02qrZ3vbbWSjT2rSN4lebp71VeFapj0dTc_HPtLszCXE9dUnfhmSh-13OL-7qabsNgbmmnaRoxfmgApW9zZ7dnfs6iD14-sDYL2SCrGdG9dmn4-AWDtQXLdrw7nUGZoqt-yeElR8JnjGIpcLf2SoVHEC4DWK4HWntdcLYXuYoUsiPEf13eySaitm2k_RsLvJRnV1wMOrMzXczNV1v_ersBWb6tthKwUdEe2PzJWQ1O8tre0MVOGhqWeerlmrgBXp-isLVqbkneZ4TMf0VLmRPeJd9WivSn6xRk752qBh5a832_6dEXst_AntWi7j-DEOUl2wUN6ly4NsDSQfM_JHQyYFtGzXUmdcuaMbvc0iYgtxjQKlS6hXsmuex9-wyl7Wy4YmuIrYRliLB3J9mPg3N3c3gR8Efj-ajKL70T3pK6oSmPTGs8ZTv4E_1nzjBZLmvWCJfzP9Hi9QutRPoE1OevZihbGRjhGn130_E8nkoFSqvWAfve-pOmS7qxCv3cEySd7yf4NU8B840OBPKmWGsQqW4_vhaNw_TGI_8kk82sFwfAujYXBNhnfjeOz7t-NRENzE_cTMSUb78aJPJ8EQbfP9Gw249q9G5DoIbm-C-I7cgR-PetdDOGJ1XOmNr7jY98XE6LDL9hKJCfYjWRKJaXwAuXySKezvk99IyHcxobu-UXhitP0XqijZmA">