今日私は以前開発したプロジェクトでclangを試みました。私はg ++を使ってプロジェクトを正常にコンパイルしていたので、コンパイルエラーが発生したときに驚いていました。このエラーが発生しgで__attribute__を使用しているアンバランスな括弧
int main() {
__attribute__((aligned(16)) char arr[5];
}
:
test.cpp:2:32: error: expected ')'
__attribute__((aligned(16)) char arr[5];
^
)
はあなたが見ることができるように、umbalanced括弧があり
この短いスニペットは、エラーが発生しましたラインを再現します。 3つの '('と2 ')'があります。これは、実際にコンパイルエラーが発生するはずです。
これはこのキーワードの有効な使用方法ですか?私はそれがそうであることを示すthe documentationに何かを見つけるように見えることができません。
私はg ++ 4.5.2とclang 2.8を使用しています。
g ++の代わりにgccを使用すると、このエラーが検出されることに注意してください。
[gcc documentation](http://gcc.gnu.org/onlinedocs/gcc/Variable-Attributes.html)* "キーワード' __attribute__'では、変数や構造体フィールドの特殊属性を指定できます。 *このキーワードの後ろには二重括弧 "***の中の属性指定が続きます。同じ括弧数で閉じることについての明確な明示的な言葉では言いませんが、すべてのgccの例は括弧を一致させるので、バグのようです。 –
はい、実際にはバグのようです。私は反対を示すことができる何かを見つけることができません。 – mfontanini
@DavidRodríguez-dribeas clangがサポートしています。つまり、g ++がそのexpereionを正確に解析していないように見えます。 clangは正しいことをしています(少なくとも私はそう思っています...それが私が求めている理由です:D)ここでエラーを報告してください。 – mfontanini