Modify ALLOW_UNUSED to allow enabling unused local warnings on MSVC.
This splits the macro into two:
int a = 1;
ALLOW_UNUSED_LOCAL(a);
and
typedef Foo Bar ALLOW_UNUSED_TYPE;
void foo() ALLOW_UNUSED_TYPE; // ALLOW_UNUSED_TYPE_OR_FUNC seemed too verbose
This matches changes that have already been made in Blink.
BUG=81439
TEST=none
TBR=ben
Review URL: https://codereview.chromium.org/650393002
Cr-Commit-Position: refs/heads/master@{#300014}
diff --git a/base/compiler_specific.h b/base/compiler_specific.h
index ba57cc3..6210d1a 100644
--- a/base/compiler_specific.h
+++ b/base/compiler_specific.h
@@ -94,11 +94,17 @@
// (Typically used to silence a compiler warning when the assignment
// is important for some other reason.)
// Use like:
-// int x ALLOW_UNUSED = ...;
+// int x = ...;
+// ALLOW_UNUSED_LOCAL(x);
+#define ALLOW_UNUSED_LOCAL(x) false ? (void)x : (void)0
+
+// Annotate a typedef or function indicating it's ok if it's not used.
+// Use like:
+// typedef Foo Bar ALLOW_UNUSED_TYPE;
#if defined(COMPILER_GCC)
-#define ALLOW_UNUSED __attribute__((unused))
+#define ALLOW_UNUSED_TYPE __attribute__((unused))
#else
-#define ALLOW_UNUSED
+#define ALLOW_UNUSED_TYPE
#endif
// Annotate a function indicating it should not be inlined.