Line numbers get wrong
Imported from http://bugzilla.roxen.com/bugzilla/show_bug.cgi?id=996
Reported by Martin Stjernholm mast@roxen.com
The backtrace produced by the following program complains on line 6, while in reality the error gets thrown from line 9. Altering the text in the argument to either macro, e.g. by inserting a space, makes the backtrace report the correct line.
#define ASSERT(foo) if (!(foo)) error ("Assertion failed: " # foo "\n")
int main() { if (0) { ASSERT (0 == 1); // Line 6 } else { ASSERT (0 == 1); // Line 9 } }