Re-commit r208025, reverted in r208030, with a fix for a conformance issue
which GCC detects and Clang does not!