It's mentioned that '__attribute__' is allowed, does this cover the 'cleanup' attribute, supported by both clang and gcc? and about extensions, it's said "avoid using", is that a hard rule? what about extensions that are supported by many C compilers, ex. 'typeof'?