Further fix extended alignment for older g++.

Commit 6ceef9408 was still one brick shy of a load, because it caused
any usage at all of PGIOAlignedBlock or PGAlignedXLogBlock to fail
under older g++.  Notably, this broke "headerscheck --cplusplus".
We can permit references to these structs as abstract structs though;
only actual declaration of such a variable needs to be forbidden.

Discussion: https://www.postgresql.org/message-id/3119480.1769189606@sss.pgh.pa.us
This commit is contained in:
Tom Lane
2026-01-29 16:16:36 -05:00
parent de90bb7db1
commit bd9dfac8b1

View File

@ -1140,6 +1140,12 @@ typedef struct PGAlignedXLogBlock
alignas(PG_IO_ALIGN_SIZE) char data[XLOG_BLCKSZ];
} PGAlignedXLogBlock;
#else /* (g++ < 9) */
/* Allow these types to be used as abstract types when using old g++ */
typedef struct PGIOAlignedBlock PGIOAlignedBlock;
typedef struct PGAlignedXLogBlock PGAlignedXLogBlock;
#endif /* !(g++ < 9) */
/* msb for char */