https://gcc.gnu.org/bugzilla/show_bug.cgi?id=41809
Martin Sebor <msebor at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |msebor at gcc dot gnu.org --- Comment #7 from Martin Sebor <msebor at gcc dot gnu.org> --- Starting with version 9 GCC diagnoses both calls in the test case in comment #0 (the test case with #pragma pack in comment #3 is not diagnosed): $ cat pr41809.c && gcc -O2 -S -Wall pr41809.c void f(int *); struct s { int x; char c; } __attribute__((__packed__)); struct s A[10]; int main(void) { for (int i = 0; i != sizeof(A)/sizeof(A[0]); ++i) { f(&A[i].x); f((int*)(char*)&A[i].x); } } pr41809.c: In function ‘main’: pr41809.c:13:11: warning: taking address of packed member of ‘struct s’ may result in an unaligned pointer value [-Waddress-of-packed-member] 13 | f(&A[i].x); | ^~~~~~~ pr41809.c:14:11: warning: taking address of packed member of ‘struct s’ may result in an unaligned pointer value [-Waddress-of-packed-member] 14 | f((int*)(char*)&A[i].x); | ^~~~~~~~~~~~~~~~~~~~