私はLLVM4.1に特に興味がありますが、他のコンパイラーの動作にも興味があります。
GCCドキュメント(LLVMが少なくとも部分的にサポートしている)によると、unused
属性の動作は次のとおりです。
This attribute, attached to a variable, means that the variable is meant to be possibly unused. GCC will not produce a warning for this variable.
ただし、コンパイラーが未使用のパラメーターと変数について警告できる場合は、おそらく、ユーザーが通知しなくても、どのパラメーターと変数が未使用であるかを既に認識しているはずです(特に、unused
属性は変数が未使用である可能性があることを示しているだけなので)。したがって、このunused
属性により、コンパイラーは追加の最適化を実行できますか、それともその目的は、より読みやすいコードを可能にすることだけですか?また、unused
属性によってコンパイラーが追加の最適化を実際に実行できる場合、実際に次のように指定されたパラメーターまたは変数を使用するとどうなりますunused
か?LLVM(XCode内)はこのケースについて不満を言っているようには見えませんでしたが、適切な最適化レベルで、または適切な警告を有効にしてコンパイルしていなかった可能性があります。