193f32da079874f70857af42eb9be382f307d4f1eChandler Carruth// RUN: %clang_cc1 -verify %s
293f32da079874f70857af42eb9be382f307d4f1eChandler Carruth// RUN: %clang_cc1 -std=c++11 -verify %s
393f32da079874f70857af42eb9be382f307d4f1eChandler Carruth// RUN: %clang_cc1 -std=c++1y -verify %s
493f32da079874f70857af42eb9be382f307d4f1eChandler Carruth
593f32da079874f70857af42eb9be382f307d4f1eChandler Carruthvoid div() {
693f32da079874f70857af42eb9be382f307d4f1eChandler Carruth  (void)(42 / 0); // expected-warning{{division by zero is undefined}}
793f32da079874f70857af42eb9be382f307d4f1eChandler Carruth  (void)(42 / false); // expected-warning{{division by zero is undefined}}
893f32da079874f70857af42eb9be382f307d4f1eChandler Carruth  (void)(42 / !1); // expected-warning{{division by zero is undefined}}
993f32da079874f70857af42eb9be382f307d4f1eChandler Carruth  (void)(42 / (1 - 1)); // expected-warning{{division by zero is undefined}}
1093f32da079874f70857af42eb9be382f307d4f1eChandler Carruth  (void)(42 / !(1 + 1)); // expected-warning{{division by zero is undefined}}
1193f32da079874f70857af42eb9be382f307d4f1eChandler Carruth  (void)(42 / (int)(0.0)); // expected-warning{{division by zero is undefined}}
1293f32da079874f70857af42eb9be382f307d4f1eChandler Carruth}
1393f32da079874f70857af42eb9be382f307d4f1eChandler Carruth
1493f32da079874f70857af42eb9be382f307d4f1eChandler Carruthvoid rem() {
1593f32da079874f70857af42eb9be382f307d4f1eChandler Carruth  (void)(42 % 0); // expected-warning{{remainder by zero is undefined}}
1693f32da079874f70857af42eb9be382f307d4f1eChandler Carruth  (void)(42 % false); // expected-warning{{remainder by zero is undefined}}
1793f32da079874f70857af42eb9be382f307d4f1eChandler Carruth  (void)(42 % !1); // expected-warning{{remainder by zero is undefined}}
1893f32da079874f70857af42eb9be382f307d4f1eChandler Carruth  (void)(42 % (1 - 1)); // expected-warning{{remainder by zero is undefined}}
1993f32da079874f70857af42eb9be382f307d4f1eChandler Carruth  (void)(42 % !(1 + 1)); // expected-warning{{remainder by zero is undefined}}
2093f32da079874f70857af42eb9be382f307d4f1eChandler Carruth  (void)(42 % (int)(0.0)); // expected-warning{{remainder by zero is undefined}}
2193f32da079874f70857af42eb9be382f307d4f1eChandler Carruth}
22