aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Hubicka <hubicka@ucw.cz>2016-04-05 22:58:56 +0200
committerJan Hubicka <hubicka@gcc.gnu.org>2016-04-05 20:58:56 +0000
commit84278ed9e8f6ebef5f72f933171779041b1564b3 (patch)
treeba85ba4e92c048f58a824467116dcdb53acf7068
parentd2aee115cc30f7ef14866ab9dd48c705a61c3f64 (diff)
downloadgcc-84278ed9e8f6ebef5f72f933171779041b1564b3.zip
gcc-84278ed9e8f6ebef5f72f933171779041b1564b3.tar.gz
gcc-84278ed9e8f6ebef5f72f933171779041b1564b3.tar.bz2
re PR ipa/66223 (Diagnostic of pure virtual function call broken, including __cxa_pure_virtual)
PR ipa/66223 * ipa-devirt.c (maybe_record_node): Fix comment; use SANITIZE_UNREACHABLE instead of SANITIZE_UNDEFINED. * g++.dg/ipa/devirt-51.C: Use -fsanitize=unreachable. From-SVN: r234762
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/ipa-devirt.c4
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/g++.dg/ipa/devirt-51.C2
4 files changed, 14 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index df63cc5..e9f5b1e 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2016-04-05 Jan Hubicka <hubicka@ucw.cz>
+
+ PR ipa/66223
+ * ipa-devirt.c (maybe_record_node): Fix comment; use
+ SANITIZE_UNREACHABLE instead of SANITIZE_UNDEFINED.
+
2016-04-05 Jakub Jelinek <jakub@redhat.com>
PR rtl-optimization/70542
diff --git a/gcc/ipa-devirt.c b/gcc/ipa-devirt.c
index 22ece9f..2cf018b 100644
--- a/gcc/ipa-devirt.c
+++ b/gcc/ipa-devirt.c
@@ -2438,9 +2438,9 @@ maybe_record_node (vec <cgraph_node *> &nodes,
{
gcc_assert (!target_node->global.inlined_to);
gcc_assert (target_node->real_symbol_p ());
- /* When sanitizing, do not asume that cxa_pure_virutal is not called
+ /* When sanitizing, do not assume that __cxa_pure_virtual is not called
by valid program. */
- if (flag_sanitize & SANITIZE_UNDEFINED)
+ if (flag_sanitize & SANITIZE_UNREACHABLE)
;
/* Only add pure virtual if it is the only possible target. This way
we will preserve the diagnostics about pure virtual called in many
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index ab6935c..f121683 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2016-04-05 Jan Hubicka <hubicka@ucw.cz>
+
+ PR ipa/66223
+ * g++.dg/ipa/devirt-51.C: Use -fsanitize=unreachable.
+
2016-04-05 Jakub Jelinek <jakub@redhat.com>
PR rtl-optimization/70542
diff --git a/gcc/testsuite/g++.dg/ipa/devirt-51.C b/gcc/testsuite/g++.dg/ipa/devirt-51.C
index fadf9e2..236635a 100644
--- a/gcc/testsuite/g++.dg/ipa/devirt-51.C
+++ b/gcc/testsuite/g++.dg/ipa/devirt-51.C
@@ -2,7 +2,7 @@
variant. Either keeping virtual call or optimizing to cxa_pure_virtual
is fine. */
/* { dg-do compile } */
-/* { dg-options "-O2 -fsanitize=undefined -fdump-tree-optimized" } */
+/* { dg-options "-O2 -fsanitize=unreachable -fdump-tree-optimized" } */
namespace {
struct B {
B* self;