If so, then it's a compiler bug, and I figured it out because the compiler did what I naively expected, rather than what the standard said.