ipa/94245 - avoid folding when we want an ADDR_EXPR
authorRichard Biener <rguenther@suse.de>
Mon, 23 Mar 2020 08:33:25 +0000 (09:33 +0100)
committerRichard Biener <rguenther@suse.de>
Mon, 23 Mar 2020 10:23:29 +0000 (11:23 +0100)
Another case where build_fold_addr_expr is harmful.

2020-03-23  Richard Biener  <rguenther@suse.de>

PR ipa/94245
* ipa-prop.c (ipa_read_jump_function): Build the ADDR_EXRP
directly rather than also folding it via build_fold_addr_expr.

gcc/ChangeLog
gcc/ipa-prop.c

index 5df915d..c33327e 100644 (file)
@@ -1,5 +1,11 @@
 2020-03-23  Richard Biener  <rguenther@suse.de>
 
+       PR ipa/94245
+       * ipa-prop.c (ipa_read_jump_function): Build the ADDR_EXRP
+       directly rather than also folding it via build_fold_addr_expr.
+
+2020-03-23  Richard Biener  <rguenther@suse.de>
+
        PR tree-optimization/94266
        * tree-ssa-forwprop.c (pass_forwprop::execute): Do not propagate
        addresses of TARGET_MEM_REFs.
index a77130d..71ac0e1 100644 (file)
@@ -4625,7 +4625,7 @@ ipa_read_jump_function (class lto_input_block *ib,
       {
        tree t = stream_read_tree (ib, data_in);
        if (flag && prevails)
-         t = build_fold_addr_expr (t);
+         t = build1 (ADDR_EXPR, build_pointer_type (TREE_TYPE (t)), t);
        ipa_set_jf_constant (jump_func, t, cs);
       }
       break;