Besides failing to issue a warning about the comment, the compiler also failed to notice that "b" was used before set. (Lint would have warned about that.) So you gave the compiler two chances, and it blew them both.