From d4b44b834e3ac1b92ffb165e7bdaf641a211c34b Mon Sep 17 00:00:00 2001 From: Jan Hubicka Date: Wed, 13 Nov 2019 10:05:14 +0100 Subject: [PATCH] ipa.c (cgraph_build_static_cdtor): Pass optimization_default_node and target_option_default_node to get... * ipa.c (cgraph_build_static_cdtor): Pass optimization_default_node and target_option_default_node to get -fprofile-generate ctors working right with LTO. From-SVN: r278123 --- gcc/ChangeLog | 6 ++++++ gcc/ipa.c | 9 ++++++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 9054178018e..fbf586dc1b5 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2019-11-13 Jan Hubicka + + * ipa.c (cgraph_build_static_cdtor): Pass optimization_default_node + and target_option_default_node to get -fprofile-generate ctors working + right with LTO. + 2019-11-13 Richard Sandiford * tree-vectorizer.h (vect_nop_conversion_p): Declare. diff --git a/gcc/ipa.c b/gcc/ipa.c index 934e49785f3..0c92980db46 100644 --- a/gcc/ipa.c +++ b/gcc/ipa.c @@ -914,7 +914,14 @@ cgraph_build_static_cdtor_1 (char which, tree body, int priority, bool final, void cgraph_build_static_cdtor (char which, tree body, int priority) { - cgraph_build_static_cdtor_1 (which, body, priority, false, NULL, NULL); + /* FIXME: We should be able to + gcc_assert (!in_lto_p); + because at LTO time the global options are not safe to use. + Unfortunately ASAN finish_file will produce constructors late and they + may lead to surprises. */ + cgraph_build_static_cdtor_1 (which, body, priority, false, + optimization_default_node, + target_option_default_node); } /* When target does not have ctors and dtors, we call all constructor -- 2.30.2