>>803
>これは_obstack_newchunkが値を返さないから0を置いてるって事なのかな?

他にどう解釈しろと?
試しに以下のコードをコンパイルしてみたら、
やっぱり通らなかった(Visual C++ 2008上で C2120 エラーが出る)。

void f(void) {}
int main(void) {int a = 1 ? f() : 2; return a;}

・・・でも、上のコードを

void f(void) {}
int main(void) {return 1 ? f() : 2;}

とすると、すんなり通ってしまったようだ。(警告レベル /W3)
警告レベルを /W4 にすると以下のような警告は出るけど、エラー扱いではないらしい。

 warning C4053: '?:' 演算に void 型の式がオペランドとして使われています。

で、調べてみたら、http://msdn.microsoft.com/ja-jp/library/1e8z2ake(v=vs.90).aspx に、

 ?: 演算子には void 型の式が指定されています。void 型のオペランドの値は未定義です。

と書いてある。
つまり、"1 ? f() : 2" は未定義だが、エラーではないって事? 本当? 何故?
誰か偉い人、理由を教えてください。