In the non-threaded RTS, make *_barrier functions EXTERN_INLINE, not #define. (fixes...
authorRyan Newton <rrnewton@gmail.com>
Thu, 1 Aug 2013 16:18:16 +0000 (12:18 -0400)
committerRyan Newton <rrnewton@gmail.com>
Wed, 21 Aug 2013 15:29:48 +0000 (11:29 -0400)
includes/stg/SMP.h

index bfd6bbc..99c25fe 100644 (file)
@@ -365,9 +365,12 @@ load_load_barrier(void) {
 /* ---------------------------------------------------------------------- */
 #else /* !THREADED_RTS */
 
-#define write_barrier()      /* nothing */
-#define store_load_barrier() /* nothing */
-#define load_load_barrier()  /* nothing */
+EXTERN_INLINE void write_barrier(void);
+EXTERN_INLINE void store_load_barrier(void);
+EXTERN_INLINE void load_load_barrier(void);
+EXTERN_INLINE void write_barrier     () {} /* nothing */
+EXTERN_INLINE void store_load_barrier() {} /* nothing */
+EXTERN_INLINE void load_load_barrier () {} /* nothing */
 
 #if !IN_STG_CODE || IN_STGCRUN
 INLINE_HEADER StgWord