14#ifndef FORTRAN_SEMANTICS_RUNTIME_TYPE_INFO_H_
15#define FORTRAN_SEMANTICS_RUNTIME_TYPE_INFO_H_
17#include "flang/Semantics/symbol.h"
26namespace Fortran::semantics {
29 Scope *schemata{
nullptr};
30 std::set<std::string> names;
37constexpr char typeInfoBuiltinModule[]{
"__fortran_type_info"};
41constexpr char typeDescriptorTypeName[]{
"derivedtype"};
45constexpr char sizeInBytesCompName[]{
"sizeinbytes"};
49constexpr char bindingDescCompName[]{
"binding"};
53constexpr char procCompName[]{
"proc"};
55SymbolVector CollectBindings(
const Scope &dtScope);
57enum NonTbpDefinedIoFlags {
58 IsDtvArgPolymorphic = 1 << 0,
59 DefinedIoInteger8 = 1 << 1,
64 common::DefinedIo definedIo;
68std::multimap<const Symbol *, NonTbpDefinedIo>
69CollectNonTbpDefinedIoGenericInterfaces(
70 const Scope &,
bool useRuntimeTypeInfoEntries);
72bool ShouldIgnoreRuntimeTypeInfoNonTbpGenericInterfaces(
74bool ShouldIgnoreRuntimeTypeInfoNonTbpGenericInterfaces(
76bool ShouldIgnoreRuntimeTypeInfoNonTbpGenericInterfaces(
Definition semantics.h:67
Definition runtime-type-info.h:62
Definition runtime-type-info.h:28