re PR debug/78363 (ICE in in force_type_die, at dwarf2out.c:24864)
2017-01-25 Richard Biener <rguenther@suse.de> PR debug/78363 * omp-expand.c: Include debug.h. (expand_omp_taskreg): Make sure to generate early debug before outlining anything from a function. (expand_omp_target): Likewise. (grid_expand_target_grid_body): Likewise. * g++.dg/gomp/pr78363-1.C: New testcase. * g++.dg/gomp/pr78363-2.C: Likewise. * g++.dg/gomp/pr78363-3.C: Likewise. From-SVN: r244892
This commit is contained in:
parent
9078cd3665
commit
5c628c3e6f
@ -1,3 +1,12 @@
|
||||
2017-01-25 Richard Biener <rguenther@suse.de>
|
||||
|
||||
PR debug/78363
|
||||
* omp-expand.c: Include debug.h.
|
||||
(expand_omp_taskreg): Make sure to generate early debug before
|
||||
outlining anything from a function.
|
||||
(expand_omp_target): Likewise.
|
||||
(grid_expand_target_grid_body): Likewise.
|
||||
|
||||
2017-01-25 Maxim Ostapenko <m.ostapenko@samsung.com>
|
||||
|
||||
PR lto/79061
|
||||
|
@ -57,6 +57,7 @@ along with GCC; see the file COPYING3. If not see
|
||||
#include "gomp-constants.h"
|
||||
#include "gimple-pretty-print.h"
|
||||
#include "hsa-common.h"
|
||||
#include "debug.h"
|
||||
|
||||
|
||||
/* OMP region information. Every parallel and workshare
|
||||
@ -1305,6 +1306,11 @@ expand_omp_taskreg (struct omp_region *region)
|
||||
else
|
||||
block = gimple_block (entry_stmt);
|
||||
|
||||
/* Make sure to generate early debug for the function before
|
||||
outlining anything. */
|
||||
if (! gimple_in_ssa_p (cfun))
|
||||
(*debug_hooks->early_global_decl) (cfun->decl);
|
||||
|
||||
new_bb = move_sese_region_to_fn (child_cfun, entry_bb, exit_bb, block);
|
||||
if (exit_bb)
|
||||
single_succ_edge (new_bb)->flags = EDGE_FALLTHRU;
|
||||
@ -7016,6 +7022,11 @@ expand_omp_target (struct omp_region *region)
|
||||
gsi_remove (&gsi, true);
|
||||
}
|
||||
|
||||
/* Make sure to generate early debug for the function before
|
||||
outlining anything. */
|
||||
if (! gimple_in_ssa_p (cfun))
|
||||
(*debug_hooks->early_global_decl) (cfun->decl);
|
||||
|
||||
/* Move the offloading region into CHILD_CFUN. */
|
||||
|
||||
block = gimple_block (entry_stmt);
|
||||
@ -7589,6 +7600,11 @@ grid_expand_target_grid_body (struct omp_region *target)
|
||||
init_tree_ssa (cfun);
|
||||
pop_cfun ();
|
||||
|
||||
/* Make sure to generate early debug for the function before
|
||||
outlining anything. */
|
||||
if (! gimple_in_ssa_p (cfun))
|
||||
(*debug_hooks->early_global_decl) (cfun->decl);
|
||||
|
||||
tree old_parm_decl = DECL_ARGUMENTS (kern_fndecl);
|
||||
gcc_assert (!DECL_CHAIN (old_parm_decl));
|
||||
tree new_parm_decl = copy_node (DECL_ARGUMENTS (kern_fndecl));
|
||||
|
@ -1,3 +1,10 @@
|
||||
2017-01-25 Richard Biener <rguenther@suse.de>
|
||||
|
||||
PR debug/78363
|
||||
* g++.dg/gomp/pr78363-1.C: New testcase.
|
||||
* g++.dg/gomp/pr78363-2.C: Likewise.
|
||||
* g++.dg/gomp/pr78363-3.C: Likewise.
|
||||
|
||||
2016-01-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||||
|
||||
* gcc.dg/lto/pr54709_0.c: Require 'shared' effective target.
|
||||
|
14
gcc/testsuite/g++.dg/gomp/pr78363-1.C
Normal file
14
gcc/testsuite/g++.dg/gomp/pr78363-1.C
Normal file
@ -0,0 +1,14 @@
|
||||
// { dg-do compile }
|
||||
// { dg-require-effective-target c++11 }
|
||||
// { dg-additional-options "-g" }
|
||||
|
||||
int main()
|
||||
{
|
||||
int n = 0;
|
||||
|
||||
#pragma omp parallel for reduction (+: n)
|
||||
for (int i = [](){ return 3; }(); i < 10; ++i)
|
||||
n++;
|
||||
|
||||
return n;
|
||||
}
|
15
gcc/testsuite/g++.dg/gomp/pr78363-2.C
Normal file
15
gcc/testsuite/g++.dg/gomp/pr78363-2.C
Normal file
@ -0,0 +1,15 @@
|
||||
// { dg-do compile }
|
||||
// { dg-require-effective-target c++11 }
|
||||
// { dg-additional-options "-g" }
|
||||
|
||||
int main()
|
||||
{
|
||||
int n = 0;
|
||||
#pragma omp target map(tofrom:n)
|
||||
#pragma omp for reduction (+: n)
|
||||
for (int i = [](){ return 3; }(); i < 10; ++i)
|
||||
n++;
|
||||
if (n != 7)
|
||||
__builtin_abort ();
|
||||
return 0;
|
||||
}
|
14
gcc/testsuite/g++.dg/gomp/pr78363-3.C
Normal file
14
gcc/testsuite/g++.dg/gomp/pr78363-3.C
Normal file
@ -0,0 +1,14 @@
|
||||
// { dg-do compile }
|
||||
// { dg-require-effective-target c++11 }
|
||||
// { dg-additional-options "-g" }
|
||||
|
||||
int main()
|
||||
{
|
||||
int n = 0;
|
||||
#pragma omp task shared (n)
|
||||
for (int i = [](){ return 3; }(); i < 10; ++i)
|
||||
n = i;
|
||||
#pragma omp taskwait
|
||||
if (n != 7)
|
||||
__builtin_abort ();
|
||||
}
|
Loading…
Reference in New Issue
Block a user