1*67e74705SXin Li // RUN: %clang_cc1 -verify %s
2*67e74705SXin Li // RUN: %clang_cc1 -std=c++11 -verify %s
3*67e74705SXin Li // RUN: %clang_cc1 -std=c++1y -verify %s
4*67e74705SXin Li
div()5*67e74705SXin Li void div() {
6*67e74705SXin Li (void)(42 / 0); // expected-warning{{division by zero is undefined}}
7*67e74705SXin Li (void)(42 / false); // expected-warning{{division by zero is undefined}}
8*67e74705SXin Li (void)(42 / !1); // expected-warning{{division by zero is undefined}}
9*67e74705SXin Li (void)(42 / (1 - 1)); // expected-warning{{division by zero is undefined}}
10*67e74705SXin Li (void)(42 / !(1 + 1)); // expected-warning{{division by zero is undefined}}
11*67e74705SXin Li (void)(42 / (int)(0.0)); // expected-warning{{division by zero is undefined}}
12*67e74705SXin Li }
13*67e74705SXin Li
rem()14*67e74705SXin Li void rem() {
15*67e74705SXin Li (void)(42 % 0); // expected-warning{{remainder by zero is undefined}}
16*67e74705SXin Li (void)(42 % false); // expected-warning{{remainder by zero is undefined}}
17*67e74705SXin Li (void)(42 % !1); // expected-warning{{remainder by zero is undefined}}
18*67e74705SXin Li (void)(42 % (1 - 1)); // expected-warning{{remainder by zero is undefined}}
19*67e74705SXin Li (void)(42 % !(1 + 1)); // expected-warning{{remainder by zero is undefined}}
20*67e74705SXin Li (void)(42 % (int)(0.0)); // expected-warning{{remainder by zero is undefined}}
21*67e74705SXin Li }
22