By the way, the #line directive can set __FILE__ to any arbitrary string the programmer wants, so it's not exactly reliable.