1! UNSUPPORTED: system-windows 2! REQUIRES: plugins, shell, examples 3 4! RUN: %flang_fc1 -load %llvmshlibdir/flangFeatureList%pluginext \ 5! RUN: -plugin feature-list %s 2>&1 | FileCheck %s 6 7module list_features_test 8 implicit none 9 10 type :: test_class_1 11 integer :: a 12 real :: b 13 contains 14 procedure :: sum => sum_test_class_1 15 procedure :: set => set_values_test_class_1 16 end type 17contains 18 real function sum_test_class_1(self) 19 class(test_class_1), intent(in) :: self 20 sum_test_class_1 = self%a + self%b 21 end function 22 23 subroutine set_values_test_class_1(self, a, b) 24 class(test_class_1), intent(out) :: self 25 integer, intent(in) :: a, b 26 self%a = a 27 self%b = b 28 end subroutine 29end module list_features_test 30 31! CHECK: Name: 32 32! CHECK-NEXT: DataRef: 11 33! CHECK-NEXT: Designator: 7 34! CHECK-NEXT: DeclarationTypeSpec: 6 35! CHECK-NEXT: Expr: 5 36! CHECK-NEXT: DeclarationConstruct: 4 37! CHECK-NEXT: EntityDecl: 4 38! CHECK-NEXT: IntrinsicTypeSpec: 4 39! CHECK-NEXT: SpecificationConstruct: 4 40! CHECK-NEXT: StructureComponent: 4 41! CHECK-NEXT: ActionStmt: 3 42! CHECK-NEXT: AssignmentStmt: 3 43! CHECK-NEXT: AttrSpec: 3 44! CHECK-NEXT: DummyArg: 3 45! CHECK-NEXT: ExecutableConstruct: 3 46! CHECK-NEXT: ExecutionPartConstruct: 3 47! CHECK-NEXT: ImplicitPart: 3 48! CHECK-NEXT: IntentSpec: 3 49! CHECK-NEXT: IntentSpec::Intent: 3 50! CHECK-NEXT: SpecificationPart: 3 51! CHECK-NEXT: TypeDeclarationStmt: 3 52! CHECK-NEXT: Variable: 3 53! CHECK-NEXT: Block: 2 54! CHECK-NEXT: ComponentDecl: 2 55! CHECK-NEXT: ComponentDefStmt: 2 56! CHECK-NEXT: ComponentOrFill: 2 57! CHECK-NEXT: ContainsStmt: 2 58! CHECK-NEXT: DataComponentDefStmt: 2 59! CHECK-NEXT: DeclarationTypeSpec::Class: 2 60! CHECK-NEXT: DerivedTypeSpec: 2 61! CHECK-NEXT: ExecutionPart: 2 62! CHECK-NEXT: IntegerTypeSpec: 2 63! CHECK-NEXT: IntrinsicTypeSpec::Real: 2 64! CHECK-NEXT: ModuleSubprogram: 2 65! CHECK-NEXT: TypeBoundProcBinding: 2 66! CHECK-NEXT: TypeBoundProcDecl: 2 67! CHECK-NEXT: TypeBoundProcedureStmt: 2 68! CHECK-NEXT: TypeBoundProcedureStmt::WithoutInterface: 2 69! CHECK-NEXT: DerivedTypeDef: 1 70! CHECK-NEXT: DerivedTypeStmt: 1 71! CHECK-NEXT: EndFunctionStmt: 1 72! CHECK-NEXT: EndModuleStmt: 1 73! CHECK-NEXT: EndSubroutineStmt: 1 74! CHECK-NEXT: EndTypeStmt: 1 75! CHECK-NEXT: Expr::Add: 1 76! CHECK-NEXT: FunctionStmt: 1 77! CHECK-NEXT: FunctionSubprogram: 1 78! CHECK-NEXT: ImplicitPartStmt: 1 79! CHECK-NEXT: ImplicitStmt: 1 80! CHECK-NEXT: Module: 1 81! CHECK-NEXT: ModuleStmt: 1 82! CHECK-NEXT: ModuleSubprogramPart: 1 83! CHECK-NEXT: PrefixSpec: 1 84! CHECK-NEXT: Program: 1 85! CHECK-NEXT: ProgramUnit: 1 86! CHECK-NEXT: SubroutineStmt: 1 87! CHECK-NEXT: SubroutineSubprogram: 1 88! CHECK-NEXT: TypeBoundProcedurePart: 1 89