https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79215
Bug ID: 79215
Summary: -Wpedantic doesn't warn if UINT64_MAX is used as enum
constant
Product: gcc
Version: 5.3.1
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c
Assignee: unassigned at gcc dot gnu.org
Reporter: wellnhofer at aevum dot de
Target Milestone: ---
When compliling the program
#include <stdint.h>
enum e {
v = UINT64_MAX
};
with -Wpedantic, no warning is emitted. When I change UINT64_MAX to
18446744073709551615ULL, I get
warning: ISO C restricts enumerator values to range of ‘int’ [-Wpedantic]
as expected. It looks like the reason is the preprocessor output
enum e {
v =
# 4 "test.c" 3 4
(18446744073709551615ULL)
# 5 "test.c"
According to the documentation, the '3' flag "indicates that the following text
comes from a system header file, so certain warnings should be suppressed."