On 24.07.24 08:55, Tatsuo Ishii wrote:
origin.c: In function ‘StartupReplicationOrigin’: origin.c:773:16: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 773 | file_crc = *(pg_crc32c *) &disk_state; | ^~~~~~~~~~~~~~~~~~~~~~~~~
I am not so sure about StartupReplicationOrigin. Should we fix it now? For me the code looks sane as long as we keep -fno-strict-aliasing option. Or maybe better to fix so that someday we could remove the compiler option?
This is basically the textbook example of aliasing violation, isn't it? Wouldn't it be just as simple to do
memcpy(&file_crc, &disk_state, sizeof(file_crc));