Jeśli chcesz użyć tego w prawdziwym świecie, spróbuj skompilować bardzo starą wersję X Windows - powiedzmy XFree86 lub XOrg od roku 2004, dokładnie wokół podziału - używając "nowoczesnego" (kaszel) wersja gcc, na przykład 4.9.3.
Zauważysz, że CFLAGS kompilacji określają zarówno "-ansi", jak i "-pedantic". Teoretycznie oznacza to "wysadzenie w powietrze, jeśli coś nawet nieznacznie narusza specyfikację językową". W praktyce gxc z serii 3.x nie przechwycił zbyt wiele tego typu rzeczy, a zbudowanie go w wersji 4.9.3 pozostawia otwór do palenia w gruncie, chyba że ustawisz CFLAGS i BOOTSTRAPCFLAGS na "-firmatywny".
Używając tej flagi, większość z tych plików C zostanie zbudowana, pozostawiając ci swobodę przejścia do zależnego od wersji wraku, który wygeneruje lexer. =]
Coś, co nie jest dozwolone przez standard językowy, może być dobrze zdefiniowane. W rzeczywistości prawie każdy kompilator ma dobrze zdefiniowane rozszerzenia. Nie mówię, że tak jest w przypadku wszystkich instancji zezwalających – MikeMB