自分で読めないコードは書かない信念(というほど立派なものではありませんが)あり、今まで遭遇することはありませんでした。
とあるライブラリを使用したときにえらい勢いでワーニングが発生しており、調べたところXcode 4.4になってから「ぶら下がりelse(dangling-else problem)」がワーニング扱いになったようです。
以下のような文言のワーニングが発生しています。
Add explicit braces to avoid dangling else
以下のようなサンプルコードはぶら下がりelseと呼ばれる状態になっています。if ((hoge / 3) == 131)の文にif (hoge % 3)の文がぶら下がっており、更にelse文が続いています。これがNGです。
// !!!ワーニング int hoge = 393; if ((hoge / 3) == 131) if (hoge % 3) hoge = 393; else hoge = 22;
elseがぶら下がっていなければ、ワーニングが発生することはありません。以下のサンプルコードの場合else文に続いていないため、ワーニング扱いにはなりません。
// セーフ。問題なし int hoge = 393; if ((hoge / 3) == 131) if (hoge % 3) hoge = 393;
一番最初のif文にカッコにつけることでワーニングを回避することが可能です。
// セーフ。問題なし int hoge = 393; if ((hoge / 3) == 131) { if (hoge % 3) hoge = 393; else hoge = 22; }