There have been countless discussions, confusion & bugs around what
DEBUG means/is used for and how it's different from
NDEBUG. The latest one that I saw (and which prompted me to finally do something about it) was #4965 but I expect most of you will recall the various times this came up.
It also causes issue with projects like LLVM and Bellagio which make use of such a common name in their headers, leading to workarounds like including a header, undef'ing DEBUG, and re-including the header, or having to undef DEBUG right before including a specific header. These are fragile (new version of these headers might move the code around) and there's a good chance we might forget to add the workaround in new code including these headers, leading to inconsistent behaviour across build types.
Let's finally pick a better name, which I arbitrarily called
EXPENSIVE_CHECKS. It should be quite easy to rename it to something else, should someone suggest a better name.
This MR focuses on the rename, let's make sure I didn't
sed too much or incorrectly. Fixing code that shouldn't have been using this define is left
as an exercise for the reader for follow up MRs, with a couple of exceptions:
src/gallium/frontends/omx/bellagio/ had special code to handle
DEBUG being used in other project headers, which is no longer relevant so it has been dropped.