Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:L2G:F
gcc
gcc41-pr25874.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File gcc41-pr25874.patch of Package gcc
2006-04-18 Jakub Jelinek <jakub@redhat.com> PR c++/25874 * omp-low.c (expand_omp_parallel): If child_cfun->cfg, free dominators, post dominators and cleanup cfg before returning. * gcc.dg/gomp/pr25874.c: Add dg-options. * g++.dg/gomp/pr25874.C: Add dg-options. --- gcc/omp-low.c.jj 2006-04-18 13:31:18.000000000 +0200 +++ gcc/omp-low.c 2006-04-18 13:57:03.000000000 +0200 @@ -2278,6 +2278,7 @@ expand_omp_parallel (struct omp_region * block_stmt_iterator si; tree entry_stmt; edge e; + bool do_cleanup_cfg = false; entry_stmt = last_stmt (region->entry); child_fn = OMP_PARALLEL_FN (entry_stmt); @@ -2310,6 +2311,7 @@ expand_omp_parallel (struct omp_region * new_bb = entry_bb; remove_edge (entry_succ_e); make_edge (new_bb, exit_succ_e->dest, EDGE_FALLTHRU); + do_cleanup_cfg = true; } else { @@ -2385,6 +2387,14 @@ expand_omp_parallel (struct omp_region * /* Emit a library call to launch the children threads. */ expand_parallel_call (region, new_bb, entry_stmt, ws_args); + + if (do_cleanup_cfg) + { + /* Clean up the unreachable sub-graph we created above. */ + free_dominance_info (CDI_DOMINATORS); + free_dominance_info (CDI_POST_DOMINATORS); + cleanup_tree_cfg (); + } } --- gcc/testsuite/gcc.dg/gomp/pr25874.c.jj 2006-01-30 09:01:58.000000000 +0100 +++ gcc/testsuite/gcc.dg/gomp/pr25874.c 2006-04-18 13:28:44.000000000 +0200 @@ -1,3 +1,5 @@ +/* { dg-options "-O -fopenmp" } */ + void foo(); inline void bar() --- gcc/testsuite/g++.dg/gomp/pr25874.C.jj 2006-03-12 09:51:23.000000000 +0100 +++ gcc/testsuite/g++.dg/gomp/pr25874.C 2006-04-18 13:29:11.000000000 +0200 @@ -1,3 +1,5 @@ +// { dg-options "-O -fopenmp" } + int foo(); struct wigner_d
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor