Doesn't the "#ifdef __STRICT_ANSI__" need to be "#if !defined __GNUC__ || defined __STRICT_ANSI__"? Too bad 'assert' can't warn about its argument having side effects.... We're sort of in a freeze, so I'd wait.