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

    <tr>
        <th>Summary</th>
        <td>
            clang-format: Incorrect indentation of enums
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

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

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

<pre>
    I have the following source file:

```c
#pragma once

#include <stdint.h>

#define TAGS                                                      \
 TAG(HARDWARE_GET_BOARD_MODEL, get_board_model, 1)             \
 TAG(HARDWARE_GET_BOARD_REVISION, get_board_revision, 2)       \
 TAG(HARDWARE_GET_BOARD_MAC_ADDRESS, get_board_mac_address, 3) \
 TAG(HARDWARE_GET_BOARD_SERIAL, get_board_serial, 4)           \
 TAG(HARDWARE_GET_ARM_MEMORY, get_arm_memory, 5)               \
 TAG(HARDWARE_GET_VC_MEMORY, get_vc_memory, 6)

typedef union {
 struct {
    } request;
    struct {
        uint32_t board_model;
    } response;
} hardware_get_board_model_buffer;

typedef union {
    struct {
 } request;
    struct {
        uint32_t board_revision;
    } response;
} hardware_get_board_revision_buffer;

typedef union {
 struct {
    } request;
    struct {
        uint8_t board_mac_address[6];
    } response;
} hardware_get_board_mac_address_buffer;

typedef union {
    struct {
    } request;
    struct {
        uint64_t board_serial;
 } response;
} hardware_get_board_serial_buffer;

typedef union {
 struct {
    } request;
    struct {
        uint32_t base_addr;
        uint32_t size;
    } response;
} hardware_get_arm_memory_buffer;

typedef union {
    struct {
 } request;
    struct {
        uint32_t base_addr;
        uint32_t size;
    } response;
} hardware_get_vc_memory_buffer;

// TODO: This is a bit complex
// typedef union {
//     struct {
//     } request;
//     struct {
//         const volatile uint32_t base_addr;
//         const volatile uint32_t size;
//     } response;
// } hardware_get_clocks;

#define TAG(enum, name, id) hardware_##name##_buffer name;
typedef union {
    TAGS
} hardware_tag_buffer;
#undef TAG

#include "../tags.h"

#define TAG(enum, name, id) enum,
typedef enum {
 HARDWARE_TAG_BASE = TAG_KIND_BASE(HARDWARE_TAG),

    TAGS

 HARDWARE_TAG_END
} hardware_tag;
#undef TAG

#define HARDWARE_TAG_COUNT (HARDWARE_TAG_END - HARDWARE_TAG_BASE)

extern const tag_metadata hardware_tag_metadata[HARDWARE_TAG_COUNT];
```

`clang-format` is weirdly indenting the `HARDWARE_TAG_END` after tags, in the `hardware_tag` definition. How do I get this to work?
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzEV99v4jgQ_mvMi1WU2iHAQx4CgS66a5GA7emeIicZiK-JzdlO2d5ff3L4lQS2R7u32ggRGI8_z_fNxJ4wrflGAPioN0K9sMNKk0nlfzUvTOnsGVTBOrFM3_wZztgrYJMBXss8lzsuNljLUiWA1zwHRAPkhMg5fnvO_pMc_hO6VWxTMCxFAg1PQrlI8jIFjOhYm5QL080QnbScUlhzAXgVPCzxpy7UG-_BLAYigy_BIvwjWEyih8kqGs2DRRg9zsPJ74iM8QZMFEum0qiQKeTWdI_I8KN4i8nzbDmbPzUhFbxyzaWwVnJGvSW-YBwFYbiYLJetKFkSsTRVoLUdoBb1BrzlZDELWoQ1KM4qxm6T8bt4weIxepw8zhd_HtGYKqICCqnerKXXVu8_8J7HLbjXpIbmITKsl4d520IKa1wKLgVG_dEBWBtVJqZmsMv2Q6zg7xK0QbRmv-Zrr5ILQ0lkcL0e6AWg3kqh4TRgjRlT6Y4piFrVFMXleg3q7Psuh2uh_SCHUwF-lsYR4GNM_q9sDM7JqJV9b-ShXvj5zJyhfjw_nyTmuSdmh6eQNjN-G5X93F-Tm32VMQ2VmI1pDRfN_4FP5Oq8qfzKh-in0TttctfZITJFZIpX83COaIBXGdeYa8xwzA1OZLHN4VvD8ztyHEavka0NXdPntpn2SqTQBr_KnBmew3vi3TixIelFmG1l9-MXAie5TF70hay15gKRAYiysKeMYAXYO0_t4XXCQYQiQveD9tchV3v3I_I7hWg7mCv5N2xzkXVCS2FRbFzfaZkI6XYRmRq20d0MEfJxYgdrM25rrIV9OptXwUM0CpYTjGhoUaPfZk9hZamf4NVywxPoVe5XgCdP4XVhblHkwLQBOJ5_fVrhVmR2GXx3SanVU8A3A0ocytEmpwDDUmZYM2VHK-qNLpeuH0injrjVJic5E5u7tVQFM8hz7AO9A67S_A1zkYIwttG2bTfynAu1PAeztQFlA6w6Py6Ovg39PAdX-nDDpejiL3KHU4lntrPCxm4jRuKdVC-ITjupT9MhHbIO-Pfe0HHJ4J64nczvpx5Jhk7fHdDYGbBh7PbBY0maDAbDnuMMOtwnDqFOn_QdSojjdiF2Y9Z318Oe67B1nyLXgYLxvJvnr0VXqk2Ha12C77n37n0nZzHkunoRIUTADleDtqR7YUf5ds5dXG40cp2ca6PPKIabHPyGkDTAM5FIpSAxBx2Z5Y7lvrZ1p1S5nxmz1fbNpdouNtxkZdxNZIHI1IIfbndbJf-CxCAyrULSiEyrkP8NAAD__1oQ0JM">