The C++11 "user-defined literals" feature allows custom suffixes to be added to literals, so that for example "Hello, world!"s creates a std::string object. This means that code relying on string concatenation of string literals and macros might fail to compile, for example using printf("%"PRIu64, uint64_value) is not valid in C++11, because PRIu64 is parsed as a literal suffix. To fix the code to compile in C++11 add whitespace between the string literal and the macro: printf("%" PRIu64, uint64_value).
GCC 6 has new warnings, including
-Wmisleading-indentation
.While reading about user-defined literals, I found that Debian packagers spotted the same problem.
GNU.org has a page on porting to GCC 6: