diff options
author | Sergei Trofimovich <slyfox@gentoo.org> | 2018-12-18 22:37:25 +0000 |
---|---|---|
committer | Sergei Trofimovich <slyfox@gentoo.org> | 2018-12-18 22:37:25 +0000 |
commit | 134dc72e3b4e140756f00b65688f084188f59d18 (patch) | |
tree | 81a8c62568c0fd2db3b91d0892fa6d3b826b01cb | |
parent | 7.4.0: fix gcc SIGSEGV on k&r style declarations, bug #672032 (diff) | |
download | gcc-patches-134dc72e3b4e140756f00b65688f084188f59d18.tar.gz gcc-patches-134dc72e3b4e140756f00b65688f084188f59d18.tar.bz2 gcc-patches-134dc72e3b4e140756f00b65688f084188f59d18.zip |
8.2.0: backport avx2 codegen SIGSEGV, bug #657060
Fixes SIGSEGV when building media-libs/opencv-3.4.1-r1
Reported-by: Johannes Hirte
Bug: https://bugs.gentoo.org/657060
Bug: https://gcc.gnu.org/PR86871
Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
-rw-r--r-- | 8.2.0/gentoo/115_all_avx2-SIGSEGV-PR86871.patch | 69 | ||||
-rw-r--r-- | 8.2.0/gentoo/README.history | 1 |
2 files changed, 70 insertions, 0 deletions
diff --git a/8.2.0/gentoo/115_all_avx2-SIGSEGV-PR86871.patch b/8.2.0/gentoo/115_all_avx2-SIGSEGV-PR86871.patch new file mode 100644 index 0000000..4d24259 --- /dev/null +++ b/8.2.0/gentoo/115_all_avx2-SIGSEGV-PR86871.patch @@ -0,0 +1,69 @@ +https://bugs.gentoo.org/657060 +https://gcc.gnu.org/PR86871 + +From c69949a7ec14a363128cd1445c7153e1ce051eb7 Mon Sep 17 00:00:00 2001 +From: rsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4> +Date: Tue, 14 Aug 2018 09:24:45 +0000 +Subject: [PATCH] Fix invalid assumption in vect_transform_stmt (PR 86871) + +The handling of outer-loop uses of inner-loop definitions assumed +that anything that wasn't a PHI would be a gassign. It's also +possible for it to be a gcall. + +2018-08-14 Richard Sandiford <richard.sandiford@arm.com> + +gcc/ + Backport from mainline + 2018-08-09 Richard Sandiford <richard.sandiford@arm.com> + + PR tree-optimization/86871 + * tree-vect-stmts.c (vect_transform_stmt): Use gimple_get_lhs + instead of gimple_assign_lhs. + +gcc/testsuite/ + Backport from mainline + 2018-08-09 Richard Sandiford <richard.sandiford@arm.com> + + PR tree-optimization/86871 + * gcc.dg/vect/pr86871.c: New test. + + +git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-8-branch@263528 138bc75d-0d04-0410-961f-82ee72b054a4 +--- + gcc/testsuite/gcc.dg/vect/pr86871.c | 15 +++++++++++++++ + gcc/tree-vect-stmts.c | 2 +- + 4 files changed, 33 insertions(+), 1 deletion(-) + create mode 100644 gcc/testsuite/gcc.dg/vect/pr86871.c + +--- /dev/null ++++ b/gcc/testsuite/gcc.dg/vect/pr86871.c +@@ -0,0 +1,15 @@ ++/* { dg-do compile } */ ++ ++extern int b[]; ++extern int c[]; ++void g(int f) { ++ for (; f; f++) { ++ int d = 0; ++ for (int e = -1; e <= 1; e++) { ++ int a = f + e; ++ if (a) ++ d = *(c + a); ++ } ++ *(b + f) = d; ++ } ++ } +--- a/gcc/tree-vect-stmts.c ++++ b/gcc/tree-vect-stmts.c +@@ -9602,7 +9602,7 @@ vect_transform_stmt (gimple *stmt, gimple_stmt_iterator *gsi, + if (gimple_code (stmt) == GIMPLE_PHI) + scalar_dest = PHI_RESULT (stmt); + else +- scalar_dest = gimple_assign_lhs (stmt); ++ scalar_dest = gimple_get_lhs (stmt); + + FOR_EACH_IMM_USE_FAST (use_p, imm_iter, scalar_dest) + { +-- +2.20.1 + diff --git a/8.2.0/gentoo/README.history b/8.2.0/gentoo/README.history index 787f60c..6e3896c 100644 --- a/8.2.0/gentoo/README.history +++ b/8.2.0/gentoo/README.history @@ -1,5 +1,6 @@ 1.7 TODO + 114_all_kr-decl-PR88214.patch + + 115_all_avx2-SIGSEGV-PR86871.patch 1.6 01 Dec 2018 U 10_all_default-fortify-source.patch |