When (e.g.) a missing include causes a genreflex warning, viz
Warning: Unused class rule: std::bitset<4>
This causes a non-zero exit code from genreflex (desired), but the generated C++ code is not removed (less so). Since the generated C++ code is legal, this leads to a hysteresis in builds. In other words, the first attempt to build fails, but a subsequent attempt succeeds (although the resulting program may not behave correctly).
- Expand the attached tar file and cd into the directory.
- Execute ./good to see the behavior when there is no warning, and ./bad to see the behavior when a warning is generated.