re PR rtl-optimization/92882 (ICE in regstat_bb_compute_calls_crossed, at regstat...
authorJakub Jelinek <jakub@redhat.com>
Tue, 10 Dec 2019 21:05:59 +0000 (22:05 +0100)
committerJakub Jelinek <jakub@gcc.gnu.org>
Tue, 10 Dec 2019 21:05:59 +0000 (22:05 +0100)
PR rtl-optimization/92882
* regstat.c (regstat_bb_compute_calls_crossed): Don't check
INSN_UID against DF_INSN_SIZE or use DF_INSN_INFO_GET unless
NONDEBUG_INSN_P.

* gfortran.dg/pr92882.f: New test.

From-SVN: r279196

gcc/ChangeLog
gcc/regstat.c
gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/pr92882.f [new file with mode: 0644]

index 71609c9..f1276b4 100644 (file)
@@ -1,5 +1,10 @@
 2019-12-10  Jakub Jelinek  <jakub@redhat.com>
 
+       PR rtl-optimization/92882
+       * regstat.c (regstat_bb_compute_calls_crossed): Don't check
+       INSN_UID against DF_INSN_SIZE or use DF_INSN_INFO_GET unless
+       NONDEBUG_INSN_P.
+
        PR ipa/92883
        * ipa-cp.c (propagate_vr_across_jump_function): Pass jvr rather
        than *jfunc->m_vr to intersect.  Formatting fix.
index bf95ecc..48872c7 100644 (file)
@@ -324,13 +324,13 @@ regstat_bb_compute_calls_crossed (unsigned int bb_index, bitmap live)
 
   FOR_BB_INSNS_REVERSE (bb, insn)
     {
+      if (!NONDEBUG_INSN_P (insn))
+       continue;
+
       gcc_assert (INSN_UID (insn) < (int) DF_INSN_SIZE ());
       struct df_insn_info *insn_info = DF_INSN_INFO_GET (insn);
       unsigned int regno;
 
-      if (!NONDEBUG_INSN_P (insn))
-       continue;
-
       /* Process the defs.  */
       if (CALL_P (insn))
        {
index 4f4a2a5..2c7d90a 100644 (file)
@@ -1,5 +1,8 @@
 2019-12-10  Jakub Jelinek  <jakub@redhat.com>
 
+       PR rtl-optimization/92882
+       * gfortran.dg/pr92882.f: New test.
+
        PR ipa/92883
        * gcc.dg/ipa/pr92883.c: New test.
 
diff --git a/gcc/testsuite/gfortran.dg/pr92882.f b/gcc/testsuite/gfortran.dg/pr92882.f
new file mode 100644 (file)
index 0000000..476154b
--- /dev/null
@@ -0,0 +1,4 @@
+C PR rtl-optimization/92882
+C { dg-do compile }
+C { dg-options "-O2 -fno-inline" }
+      INCLUDE 'secnds.f'