diff options
author | Xi Ruoyao <ryxi@stu.xidian.edu.cn> | 2017-05-01 22:26:02 +0000 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 2017-05-01 16:26:02 -0600 |
commit | 815d9cc6641a3eeb6734a98f64ea8b183a495ee5 (patch) | |
tree | a8a033d722da210460642c7a397ad087d9c87d1f /gcc/lto | |
parent | 338035aa194405df94875cebb389d593cf9ef00a (diff) | |
download | gcc-815d9cc6641a3eeb6734a98f64ea8b183a495ee5.zip gcc-815d9cc6641a3eeb6734a98f64ea8b183a495ee5.tar.gz gcc-815d9cc6641a3eeb6734a98f64ea8b183a495ee5.tar.bz2 |
re PR c++/80038 (Random segfault using local vectors in Cilk function)
2017-05-01 Xi Ruoyao <ryxi@stu.xidian.edu.cn>
PR c++/80038
* cilk_common.c (expand_builtin_cilk_detach): Move pedigree
operations here.
* gimplify.c (gimplify_cilk_detach): New function.
(gimplify_call_expr, gimplify_modify_expr): Call it as needed.
* tree-core.h: Document EXPR_CILK_SPAWN.
* tree.h (EXPR_CILK_SPAWN): Define.
PR c++/80038
* c-common.h (cilk_gimplify_call_params_in_spawned_fn): Remove
prototype.
(cilk_install_body_pedigree_operations): Likewise.
* cilk.c (cilk_set_spawn_marker): Mark functions that should be
detatched.
(cilk_gimplify_call_params_in_spawned_fn): Remove.
(cilk_install_body_pedigree_operations): Likewise.
(gimplify_cilk_spawn): Add EXPR_STMT and CLEANUP_POINT_EXPR
unwrapping.
PR c++/80038
* c-gimplify.c (c_gimplify_expr): Remove calls to
cilk_gimplifY_call_params_in_spawned_fn.
PR c++/80038
* cp-cilkplus.c (cilk_install_body_with_frame_cleanup): Don't
add pedigree operation and detach call here.
* cp-gimplify.c (cp_gimplify_expr): Remove the calls to
cilk_cp_gimplify_call_params_in_spawned_fn.
(cilk_cp_gimplify_call_params_in_spawned_fn): Remove function.
* semantics.c (simplify_aggr_init_expr): Copy EXPR_CILK_SPAWN.
PR c++/80038
* lto-lang.c (lto_init): Set in_lto_p earlier.
PR c++/80038
* g++.dg/cilk-plus/CK/pr80038.cc: New test.
From-SVN: r247446
Diffstat (limited to 'gcc/lto')
-rw-r--r-- | gcc/lto/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/lto/lto-lang.c | 6 |
2 files changed, 8 insertions, 3 deletions
diff --git a/gcc/lto/ChangeLog b/gcc/lto/ChangeLog index d24dd0c..62304fc 100644 --- a/gcc/lto/ChangeLog +++ b/gcc/lto/ChangeLog @@ -1,3 +1,8 @@ +2017-05-01 Xi Ruoyao <ryxi@stu.xidian.edu.cn> + + PR c++/80038 + * lto-lang.c (lto_init): Set in_lto_p earlier. + 2017-04-12 Richard Biener <rguenther@suse.de> Bernd Edlinger <bernd.edlinger@hotmail.de> diff --git a/gcc/lto/lto-lang.c b/gcc/lto/lto-lang.c index ca8945e..52ab2a8 100644 --- a/gcc/lto/lto-lang.c +++ b/gcc/lto/lto-lang.c @@ -1201,6 +1201,9 @@ lto_init (void) { int i; + /* Initialize LTO-specific data structures. */ + in_lto_p = true; + /* We need to generate LTO if running in WPA mode. */ flag_generate_lto = (flag_wpa != NULL); @@ -1283,9 +1286,6 @@ lto_init (void) } #undef NAME_TYPE - /* Initialize LTO-specific data structures. */ - in_lto_p = true; - return true; } |