Almost works. Add -Wall to compile line to see the ensuing chaos.