A decade ago, some geniuses at the gcc steering committee decided to switch gcc from a simple C dialect to c++. Now you need at least a c++98 compiler to compile gcc (then linux). It is probably one of the biggest mistakes done in the open software, ever. Why, well we all know the abysmal gap in complexity between simple C and c++.