This seems to be a red herring. When I keep the `-[dealloc]`, but truncate the printed string to 5 characters, it works. As soon as it becomes 6 characters, it crashes. This smells very much like a compiler bug, or a linker bug, where moving around generated code due to changing section sizes makes it fail or work.