https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115684
Bug ID: 115684 Summary: No warning for pointer and enum field comparison Product: gcc Version: 14.1.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: Hi-Angel at yandex dot ru Target Milestone: --- Comparing an enum field with a pointer produces no warnings (while comparing an int to a pointer produces them). We just had a regression due to this missing check, such code clearly shouldn't have been compiled in the first place (well, with Wfatal of course). # Steps to reproduce (in terms of terminal commands) λ cat test.c #include <stdio.h> int main() { enum { myEnumField }; int a = 0; int *b = &a; if (b == myEnumField) puts("hey"); } λ gcc test.c -o a -g3 -O0 -Wall -Wextra -Wsign-conversion ## Expected A warning, something like: test.c:16:11: warning: comparison between pointer and enum field 16 | if (b == myEnumField) ## Actual No warnings being produced