http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57853
--- Comment #6 from Howard Brodale <brodhow at all2easy dot net> --- "*++arr[0][0]" is not supposed to change the array arr! It is supposed to take the source, change it for later use and leave the source unchanged! That the way pointer arithmetic works. It never has changed the source ever, until now. Where "as" is still supposed to output we get only 's' now.