diff options
author | Richard Biener <rguenther@suse.de> | 2019-09-18 11:28:20 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2019-09-18 11:28:20 +0000 |
commit | a3d09469041ab66ee1e12c2f3e4de33c4bf96732 (patch) | |
tree | 80d05780dc10b58f50e9e42a859ba010e37929be /gcc/lto | |
parent | 01b57ebf58b8cc0d16db827d1d9aa5f10da23cce (diff) | |
download | gcc-a3d09469041ab66ee1e12c2f3e4de33c4bf96732.zip gcc-a3d09469041ab66ee1e12c2f3e4de33c4bf96732.tar.gz gcc-a3d09469041ab66ee1e12c2f3e4de33c4bf96732.tar.bz2 |
re PR lto/91763 (go.go-torture/execute/printnil.go FAILs)
2019-09-18 Richard Biener <rguenther@suse.de>
PR lto/91763
* lto-streamer-in.c (input_eh_regions): Move EH init to
lto_materialize_function.
* tree-streamer-in.c (lto_input_ts_function_decl_tree_pointers):
Likewise.
lto/
* lto.c (lto_materialize_function): Initialize EH by looking
at the function personality and flag_exceptions setting.
From-SVN: r275872
Diffstat (limited to 'gcc/lto')
-rw-r--r-- | gcc/lto/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/lto/lto.c | 6 |
2 files changed, 12 insertions, 0 deletions
diff --git a/gcc/lto/ChangeLog b/gcc/lto/ChangeLog index 4e68fbf..a73cbc4 100644 --- a/gcc/lto/ChangeLog +++ b/gcc/lto/ChangeLog @@ -1,3 +1,9 @@ +2019-09-18 Richard Biener <rguenther@suse.de> + + PR lto/91763 + * lto.c (lto_materialize_function): Initialize EH by looking + at the function personality and flag_exceptions setting. + 2019-08-23 Jakub Jelinek <jakub@redhat.com> PR middle-end/91283 diff --git a/gcc/lto/lto.c b/gcc/lto/lto.c index 814f03a..af3590c 100644 --- a/gcc/lto/lto.c +++ b/gcc/lto/lto.c @@ -107,6 +107,12 @@ lto_materialize_function (struct cgraph_node *node) return; if (DECL_FUNCTION_PERSONALITY (decl) && !first_personality_decl) first_personality_decl = DECL_FUNCTION_PERSONALITY (decl); + /* If the file contains a function with a language specific EH + personality set or with EH enabled initialize the backend EH + machinery. */ + if (DECL_FUNCTION_PERSONALITY (decl) + || opt_for_fn (decl, flag_exceptions)) + lto_init_eh (); } /* Let the middle end know about the function. */ |