Support for GCC and CLANG