At present, the building of ExtensionSubtables.cpp produces a warning:
warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
due to this code:
// read a 32-bit value that might only be 16-bit-aligned in memory
#define READ_LONG(code) (le_uint32)((SWAPW(*(le_uint16*)&code) << 16) + SWAPW(*(((le_uint16*)&code) + 1)))
where code is a le_uint32.
This can be avoided by setting -fno-strict-aliasing, as done in this webrev: