]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR target/36680 (ICE in spill_failure, reload1.c:1995)
authorDominique d'Humieres <dominiq@lps.ens.fr>
Sun, 2 Sep 2012 08:10:21 +0000 (10:10 +0200)
committerUros Bizjak <uros@gcc.gnu.org>
Sun, 2 Sep 2012 08:10:21 +0000 (10:10 +0200)
PR target/36680
* gfortran.dg/pr36680.f90: New test.

Co-Authored-By: Uros Bizjak <ubizjak@gmail.com>
From-SVN: r190855

gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/pr36680.f90 [new file with mode: 0644]

index 5a66dc271bc5e84df3acff6e336dbbdf00230f02..f027c28fe6a3e58566631de3413cb87204b4460e 100644 (file)
@@ -1,9 +1,14 @@
+2012-09-02  Dominique Dhumieres  <dominiq@lps.ens.fr>
+           Uros Bizjak  <ubizjak@gmail.com>
+
+       PR target/36680
+       * gfortran.dg/pr36680.f90: New test.
+
 2012-09-02  Uros Bizjak  <ubizjak@gmail.com>
 
        PR target/42295
        * g++.dg/opt/pr42295.C: New test.
 
-
 2012-09-01  Jakub Jelinek  <jakub@redhat.com>
 
        PR target/54436
diff --git a/gcc/testsuite/gfortran.dg/pr36680.f90 b/gcc/testsuite/gfortran.dg/pr36680.f90
new file mode 100644 (file)
index 0000000..b554b76
--- /dev/null
@@ -0,0 +1,43 @@
+! PR target/36680
+! { dg-do compile { target i?86-*-* x86_64-*-* } }
+! { dg-options "-O1 -fschedule-insns" }
+
+MODULE class_dummy_atom_kdtree_types
+  TYPE dummy_atom_kdtree_data
+    INTEGER :: dummy
+  END TYPE
+
+  TYPE :: dummy_atom_kdtree_node
+    TYPE(dummy_atom_kdtree_node_private), POINTER :: p
+  END TYPE
+
+  TYPE :: dummy_atom_kdtree_node_private
+    TYPE(dummy_atom_kdtree_data)                  :: data
+  END TYPE
+
+  TYPE :: dummy_atom_kdtree
+    TYPE(dummy_atom_kdtree_node) :: root
+  END TYPE
+END MODULE
+
+FUNCTION dummy_atom_kdtree_insert(this, item)
+  USE class_dummy_atom_kdtree_types
+
+  TYPE(dummy_atom_kdtree), INTENT(inout)   :: this
+  TYPE(dummy_atom_kdtree_data), INTENT(in) :: item
+
+  TYPE(dummy_atom_kdtree_node) :: parent, current
+  INTEGER :: cmp, level, discriminator
+
+  parent        = dummy_atom_kdtree_node(null())
+  current       = this%root
+  level         = 1
+  discriminator = 1
+
+  DO WHILE (ASSOCIATED( current%p ))
+    discriminator = MODULO(level-1, 3) + 1
+    cmp = dummy_atom_kdtree_data_compare(item, current%p%data, discriminator)
+    level   = level + 1
+  END DO
+
+END FUNCTION