-std=gnu89

 コードの意味と書き換え方を考えて、コンパイルエラーは出なくしてみました。

 その後でGCCの-stdオプションのデフォルト値の変遷を調べました。(遅い!)
 5.0以前は、-std=gnu89
 5.0以降は、-std=gnu11

 最初に調べて"-std=gnu89"を試すべきでしたね。(笑)