https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69922
--- Comment #6 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Author: jakub Date: Wed Feb 24 22:01:24 2016 New Revision: 233684 URL: https://gcc.gnu.org/viewcvs?rev=233684&root=gcc&view=rev Log: PR c++/69922 * class.c (build_base_path): Set TREE_NO_WARNING on the null_test. Avoid folding it. * init.c (build_vec_delete_1, build_delete): Don't fold the non-NULL tests. * cp-gimplify.c (cp_fold): For TREE_NO_WARNING comparisons with NULL, unless they are folded into INTEGER_CST, error_mark_node or some comparison with NULL, avoid folding them and use either the original comparison or non-folded comparison of folded arguments. * cp-ubsan.c (cp_ubsan_instrument_vptr): Set TREE_NO_WARNING on the comparison, don't fold the comparison right away. * g++.dg/warn/Wnonnull-compare-6.C: New test. * g++.dg/warn/Wnonnull-compare-7.C: New test. * g++.dg/ubsan/pr69922.C: New test. Added: trunk/gcc/testsuite/g++.dg/ubsan/pr69922.C trunk/gcc/testsuite/g++.dg/warn/Wnonnull-compare-6.C trunk/gcc/testsuite/g++.dg/warn/Wnonnull-compare-7.C Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/class.c trunk/gcc/cp/cp-gimplify.c trunk/gcc/cp/cp-ubsan.c trunk/gcc/cp/init.c trunk/gcc/testsuite/ChangeLog