-
Notifications
You must be signed in to change notification settings - Fork 13.4k
/
Copy pathfeature-list-functions.f90
76 lines (72 loc) · 2.21 KB
/
feature-list-functions.f90
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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
! UNSUPPORTED: system-windows
! REQUIRES: plugins, shell, examples
! RUN: %flang_fc1 -load %llvmshlibdir/flangFeatureList%pluginext \
! RUN: -plugin feature-list %s 2>&1 | FileCheck %s
program list_features_test
implicit none
call test_sub(test_func(2, 3), 4)
contains
subroutine test_sub(a, b)
integer, intent(in) :: a, b
print "(I0)", a + b
end subroutine
integer function test_func(a, b)
integer, intent(in) :: a, b
test_func = a * b
end function
end program list_features_test
! CHECK: Name: 19
! CHECK-NEXT: Expr: 11
! CHECK-NEXT: DataRef: 5
! CHECK-NEXT: Designator: 5
! CHECK-NEXT: ActualArg: 4
! CHECK-NEXT: ActualArgSpec: 4
! CHECK-NEXT: EntityDecl: 4
! CHECK-NEXT: LiteralConstant: 4
! CHECK-NEXT: ActionStmt: 3
! CHECK-NEXT: Block: 3
! CHECK-NEXT: DeclarationTypeSpec: 3
! CHECK-NEXT: ExecutableConstruct: 3
! CHECK-NEXT: ExecutionPart: 3
! CHECK-NEXT: ExecutionPartConstruct: 3
! CHECK-NEXT: ImplicitPart: 3
! CHECK-NEXT: IntLiteralConstant: 3
! CHECK-NEXT: IntegerTypeSpec: 3
! CHECK-NEXT: IntrinsicTypeSpec: 3
! CHECK-NEXT: SpecificationPart: 3
! CHECK-NEXT: AttrSpec: 2
! CHECK-NEXT: Call: 2
! CHECK-NEXT: DeclarationConstruct: 2
! CHECK-NEXT: DummyArg: 2
! CHECK-NEXT: IntentSpec: 2
! CHECK-NEXT: IntentSpec::Intent: 2
! CHECK-NEXT: InternalSubprogram: 2
! CHECK-NEXT: ProcedureDesignator: 2
! CHECK-NEXT: SpecificationConstruct: 2
! CHECK-NEXT: TypeDeclarationStmt: 2
! CHECK-NEXT: AssignmentStmt: 1
! CHECK-NEXT: CallStmt: 1
! CHECK-NEXT: CharLiteralConstant: 1
! CHECK-NEXT: ContainsStmt: 1
! CHECK-NEXT: EndFunctionStmt: 1
! CHECK-NEXT: EndProgramStmt: 1
! CHECK-NEXT: EndSubroutineStmt: 1
! CHECK-NEXT: Expr::Add: 1
! CHECK-NEXT: Expr::Multiply: 1
! CHECK-NEXT: Format: 1
! CHECK-NEXT: FunctionReference: 1
! CHECK-NEXT: FunctionStmt: 1
! CHECK-NEXT: FunctionSubprogram: 1
! CHECK-NEXT: ImplicitPartStmt: 1
! CHECK-NEXT: ImplicitStmt: 1
! CHECK-NEXT: InternalSubprogramPart: 1
! CHECK-NEXT: MainProgram: 1
! CHECK-NEXT: OutputItem: 1
! CHECK-NEXT: PrefixSpec: 1
! CHECK-NEXT: PrintStmt: 1
! CHECK-NEXT: Program: 1
! CHECK-NEXT: ProgramStmt: 1
! CHECK-NEXT: ProgramUnit: 1
! CHECK-NEXT: SubroutineStmt: 1
! CHECK-NEXT: SubroutineSubprogram: 1
! CHECK-NEXT: Variable: 1