attr-unused.c revision aec586056d8670c99ba7c4833be13e4eb123cddb
1aec586056d8670c99ba7c4833be13e4eb123cddbJohn McCall// RUN: %clang_cc1 -verify -Wunused-variable -fsyntax-only %s 2d3f2c10f881311831a84114179342ff4db55e0c3Daniel Dunbar 3d3f2c10f881311831a84114179342ff4db55e0c3Daniel Dunbarstatic void (*fp0)(void) __attribute__((unused)); 4d3f2c10f881311831a84114179342ff4db55e0c3Daniel Dunbar 5d3f2c10f881311831a84114179342ff4db55e0c3Daniel Dunbarstatic void __attribute__((unused)) f0(void); 6d3f2c10f881311831a84114179342ff4db55e0c3Daniel Dunbar 7d3f2c10f881311831a84114179342ff4db55e0c3Daniel Dunbar// On K&R 8d3f2c10f881311831a84114179342ff4db55e0c3Daniel Dunbarint f1() __attribute__((unused)); 9d3f2c10f881311831a84114179342ff4db55e0c3Daniel Dunbar 10d3f2c10f881311831a84114179342ff4db55e0c3Daniel Dunbarint g0 __attribute__((unused)); 11d3f2c10f881311831a84114179342ff4db55e0c3Daniel Dunbar 12d3f2c10f881311831a84114179342ff4db55e0c3Daniel Dunbarint f2() __attribute__((unused(1, 2))); // expected-error {{attribute requires 0 argument(s)}} 13aec586056d8670c99ba7c4833be13e4eb123cddbJohn McCall 14aec586056d8670c99ba7c4833be13e4eb123cddbJohn McCallstruct Test0_unused {} __attribute__((unused)); 15aec586056d8670c99ba7c4833be13e4eb123cddbJohn McCallstruct Test0_not_unused {}; 16aec586056d8670c99ba7c4833be13e4eb123cddbJohn McCalltypedef int Int_unused __attribute__((unused)); 17aec586056d8670c99ba7c4833be13e4eb123cddbJohn McCalltypedef int Int_not_unused; 18aec586056d8670c99ba7c4833be13e4eb123cddbJohn McCall 19aec586056d8670c99ba7c4833be13e4eb123cddbJohn McCallvoid test0() { 20aec586056d8670c99ba7c4833be13e4eb123cddbJohn McCall int x; // expected-warning {{unused variable}} 21aec586056d8670c99ba7c4833be13e4eb123cddbJohn McCall 22aec586056d8670c99ba7c4833be13e4eb123cddbJohn McCall Int_not_unused i0; // expected-warning {{unused variable}} 23aec586056d8670c99ba7c4833be13e4eb123cddbJohn McCall Int_unused i1; 24aec586056d8670c99ba7c4833be13e4eb123cddbJohn McCall 25aec586056d8670c99ba7c4833be13e4eb123cddbJohn McCall struct Test0_not_unused s0; // expected-warning {{unused variable}} 26aec586056d8670c99ba7c4833be13e4eb123cddbJohn McCall struct Test0_unused s1; 27aec586056d8670c99ba7c4833be13e4eb123cddbJohn McCall} 28