This also needs `defined __GNUC__`, or other compilers might complain.