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

    <tr>
        <th>Summary</th>
        <td>
            enable option in clang-format for user defined access modifier
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            enhancement,
            clang-format
      </td>
    </tr>

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

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

<pre>
    For some reason, I want to use macro as access modifier like

```cpp
#ifdef TEST
#define PRIVATE public
#else
#define PRIVATE private
#endif

class A {
PRIVATE:
    int a;
};
```

however it will be formatted as
```cpp
class A {
  PRIVATE : int a;
};
```

Is it possible to add an additional option in clang-format to support user defined access modifier? or replace access modifier as macro directly
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyUUs1unDAQfhpzGWVl7M0CBw6bbFBzq9qo98EeFrfGRh6TKG9fkaVJ1CiVKiFsjT-Pv59BZncORK24vhHXpwKXPMbUfqGUbtHJRlZFH-1z28UEHCeCRMgxCHUL9_CEIUOOsDDBhCZFQAY0hphhitYNjhJ494uEPAl53P4HefnMPG8Vpd1gaYCHu-8PryVLgwsEX7_d_zg-3MG89N6Z11PyTJ9Ck3vE_HZMwbrhPQXjkRmOIKqbS2G7KfQGAABwIQMKvSFEdXrb_1HwvucYn-iRErgMT8576AmGmCbMmSwgf6b9AxV4lSH08X9J3PP6_hyZXe9pjQatBQzr4rKLAT3Eed2AC2A8hvPVheWK5WWeY8prnAkuntq_4xS6g5gg0ezR0IewkbdBsC6Ryf65sK22jW6woLY8NEod5L6Rxdjapjf7WmldqxpRWokSdS8rS9JKsqpwrZJKy7qsZK1KLXfN0NdNJWtblqVSFYm9pAmd33n_OO1iOheOeaH2sK8OuvDYk-eXsVaKwojB0EQhC6WEuhVKvVe_Fq9PRWrXVlf9cmaxl95x5rfm2WVPLQVcnf3ExCGmf7pXLMm3Y84zr6OmOqG6s8vj0u9MnITq1se25WpO8SeZLFT3IouF6l6U_Q4AAP__Lewh7Q">