Cの開発者のためのClangのバージョン2.8と3.1の間の実用的な違いはありますか?

私は排他的にC. Ubunutu 10.10で作業しています。リポジトリからClangのバージョン2.8を取り出し、完全にインストールします。私はソースからClang v 3.1をコンパイルして(Clang 2.8をアンインストールした後に)それをパスに追加しましたが、この方法ではマニュアルページにアクセスできず、完全に "インストール"していないという気がします。いくつかのテストでは完全に機能しているようです。

Cの開発者(学生の実際には)の観点からバージョン2.8と3.1の間には実用的な違いがありますか?私はCで独占的に働いており、C ++や客観的なCの能力を活用しません。私は最近、Clangの開発の大部分がC ++の能力を拡張してきたと信じています。

5
リリースノートを読んで、見つけたものを教えてください。
追加された 著者 John Zwinck,
私は、最適化と警告が(Cの場合でも)改善されたと信じています。同様に、最近のGCCの発展のために。
追加された 著者 Basile Starynkevitch,

1 答え

私が見つけた顕著な違いは、2.8のVLA関数のパラメータがコンパイラのダンプコアになることです。 2.9では、このバグは修正されているようです。

また、clangのこの新しいバージョンは、C11の一部、特に _Generic を既に実装しています。

2
追加された
追加された 著者 Matt Joiner,
@hroptatyr:しかし、多くの拡張機能は欠けています。 ClangはC ++よりはるかに優れています。
追加された 著者 Matt Joiner,
注:clang(3.1)のgcc/iccダンプコアで既に動作するC11の機能の中には、匿名の構造体と共用体の指定された初期化が最も顕著にあります
追加された 著者 hroptatyr,