Mercurial > hg > CbC > CbC_gcc
diff gcc/testsuite/gfortran.dg/pr36680.f90 @ 111:04ced10e8804
gcc 7
author | kono |
---|---|
date | Fri, 27 Oct 2017 22:46:09 +0900 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gcc/testsuite/gfortran.dg/pr36680.f90 Fri Oct 27 22:46:09 2017 +0900 @@ -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