2016-08-31 4 views
3

-Wallでgcc(5.4.0と6.1.1のテスト済み)を使用すると、auto_refの未使用変数は警告されますが、他の変数は未使用です。 Clangは警告を発しません。自動&の変数の意図との違いは?自動参照用のgccと__attribute __((未使用))

int main() { 
    int __attribute__((unused)) int_var_unused = 42; 
    int int_var = 42; 
    int& __attribute__((unused)) int_ref = int_var; 
    auto __attribute__((unused)) auto_var_unused = 42; 
    auto auto_var = 42; 
    auto& __attribute__((unused)) auto_ref = auto_var; 
    return 0; 
} 

答えて

1

ない、それはGCCのバグだが、それはこの

__attribute__((unused)) auto& auto_ref = auto_var; 

この

auto& auto_ref __attribute__((unused)) = auto_var; 

のように私は属性は型宣言の間に配置されることを意図されることはありません推測するように動作するかどうか確認してくださいと名前。ドキュメントでは、ほとんどの例として2番目のバージョンが表示されています。

関連する問題