re PR debug/50017 (-fcompare-debug failure)
PR debug/50017 * tree-vect-stmts.c (vect_finish_stmt_generation): If gsi_stmt (*gsi) is a debug stmt, use location of the first non-debug stmt after it. * gcc.dg/pr50017.c: New test. From-SVN: r177857
This commit is contained in:
parent
51fdcb386b
commit
4dee97188f
4 changed files with 38 additions and 2 deletions
|
@ -1,3 +1,9 @@
|
|||
2011-08-18 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR debug/50017
|
||||
* tree-vect-stmts.c (vect_finish_stmt_generation): If gsi_stmt (*gsi)
|
||||
is a debug stmt, use location of the first non-debug stmt after it.
|
||||
|
||||
2011-08-18 Richard Sandiford <richard.sandiford@linaro.org>
|
||||
|
||||
* config/arm/arm.c (arm_rtx_costs_1): Don't modify the costs of SET.
|
||||
|
|
|
@ -2,6 +2,9 @@
|
|||
|
||||
* g++.dg/plugin/decl_plugin.c: Include diagnostic.h.
|
||||
|
||||
PR debug/50017
|
||||
* gcc.dg/pr50017.c: New test.
|
||||
|
||||
2011-08-18 Dodji Seketeli <dodji@redhat.com>
|
||||
|
||||
PR c++/45625
|
||||
|
|
20
gcc/testsuite/gcc.dg/pr50017.c
Normal file
20
gcc/testsuite/gcc.dg/pr50017.c
Normal file
|
@ -0,0 +1,20 @@
|
|||
/* PR debug/50017 */
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-O3 -fcompare-debug" } */
|
||||
|
||||
struct S { int r, i; };
|
||||
|
||||
void
|
||||
foo (struct S *x, int y)
|
||||
{
|
||||
int i;
|
||||
for (i = 1; i < y; i++)
|
||||
{
|
||||
struct S a, b, c;
|
||||
a = x[0];
|
||||
b = x[i];
|
||||
c.r = a.r * b.r - a.i * b.i;
|
||||
c.i = a.r * b.i + a.i * b.r;
|
||||
x[i] = c;
|
||||
}
|
||||
}
|
|
@ -1,5 +1,5 @@
|
|||
/* Statement Analysis and Transformation for Vectorization
|
||||
Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
|
||||
Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
|
||||
Free Software Foundation, Inc.
|
||||
Contributed by Dorit Naishlos <dorit@il.ibm.com>
|
||||
and Ira Rosen <irar@il.ibm.com>
|
||||
|
@ -1419,6 +1419,7 @@ vect_finish_stmt_generation (gimple stmt, gimple vec_stmt,
|
|||
stmt_vec_info stmt_info = vinfo_for_stmt (stmt);
|
||||
loop_vec_info loop_vinfo = STMT_VINFO_LOOP_VINFO (stmt_info);
|
||||
bb_vec_info bb_vinfo = STMT_VINFO_BB_VINFO (stmt_info);
|
||||
gimple_stmt_iterator si;
|
||||
|
||||
gcc_assert (gimple_code (stmt) != GIMPLE_LABEL);
|
||||
|
||||
|
@ -1433,7 +1434,13 @@ vect_finish_stmt_generation (gimple stmt, gimple vec_stmt,
|
|||
print_gimple_stmt (vect_dump, vec_stmt, 0, TDF_SLIM);
|
||||
}
|
||||
|
||||
gimple_set_location (vec_stmt, gimple_location (gsi_stmt (*gsi)));
|
||||
si = *gsi;
|
||||
if (is_gimple_debug (gsi_stmt (si)))
|
||||
{
|
||||
gsi_next_nondebug (&si);
|
||||
gcc_assert (!gsi_end_p (si));
|
||||
}
|
||||
gimple_set_location (vec_stmt, gimple_location (gsi_stmt (si)));
|
||||
}
|
||||
|
||||
/* Checks if CALL can be vectorized in type VECTYPE. Returns
|
||||
|
|
Loading…
Add table
Reference in a new issue