aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/testsuite/g++.dg/warn/Wdiv-by-zero-bogus.C
diff options
context:
space:
mode:
Diffstat (limited to 'gcc-4.9/gcc/testsuite/g++.dg/warn/Wdiv-by-zero-bogus.C')
-rw-r--r--gcc-4.9/gcc/testsuite/g++.dg/warn/Wdiv-by-zero-bogus.C30
1 files changed, 30 insertions, 0 deletions
diff --git a/gcc-4.9/gcc/testsuite/g++.dg/warn/Wdiv-by-zero-bogus.C b/gcc-4.9/gcc/testsuite/g++.dg/warn/Wdiv-by-zero-bogus.C
new file mode 100644
index 000000000..2157df30c
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/g++.dg/warn/Wdiv-by-zero-bogus.C
@@ -0,0 +1,30 @@
+// PR c++/52299
+
+template<unsigned x>
+struct test0 {
+ static const unsigned a_
+ = x ? 10 / x : 10;
+};
+
+template<unsigned x>
+struct test1 {
+ static const unsigned a_
+ = !x ? 10 : 10 / x;
+};
+
+template<bool x>
+struct test2 {
+ static const unsigned a_
+ = x ? 10 / x : 10;
+};
+
+template<bool x>
+struct test3 {
+ static const unsigned a_
+ = !x ? 10 : 10 / x;
+};
+
+unsigned i0 = test0<0>::a_;
+unsigned i1 = test1<0>::a_;
+unsigned i2 = test2<false>::a_;
+unsigned i3 = test3<false>::a_;