>Isn't the use of __LINE__ non-portable? The use of __LINE__ is portable to all ANSI C implementations, and to many non-ANSI C implementations (including most, if not all, UNIX ones).