GCC wards NetBSD ships GCC 2.95 and 3.3, depending on version GCC 3.4 and later are stricter, many GNUisms removed label at end of compound statement no implicit template references added (C++) kill nested extern declarations %ebx is an invalid operation for inline assembly in PIC stricter checks for prototype matches lvalue casts prohibited in C++, with 4.0 also in C new (foo *)[2] is not valid C++ __FUNCTION__ was treated as string literal before, now it is working like a variable typedef enum {} foo != enum foo {}