For some reason, my installation of gcc seems to be printing an \"a with a carat\" character in place of all %s\'s in its error messages, e.g.,
test.c:4: err
Aha! The problem was that I have LANG=en_US.UTF-8 and was using xterm. Apparently, that's no good. By setting LANG=C or LANG=en_US, everything's great now.