aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarkus Trippelsdorf <markus@trippelsdorf.de>2014-09-19 14:44:09 +0000
committerMarkus Trippelsdorf <trippels@gcc.gnu.org>2014-09-19 14:44:09 +0000
commit4cd5658b606e4a72cdc64387e5b6bf808ba5d81d (patch)
tree8187b8113b0dd373ea44265c8afdac049cbe039a
parent5fd4bc96306dccae16acb28c38ab63f213555c04 (diff)
downloadgcc-4cd5658b606e4a72cdc64387e5b6bf808ba5d81d.zip
gcc-4cd5658b606e4a72cdc64387e5b6bf808ba5d81d.tar.gz
gcc-4cd5658b606e4a72cdc64387e5b6bf808ba5d81d.tar.bz2
PR ipa/61998 Fix crash -Wsuggest-final-types crash
-Wsuggest-final-types crashes when used on mininal testcases. Fix by bailing out early when odr_types_ptr is NULL in ipa_devirt() 2014-09-19 Markus Trippelsdorf <markus@trippelsdorf.de> PR ipa/61998 * ipa-devirt.c (ipa_devirt): Bail out if odr_types_ptr is NULL. 2014-09-19 Markus Trippelsdorf <markus@trippelsdorf.de> PR ipa/61998 * g++.dg/warn/Wsuggest-final-2.C: New testcase. From-SVN: r215392
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/ipa-devirt.c3
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/g++.dg/warn/Wsuggest-final-2.C4
4 files changed, 17 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index c2200fc..0dc7b33 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2014-09-19 Markus Trippelsdorf <markus@trippelsdorf.de>
+
+ PR ipa/61998
+ * ipa-devirt.c (ipa_devirt): Bail out if odr_types_ptr is NULL.
+
2014-09-19 James Greenhalgh <james.greenhalgh@arm.com>
* doc/md.texi (Modifiers): Consistently use "read/write"
diff --git a/gcc/ipa-devirt.c b/gcc/ipa-devirt.c
index 0a11eb7..61e87e8 100644
--- a/gcc/ipa-devirt.c
+++ b/gcc/ipa-devirt.c
@@ -3952,6 +3952,9 @@ ipa_devirt (void)
int nmultiple = 0, noverwritable = 0, ndevirtualized = 0, nnotdefined = 0;
int nwrong = 0, nok = 0, nexternal = 0, nartificial = 0;
+ if (!odr_types_ptr)
+ return 0;
+
/* We can output -Wsuggest-final-methods and -Wsuggest-final-types warnings.
This is implemented by setting up final_warning_records that are updated
by get_polymorphic_call_targets.
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index b0f2bc8..747aad8 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2014-09-19 Markus Trippelsdorf <markus@trippelsdorf.de>
+
+ PR ipa/61998
+ * g++.dg/warn/Wsuggest-final-2.C: New testcase.
+
2014-09-19 Joost VandeVondele <vondele@gcc.gnu.org>
PR fortran/63152
diff --git a/gcc/testsuite/g++.dg/warn/Wsuggest-final-2.C b/gcc/testsuite/g++.dg/warn/Wsuggest-final-2.C
new file mode 100644
index 0000000..51e466d
--- /dev/null
+++ b/gcc/testsuite/g++.dg/warn/Wsuggest-final-2.C
@@ -0,0 +1,4 @@
+// PR ipa/61998
+// { dg-do compile }
+// { dg-options "-O2 -Wsuggest-final-types" }
+int main () {}