str="Hello"; は
strが文字列リテラルを指してるから、書き換えられない処理系はいろいろある。
"Hello" と "World!"では後者の方が長いから、どっか壊してる。
どっちっが本当の原因かわかんなけけど、たぶんどっちか。