[Bug c++/110464] New: Improve -Wdiv-by-zero
mpolacek at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Wed Jun 28 18:06:15 GMT 2023
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" }
| ~~~^~~
More information about the Gcc-bugs
mailing list