1*00d0749fSEthan Luis McDonough! UNSUPPORTED: system-windows 2*00d0749fSEthan Luis McDonough! REQUIRES: plugins, shell, examples 3*00d0749fSEthan Luis McDonough 4*00d0749fSEthan Luis McDonough! RUN: %flang_fc1 -load %llvmshlibdir/flangFeatureList%pluginext \ 5*00d0749fSEthan Luis McDonough! RUN: -plugin feature-list %s 2>&1 | FileCheck %s 6*00d0749fSEthan Luis McDonough 7*00d0749fSEthan Luis McDonoughprogram list_features_test 8*00d0749fSEthan Luis McDonough implicit none 9*00d0749fSEthan Luis McDonough call test_sub(test_func(2, 3), 4) 10*00d0749fSEthan Luis McDonoughcontains 11*00d0749fSEthan Luis McDonough subroutine test_sub(a, b) 12*00d0749fSEthan Luis McDonough integer, intent(in) :: a, b 13*00d0749fSEthan Luis McDonough print "(I0)", a + b 14*00d0749fSEthan Luis McDonough end subroutine 15*00d0749fSEthan Luis McDonough 16*00d0749fSEthan Luis McDonough integer function test_func(a, b) 17*00d0749fSEthan Luis McDonough integer, intent(in) :: a, b 18*00d0749fSEthan Luis McDonough test_func = a * b 19*00d0749fSEthan Luis McDonough end function 20*00d0749fSEthan Luis McDonoughend program list_features_test 21*00d0749fSEthan Luis McDonough 22*00d0749fSEthan Luis McDonough! CHECK: Name: 19 23*00d0749fSEthan Luis McDonough! CHECK-NEXT: Expr: 11 24*00d0749fSEthan Luis McDonough! CHECK-NEXT: DataRef: 5 25*00d0749fSEthan Luis McDonough! CHECK-NEXT: Designator: 5 26*00d0749fSEthan Luis McDonough! CHECK-NEXT: ActualArg: 4 27*00d0749fSEthan Luis McDonough! CHECK-NEXT: ActualArgSpec: 4 28*00d0749fSEthan Luis McDonough! CHECK-NEXT: EntityDecl: 4 29*00d0749fSEthan Luis McDonough! CHECK-NEXT: LiteralConstant: 4 30*00d0749fSEthan Luis McDonough! CHECK-NEXT: ActionStmt: 3 31*00d0749fSEthan Luis McDonough! CHECK-NEXT: Block: 3 32*00d0749fSEthan Luis McDonough! CHECK-NEXT: DeclarationTypeSpec: 3 33*00d0749fSEthan Luis McDonough! CHECK-NEXT: ExecutableConstruct: 3 34*00d0749fSEthan Luis McDonough! CHECK-NEXT: ExecutionPart: 3 35*00d0749fSEthan Luis McDonough! CHECK-NEXT: ExecutionPartConstruct: 3 36*00d0749fSEthan Luis McDonough! CHECK-NEXT: ImplicitPart: 3 37*00d0749fSEthan Luis McDonough! CHECK-NEXT: IntLiteralConstant: 3 38*00d0749fSEthan Luis McDonough! CHECK-NEXT: IntegerTypeSpec: 3 39*00d0749fSEthan Luis McDonough! CHECK-NEXT: IntrinsicTypeSpec: 3 40*00d0749fSEthan Luis McDonough! CHECK-NEXT: SpecificationPart: 3 41*00d0749fSEthan Luis McDonough! CHECK-NEXT: AttrSpec: 2 42*00d0749fSEthan Luis McDonough! CHECK-NEXT: Call: 2 43*00d0749fSEthan Luis McDonough! CHECK-NEXT: DeclarationConstruct: 2 44*00d0749fSEthan Luis McDonough! CHECK-NEXT: DummyArg: 2 45*00d0749fSEthan Luis McDonough! CHECK-NEXT: IntentSpec: 2 46*00d0749fSEthan Luis McDonough! CHECK-NEXT: IntentSpec::Intent: 2 47*00d0749fSEthan Luis McDonough! CHECK-NEXT: InternalSubprogram: 2 48*00d0749fSEthan Luis McDonough! CHECK-NEXT: ProcedureDesignator: 2 49*00d0749fSEthan Luis McDonough! CHECK-NEXT: SpecificationConstruct: 2 50*00d0749fSEthan Luis McDonough! CHECK-NEXT: TypeDeclarationStmt: 2 51*00d0749fSEthan Luis McDonough! CHECK-NEXT: AssignmentStmt: 1 52*00d0749fSEthan Luis McDonough! CHECK-NEXT: CallStmt: 1 53*00d0749fSEthan Luis McDonough! CHECK-NEXT: CharLiteralConstant: 1 54*00d0749fSEthan Luis McDonough! CHECK-NEXT: ContainsStmt: 1 55*00d0749fSEthan Luis McDonough! CHECK-NEXT: EndFunctionStmt: 1 56*00d0749fSEthan Luis McDonough! CHECK-NEXT: EndProgramStmt: 1 57*00d0749fSEthan Luis McDonough! CHECK-NEXT: EndSubroutineStmt: 1 58*00d0749fSEthan Luis McDonough! CHECK-NEXT: Expr::Add: 1 59*00d0749fSEthan Luis McDonough! CHECK-NEXT: Expr::Multiply: 1 60*00d0749fSEthan Luis McDonough! CHECK-NEXT: Format: 1 61*00d0749fSEthan Luis McDonough! CHECK-NEXT: FunctionReference: 1 62*00d0749fSEthan Luis McDonough! CHECK-NEXT: FunctionStmt: 1 63*00d0749fSEthan Luis McDonough! CHECK-NEXT: FunctionSubprogram: 1 64*00d0749fSEthan Luis McDonough! CHECK-NEXT: ImplicitPartStmt: 1 65*00d0749fSEthan Luis McDonough! CHECK-NEXT: ImplicitStmt: 1 66*00d0749fSEthan Luis McDonough! CHECK-NEXT: InternalSubprogramPart: 1 67*00d0749fSEthan Luis McDonough! CHECK-NEXT: MainProgram: 1 68*00d0749fSEthan Luis McDonough! CHECK-NEXT: OutputItem: 1 69*00d0749fSEthan Luis McDonough! CHECK-NEXT: PrefixSpec: 1 70*00d0749fSEthan Luis McDonough! CHECK-NEXT: PrintStmt: 1 71*00d0749fSEthan Luis McDonough! CHECK-NEXT: Program: 1 72*00d0749fSEthan Luis McDonough! CHECK-NEXT: ProgramStmt: 1 73*00d0749fSEthan Luis McDonough! CHECK-NEXT: ProgramUnit: 1 74*00d0749fSEthan Luis McDonough! CHECK-NEXT: SubroutineStmt: 1 75*00d0749fSEthan Luis McDonough! CHECK-NEXT: SubroutineSubprogram: 1 76*00d0749fSEthan Luis McDonough! CHECK-NEXT: Variable: 1 77