don't use of anonymous unions
remove deprecated register keyword
Merge pull request #1843 from take-cheeze/suppress_warnings

Suppress warnings.