File: offsets01.f90

package info (click to toggle)
llvm-toolchain-11 1%3A11.0.1-2
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 995,808 kB
  • sloc: cpp: 4,767,656; ansic: 760,916; asm: 477,436; python: 170,940; objc: 69,804; lisp: 29,914; sh: 23,855; f90: 18,173; pascal: 7,551; perl: 7,471; ml: 5,603; awk: 3,489; makefile: 2,573; xml: 915; cs: 573; fortran: 503; javascript: 452
file content (54 lines) | stat: -rw-r--r-- 1,709 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
!RUN: %f18 -fdebug-dump-symbols -fparse-only %s | FileCheck %s

! Size and alignment of intrinsic types
subroutine s1
  integer(1) :: a_i1  !CHECK: a_i1 size=1 offset=0:
  integer(8) :: b_i8  !CHECK: b_i8 size=8 offset=8:
  real(2)    :: c_r2  !CHECK: c_r2 size=2 offset=16:
  real(2)    :: d_r2  !CHECK: d_r2 size=2 offset=18:
  real(8)    :: e_r8  !CHECK: e_r8 size=8 offset=24:
  real(4)    :: f_r4  !CHECK: f_r4 size=4 offset=32:
  complex(8) :: g_c8  !CHECK: g_c8 size=16 offset=40:
  complex(4) :: h_c4  !CHECK: h_c4 size=8 offset=56:
  logical    :: i_l4  !CHECK: i_l4 size=4 offset=64:
end

! Character
subroutine s2
  character(10)        :: c1 !CHECK: c1 size=10 offset=0:
  character(1)         :: c2 !CHECK: c2 size=1 offset=10:
  character(10,kind=2) :: c3 !CHECK: c3 size=20 offset=12:
end

! Descriptors
subroutine s3(n)
  integer :: n
  real, pointer :: x !CHECK: x, POINTER size=24 offset=8:
  character(n)  :: y !CHECK: y size=24 offset=32:
end

! Descriptors for arrays
subroutine s4
  integer, allocatable :: z0        !CHECK: z0, ALLOCATABLE size=24 offset=
  integer, allocatable :: z1(:)     !CHECK: z1, ALLOCATABLE size=48 offset=
  integer, allocatable :: z2(:,:)   !CHECK: z2, ALLOCATABLE size=72 offset=
  integer, allocatable :: z3(:,:,:) !CHECK: z3, ALLOCATABLE size=96 offset=
end

! Descriptors with length parameters
subroutine s5(n)
  integer :: n
  type :: t1(l)
    integer, len :: l
    real :: a(l)
  end type
  type :: t2(l1, l2)
    integer, len :: l1
    integer, len :: l2
    real :: b(l1, l2)
  end type
  type(t1(n))   :: x1 !CHECK: x1 size=48 offset=
  type(t2(n,n)) :: x2 !CHECK: x2 size=56 offset=
  !CHECK: a size=48 offset=0:
  !CHECK: b size=72 offset=0:
end