| |
1 # HG changeset patch |
| |
2 # Parent e378875000890099fffcdb4cbc4ab12828ac34ee |
| |
3 # User Daniel Holbert <dholbert@cs.stanford.edu> |
| |
4 Bug 890539: Annotate SK_COMPILE_ASSERT's typedef as permissibly unused, to fix GCC 4.8 build warning. r=gw280 |
| |
5 |
| |
6 diff --git a/gfx/skia/include/core/SkTypes.h b/gfx/skia/include/core/SkTypes.h |
| |
7 --- a/gfx/skia/include/core/SkTypes.h |
| |
8 +++ b/gfx/skia/include/core/SkTypes.h |
| |
9 @@ -121,18 +121,29 @@ inline void operator delete(void* p) { |
| |
10 #define SkDEVCODE(code) |
| |
11 #define SK_DEVELOPER_TO_STRING() |
| |
12 #endif |
| |
13 |
| |
14 template <bool> |
| |
15 struct SkCompileAssert { |
| |
16 }; |
| |
17 |
| |
18 +/* |
| |
19 + * The SK_COMPILE_ASSERT definition creates an otherwise-unused typedef. This |
| |
20 + * triggers compiler warnings with some versions of gcc, so mark the typedef |
| |
21 + * as permissibly-unused to disable the warnings. |
| |
22 + */ |
| |
23 +# if defined(__GNUC__) |
| |
24 +# define SK_COMPILE_ASSERT_UNUSED_ATTRIBUTE __attribute__((unused)) |
| |
25 +# else |
| |
26 +# define SK_COMPILE_ASSERT_UNUSED_ATTRIBUTE /* nothing */ |
| |
27 +# endif |
| |
28 + |
| |
29 #define SK_COMPILE_ASSERT(expr, msg) \ |
| |
30 - typedef SkCompileAssert<(bool(expr))> msg[bool(expr) ? 1 : -1] |
| |
31 + typedef SkCompileAssert<(bool(expr))> msg[bool(expr) ? 1 : -1] SK_COMPILE_ASSERT_UNUSED_ATTRIBUTE |
| |
32 |
| |
33 /* |
| |
34 * Usage: SK_MACRO_CONCAT(a, b) to construct the symbol ab |
| |
35 * |
| |
36 * SK_MACRO_CONCAT_IMPL_PRIV just exists to make this work. Do not use directly |
| |
37 * |
| |
38 */ |
| |
39 #define SK_MACRO_CONCAT(X, Y) SK_MACRO_CONCAT_IMPL_PRIV(X, Y) |