Minor tweaks for gcc (#24391)
* Fix a consistency check condition
Following error is reported by gcc 8 with debug configuration:
> error: enum constant in boolean context [-Werror=int-in-bool-context]
* Apply -Wno-register only to CXX flags
gcc 8 errors out like this:
```
[ 96%] Building C object src/ilasm/CMakeFiles/ilasm.dir/__/__/version.c.o
cc1: error: command line option -Wno-register is valid for C++/ObjC++ but not for C [-Werror]
cc1: all warnings being treated as errors
src/ilasm/CMakeFiles/ilasm.dir/build.make:254: recipe for target 'src/ilasm/CMakeFiles/ilasm.dir/__/__/version.c.o' failed
make[2]: *** [src/ilasm/CMakeFiles/ilasm.dir/__/__/version.c.o] Error 1
CMakeFiles/Makefile2:5710: recipe for target 'src/ilasm/CMakeFiles/ilasm.dir/all' failed
make[1]: *** [src/ilasm/CMakeFiles/ilasm.dir/all] Error 2
```
* Remove extra parantheses from variable declaration
gcc 8 reports:
> error: unnecessary parentheses in declaration of m_HashedModules [-Werror=parentheses]
* Use macro instead of const in C
gcc throws:
> error: variably modified collatorsPerOption at file scope
UCollator* collatorsPerOption[CompareOptionsMask + 1];
* Cast to uintptr_t before (32-bit) DWORD
gcc error was:
> error: cast from LPCWSTR {aka const char16_t*} to DWORD {aka unsigned int} loses precision [-fpermissive]