Index: src/IceDefs.h |
diff --git a/src/IceDefs.h b/src/IceDefs.h |
index 55e09acb8681ba438b6cf6ad214a5f101b62c0c3..2f945f82513d5d00793922dd4594e3de2964466a 100644 |
--- a/src/IceDefs.h |
+++ b/src/IceDefs.h |
@@ -129,8 +129,14 @@ typedef uint32_t TimerIdT; |
enum { MaxCacheLineSize = 64 }; |
// Use ICE_CACHELINE_BOUNDARY to force the next field in a declaration |
// list to be aligned to the next cache line. |
+#define TOKENPASTE(x, y) x##y |
+#define TOKENPASTE2(x, y) TOKENPASTE(x, y) |
#define ICE_CACHELINE_BOUNDARY \ |
- alignas(MaxCacheLineSize) struct {} |
+ void TOKENPASTE2(FakeUsage, __LINE__)() { \ |
+ (void) TOKENPASTE2(Boundary, __LINE__); \ |
+ } \ |
+ alignas(MaxCacheLineSize) struct TOKENPASTE2(FakeType, __LINE__) { \ |
+ } TOKENPASTE2(Boundary, __LINE__) |
JF
2015/01/28 01:28:45
You don't need the fake usage as long as you insta
Jim Stichnoth
2015/01/28 03:26:37
Done.
JF
2015/01/28 07:14:45
Richard makes a good point that you can wrap each
Jim Stichnoth
2015/01/28 15:39:18
Yeah, that is pretty nice and clear. Except is th
|
// PNaCl is ILP32, so theoretically we should only need 32-bit offsets. |
typedef int32_t RelocOffsetT; |