Porting to GCC 8

The GCC 8 release series differs from previous GCC releases in a number of ways. Some of these are a result of bug fixing, and some old behaviors have been intentionally changed to support new standards, or relaxed in standards-conforming ways to facilitate compilation or run-time performance.

Some of these changes are user visible and can cause grief when porting to GCC 8. This document is an effort to identify common issues and provide solutions. Let us know if you have suggestions for improvements!

Preprocessor issues

C language issues

C++ language issues