From f46f899b4fa41ec889540c4a663feaa814b73d24 Mon Sep 17 00:00:00 2001 From: Jan Hubicka Date: Sat, 26 Sep 2020 00:05:53 +0200 Subject: [PATCH] Disable ipa-modref with live patching 2020-09-26 Jan Hubicka * doc/invoke.texi: Add -fno-ipa-modref to flags disabled by -flive-patching. * opts.c (control_options_for_live_patching): Disable ipa-modref. --- gcc/doc/invoke.texi | 2 +- gcc/opts.c | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index 2091e0cd23b..226b0e1dc91 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -10879,7 +10879,7 @@ callers are impacted, therefore need to be patched as well. @gccoptlist{-fwhole-program -fipa-pta -fipa-reference -fipa-ra @gol -fipa-icf -fipa-icf-functions -fipa-icf-variables @gol -fipa-bit-cp -fipa-vrp -fipa-pure-const -fipa-reference-addressable @gol --fipa-stack-alignment} +-fipa-stack-alignment -fipa-modref} @item inline-only-static diff --git a/gcc/opts.c b/gcc/opts.c index 3c4a0b540b4..3bda59afced 100644 --- a/gcc/opts.c +++ b/gcc/opts.c @@ -792,6 +792,13 @@ control_options_for_live_patching (struct gcc_options *opts, else opts->x_flag_ipa_pure_const = 0; + if (opts_set->x_flag_ipa_modref && opts->x_flag_ipa_modref) + error_at (loc, + "%<-fipa-modref%> is incompatible with " + "%<-flive-patching=inline-only-static|inline-clone%>"); + else + opts->x_flag_ipa_modref = 0; + /* FIXME: disable unreachable code removal. */ /* discovery of functions/variables with no address taken. */