Minor tweaks for gcc (#24391)
authorAdeel Mujahid <adeelbm@outlook.com>
Sat, 4 May 2019 16:43:35 +0000 (19:43 +0300)
committerJan Kotas <jkotas@microsoft.com>
Sat, 4 May 2019 16:43:35 +0000 (09:43 -0700)
commit068aa8bbb7a3f303c809775561d70c1875149853
tree9f71b65005a52b11979eb676821f0ea72a8b6127
parent329069be40b65ab3b7b6bd626c8bd8d3f818c39d
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]
src/corefx/System.Globalization.Native/pal_collation.c
src/ilasm/CMakeLists.txt
src/md/compiler/mdutil.cpp
src/md/compiler/mdutil.h
src/utilcode/pedecoder.cpp
src/vm/stubgen.cpp