diff --git i/src/backend/access/common/tidstore.c w/src/backend/access/common/tidstore.c
index e1a7e824690..0fd0587eaf7 100644
--- i/src/backend/access/common/tidstore.c
+++ w/src/backend/access/common/tidstore.c
@@ -303,8 +303,12 @@ void
 TidStoreSetBlockOffsets(TidStore *ts, BlockNumber blkno, OffsetNumber *offsets,
 						int num_offsets)
 {
-	char		data[MaxBlocktableEntrySize];
-	BlocktableEntry *page = (BlocktableEntry *) data;
+	union
+	{
+		char		data[MaxBlocktableEntrySize];
+		BlocktableEntry force_align_entry;
+	} data;
+	BlocktableEntry *page = (BlocktableEntry *) data.data;
 	bitmapword	word;
 	int			wordnum;
 	int			next_word_threshold;
