2013-05-01 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/57132
* pt.c (tsubst_copy_and_build, MODOP_EXPR): Increase / decrease
c_inhibit_evaluation_warnings around build_x_modify_expr call.
/testsuite
2013-05-01 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/57132
* g++.dg/warn/Wdiv-by-zero-bogus-2.C: New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198504
138bc75d-0d04-0410-961f-
82ee72b054a4
2013-05-01 Paolo Carlini <paolo.carlini@oracle.com>
+ PR c++/57132
+ * pt.c (tsubst_copy_and_build, MODOP_EXPR): Increase / decrease
+ c_inhibit_evaluation_warnings around build_x_modify_expr call.
+
+2013-05-01 Paolo Carlini <paolo.carlini@oracle.com>
+
PR c++/57092
* semantics.c (finish_decltype_type): Handle instantiated template
non-type arguments.
case MODOP_EXPR:
{
- tree r = build_x_modify_expr
+ tree r;
+
+ ++c_inhibit_evaluation_warnings;
+
+ r = build_x_modify_expr
(EXPR_LOCATION (t),
RECUR (TREE_OPERAND (t, 0)),
TREE_CODE (TREE_OPERAND (t, 1)),
here. */
if (TREE_NO_WARNING (t))
TREE_NO_WARNING (r) = TREE_NO_WARNING (t);
+
+ --c_inhibit_evaluation_warnings;
+
RETURN (r);
}
+2013-05-01 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/57132
+ * g++.dg/warn/Wdiv-by-zero-bogus-2.C: New.
+
2013-05-01 Vladimir Makarov <vmakarov@redhat.com>
PR target/57091
--- /dev/null
+// PR c++/57132
+
+template<unsigned m, unsigned a>
+struct mod
+{
+ static unsigned calc(unsigned x) {
+ unsigned res = a * x;
+ if (m)
+ res %= m;
+ return res;
+ }
+};
+
+int main()
+{
+ mod<3,2>::calc(7);
+ mod<0,2>::calc(7);
+}