http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52583
--- Comment #4 from Ian Lance Taylor <ian at airs dot com> 2012-03-15 16:23:33 UTC --- If you look at the test (libgo/go/log/log_test.go), you'll see that it simply does if useFormat { Printf("hello %d world", 23) } else { Println("hello", 23, "world") } This is calling log.Printf or log.Println. Those both wind up calling log.Output, which uses runtime.Caller to get a stack backtrace to their caller. For some reason that stack backtrace is correctly reporting the filename and line number for the Printf call but is failing to report the filename and line number for the Println call. You can see this in the output, where it says ":0" rather than "log_test.go:56".