1 //===-- include/flang/Semantics/runtime-type-info.h -------------*- C++ -*-===// 2 // 3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4 // See https://llvm.org/LICENSE.txt for license information. 5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6 // 7 //===----------------------------------------------------------------------===// 8 9 // BuildRuntimeDerivedTypeTables() translates the scopes of derived types 10 // and parameterized derived type instantiations into the type descriptions 11 // defined in module/__fortran_type_info.f90, packaging these descriptions 12 // as static initializers for compiler-created objects. 13 14 #ifndef FORTRAN_SEMANTICS_RUNTIME_TYPE_INFO_H_ 15 #define FORTRAN_SEMANTICS_RUNTIME_TYPE_INFO_H_ 16 17 #include <set> 18 #include <string> 19 20 namespace llvm { 21 class raw_ostream; 22 } 23 24 namespace Fortran::semantics { 25 class Scope; 26 class SemanticsContext; 27 class Symbol; 28 29 struct RuntimeDerivedTypeTables { 30 Scope *schemata{nullptr}; 31 std::set<std::string> names; 32 }; 33 34 RuntimeDerivedTypeTables BuildRuntimeDerivedTypeTables(SemanticsContext &); 35 36 } // namespace Fortran::semantics 37 #endif // FORTRAN_SEMANTICS_RUNTIME_TYPE_INFO_H_ 38