diff options
author | Richard Biener <rguenther@suse.de> | 2020-05-29 10:16:38 +0200 |
---|---|---|
committer | Richard Biener <rguenther@suse.de> | 2020-05-29 11:02:29 +0200 |
commit | 233ecb5e2c5a769429279afbbf7d275cb3940cde (patch) | |
tree | d3c60cd9288e90d6d485a42ffbb3454f7ffa309c /gcc | |
parent | 3d0675f3bb54b58903bc9214d05c8e6d20e5f313 (diff) | |
download | gcc-233ecb5e2c5a769429279afbbf7d275cb3940cde.zip gcc-233ecb5e2c5a769429279afbbf7d275cb3940cde.tar.gz gcc-233ecb5e2c5a769429279afbbf7d275cb3940cde.tar.bz2 |
tree-optimization/95403 - guard vect_init_vector_1 against NULL stmt_info
2020-05-29 Richard Biener <rguenther@suse.de>
PR tree-optimization/95403
* tree-vect-stmts.c (vect_init_vector_1): Guard against NULL
stmt_vinfo.
* gfortran.dg/vect/pr95403.f: New testcase.
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/testsuite/gfortran.dg/vect/pr95403.f | 16 | ||||
-rw-r--r-- | gcc/tree-vect-stmts.c | 2 |
2 files changed, 17 insertions, 1 deletions
diff --git a/gcc/testsuite/gfortran.dg/vect/pr95403.f b/gcc/testsuite/gfortran.dg/vect/pr95403.f new file mode 100644 index 0000000..248958b --- /dev/null +++ b/gcc/testsuite/gfortran.dg/vect/pr95403.f @@ -0,0 +1,16 @@ +! { dg-do compile } + subroutine deuldlag(xi,et,ze,xlag,xeul,xj,xs) + real*8 shp(3,20),xs(3,3),xlag(3,20),xeul(3,20) + do i=1,3 + do j=1,3 + enddo + enddo + do i=1,3 + do j=1,3 + xs(i,j)=0.d0 + do k=1,20 + xs(i,j)=xs(i,j)+xeul(i,k)*shp(j,k) + enddo + enddo + enddo + end diff --git a/gcc/tree-vect-stmts.c b/gcc/tree-vect-stmts.c index 58fb93d..a5f1b52 100644 --- a/gcc/tree-vect-stmts.c +++ b/gcc/tree-vect-stmts.c @@ -1330,7 +1330,7 @@ vect_init_vector_1 (vec_info *vinfo, stmt_vec_info stmt_vinfo, gimple *new_stmt, basic_block new_bb; edge pe; - if (nested_in_vect_loop_p (loop, stmt_vinfo)) + if (stmt_vinfo && nested_in_vect_loop_p (loop, stmt_vinfo)) loop = loop->inner; pe = loop_preheader_edge (loop); |