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

    <tr>
        <th>Summary</th>
        <td>
            clang-tidy modernize-macro-to-enum confused by `#define FOO (-1)`
        </td>
    </tr>

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

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

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

<pre>
    I tried `modernize-macro-to-enum` on the [vtk](https://gitlab.kitware.com/vtk/vtk) code base.

One suboptimal change was from this:

```
#define VTK_TETRAHEDRALIZE_5 0
#define VTK_TETRAHEDRALIZE_5_FLIP 1
#define VTK_TETRAHEDRALIZE_6 6
#define VTK_TETRAHEDRALIZE_12_CONFORM (-1)
#define VTK_TETRAHEDRALIZE_12_CONFORM_FLIP 2
#define VTK_TETRAHEDRALIZE_12 10
```

to this:

```
enum {
VTK_TETRAHEDRALIZE_5 = 0,
VTK_TETRAHEDRALIZE_5_FLIP = 1,
VTK_TETRAHEDRALIZE_6 = 6
};
#define VTK_TETRAHEDRALIZE_12_CONFORM (-1)
enum {
VTK_TETRAHEDRALIZE_12_CONFORM_FLIP = 2,
VTK_TETRAHEDRALIZE_12 = 10
};
```

It seems the parentheses confuse it?

Interestingly, those parentheses were probably added by [clang-tidy bugprone-macro-parentheses](https://clang.llvm.org/extra/clang-tidy/checks/bugprone-macro-parentheses.html).
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJylVE2P2jAQ_TXOxUrkOF9wyAEWUFG3pVqhHnpBTjIkLomDYmcp_fWdJLDLtrClqhQ5_ngz8_zGM0mdHeMlNY2EjJKQVXUGjZI_wa5E2tS2qW1QbYUntFbUFEBJMH02OxLMCB8Vxuw18SaEL_DLpSlF4uykOYgGnLSucLPDnsYxTdE7TYQGh7AZYZNhXCmguk3qvZGVKGlaCJUDPQhNt01dYVDZx7iwQDqnb1hyL4OtRDdf1x836_n6afJhPnuaPC6_zTcBvQu1WTwuv1D3DmhIwztQLt88rD4vVk-fKAplu3j9f7Ia-PC7bKjLruvSj6a-Q8IuyZRE02F1VUbizVBK_nAbMnDucO57uLCHnEWMZsSb_o-gf6X-u6hddP4eQVS0vwS7QvGawktDNUCl-_rY49tXONGg8b2rbauBSkO8xRsLZaABbaTKyyNSQctav7U9IIDumzoRSXmkIsuwQJNjV35piQViG5kdadLmCFHnar2wv1agvaFTls-VUzc5bsAP04jzQe-xWxSQ7jRObjt3ClOVmADHymIvG3tjYRksfogvqN3oJGdNhsugji85X6xWr5kNmdU2ZfxHgyna5NRYumucfjbS_A6pwaXUuoWOfOCPfM8qYrFlELpREjA3iDI38iBNgjQQ3HV9HoW-hS0LSh2jroRzBQfau8A5KmjJmDPOme8yzjyfB04SBWEgMtf3gI3G-EJ8BpWQ5YuqVhP3lFA8jYel1Ea_HgqtZa4A-nDoX7SY-CbWIFRl9YHjnvgvVC6nZA">