comparison gcc/testsuite/gfortran.dg/pr36680.f90 @ 111:04ced10e8804

gcc 7
author kono
date Fri, 27 Oct 2017 22:46:09 +0900
parents
children
comparison
equal deleted inserted replaced
68:561a7518be6b 111:04ced10e8804
1 ! PR target/36680
2 ! { dg-do compile { target i?86-*-* x86_64-*-* } }
3 ! { dg-options "-O1 -fschedule-insns" }
4
5 MODULE class_dummy_atom_kdtree_types
6 TYPE dummy_atom_kdtree_data
7 INTEGER :: dummy
8 END TYPE
9
10 TYPE :: dummy_atom_kdtree_node
11 TYPE(dummy_atom_kdtree_node_private), POINTER :: p
12 END TYPE
13
14 TYPE :: dummy_atom_kdtree_node_private
15 TYPE(dummy_atom_kdtree_data) :: data
16 END TYPE
17
18 TYPE :: dummy_atom_kdtree
19 TYPE(dummy_atom_kdtree_node) :: root
20 END TYPE
21 END MODULE
22
23 FUNCTION dummy_atom_kdtree_insert(this, item)
24 USE class_dummy_atom_kdtree_types
25
26 TYPE(dummy_atom_kdtree), INTENT(inout) :: this
27 TYPE(dummy_atom_kdtree_data), INTENT(in) :: item
28
29 TYPE(dummy_atom_kdtree_node) :: parent, current
30 INTEGER :: cmp, level, discriminator
31
32 parent = dummy_atom_kdtree_node(null())
33 current = this%root
34 level = 1
35 discriminator = 1
36
37 DO WHILE (ASSOCIATED( current%p ))
38 discriminator = MODULO(level-1, 3) + 1
39 cmp = dummy_atom_kdtree_data_compare(item, current%p%data, discriminator)
40 level = level + 1
41 END DO
42
43 END FUNCTION