https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77299
--- Comment #8 from Jonathan Wakely <redi at gcc dot gnu.org> --- This has regression repeatedly. GCC 5 warned about all the unused statements: unused.C: In function 'int main()': unused.C:5:12: warning: statement has no effect [-Wunused-value] INT64_MIN; // no warning ^ unused.C:6:12: warning: statement has no effect [-Wunused-value] INT64_MIN; // no warning ^ unused.C:7:12: warning: statement has no effect [-Wunused-value] INT64_MAX; // -Wunused-value ^ unused.C:8:12: warning: statement has no effect [-Wunused-value] INT64_MAX; // -Wunused-value ^ unused.C:9:4: warning: statement has no effect [-Wunused-value] 1; // -Wunused-value ^ unused.C:10:4: warning: statement has no effect [-Wunused-value] 0; // -Wunused-value ^ unused.C:11:16: warning: statement has no effect [-Wunused-value] INT64_MIN + 0; // -Wunused-value ^ GCC 6 lost the first two warnings: unused.C: In function 'int main()': unused.C:7:12: warning: statement has no effect [-Wunused-value] INT64_MAX; // -Wunused-value ^ unused.C:8:12: warning: statement has no effect [-Wunused-value] INT64_MAX; // -Wunused-value ^ unused.C:9:4: warning: statement has no effect [-Wunused-value] 1; // -Wunused-value ^ unused.C:10:4: warning: statement has no effect [-Wunused-value] 0; // -Wunused-value ^ unused.C:11:13: warning: statement has no effect [-Wunused-value] INT64_MIN + 0; // -Wunused-value ^ Then GCC 9 lost the next two: unused.C: In function 'int main()': unused.C:9:3: warning: statement has no effect [-Wunused-value] 9 | 1; // -Wunused-value | ^ unused.C:10:3: warning: statement has no effect [-Wunused-value] 10 | 0; // -Wunused-value | ^ unused.C:11:13: warning: statement has no effect [-Wunused-value] 11 | INT64_MIN + 0; // -Wunused-value | ^