diff options
-rw-r--r-- | engines/tsage/saveload.h | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/engines/tsage/saveload.h b/engines/tsage/saveload.h index 83661b8f15..945d144ae5 100644 --- a/engines/tsage/saveload.h +++ b/engines/tsage/saveload.h @@ -51,7 +51,13 @@ struct tSageSavegameHeader { /*--------------------------------------------------------------------------*/ -#define SYNC_POINTER(x) s.syncPointer((SavedObject **)&x) +// FIXME: workaround to supress spurious strict-alias warnings on older GCC +// versions. this should be resolved with the savegame rewrite +#define SYNC_POINTER(x) do { \ + SavedObject *y = (SavedObject *)x; \ + s.syncPointer(&y); \ +} while (false) + #define SYNC_ENUM(FIELD, TYPE) int v_##FIELD = (int)FIELD; s.syncAsUint16LE(v_##FIELD); \ if (s.isLoading()) FIELD = (TYPE)v_##FIELD; |