Add explicit option enum value __MAX_VALUE (#7547)
authorGereon Kremer <nafur42@gmail.com>
Mon, 1 Nov 2021 22:28:54 +0000 (15:28 -0700)
committerGitHub <noreply@github.com>
Mon, 1 Nov 2021 22:28:54 +0000 (22:28 +0000)
commit3243a93ed9ae38f7789f857b0f8f9cc160139620
tree7af929b80e21eee716aeb9032f7aaddb280af320
parent9cae42243a4c0be14fd72f5379ee4eb9f4bc88e9
Add explicit option enum value __MAX_VALUE (#7547)

This PR fixes a subtle issue with the dict ordering changing across different python versions.
To store the flags of -o, we store a bitset with the index being the enum value cast to size_t. To specify the bitset size, we simply used the last enum value (in the toml file). This, however, assumes that the order within dictionaries is stable: toml simply puts all modes in a python dict.
This PR avoids this issue by introducing an explicit __MAX_VALUE enum value. Note that this also avoids the need to update the bitset definition when new output tags are added.
src/options/base_options.toml
src/options/mkoptions.py