https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110464
Bug ID: 110464 Summary: Improve -Wdiv-by-zero Product: gcc Version: 14.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: mpolacek at gcc dot gnu.org Target Milestone: --- int f0 () { constexpr int e = 0; if (e != 0) return 10 / e; // { dg-bogus "division" } return 0; } int f1 () { constexpr int e = 0; goto foo; if (e != 0) foo: return 10 / e; // { dg-warning "division" } return 0; } int f2 () { constexpr int e = 0; switch (e) { case 0: return 10 / e; // { dg-warning "division" } default: return 0; } } int f3 () { constexpr int e = 0; switch (e) { case 1: return 10 / e; // { dg-bogus "division" } default: return 0; } } $ xclang++ -c u.C u.C:17:15: warning: division by zero is undefined [-Wdivision-by-zero] 17 | return 10 / e; // { dg-warning "division" } | ^ ~ u.C:28:17: warning: division by zero is undefined [-Wdivision-by-zero] 28 | return 10 / e; // { dg-warning "division" } | ^ ~ 2 warnings generated. $ xg++ -c u.C u.C: In function ‘int f0()’: u.C:6:15: warning: division by zero [-Wdiv-by-zero] 6 | return 10 / e; // { dg-bogus "division" } | ~~~^~~ u.C: In function ‘int f1()’: u.C:17:15: warning: division by zero [-Wdiv-by-zero] 17 | return 10 / e; // { dg-warning "division" } | ~~~^~~ u.C: In function ‘int f2()’: u.C:28:17: warning: division by zero [-Wdiv-by-zero] 28 | return 10 / e; // { dg-warning "division" } | ~~~^~~ u.C: In function ‘int f3()’: u.C:41:17: warning: division by zero [-Wdiv-by-zero] 41 | return 10 / e; // { dg-bogus "division" } | ~~~^~~