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 bindingDescCompName[]{
"binding"};
49constexpr char procCompName[]{
"proc"};
51SymbolVector CollectBindings(
const Scope &dtScope);
53enum NonTbpDefinedIoFlags {
54 IsDtvArgPolymorphic = 1 << 0,
55 DefinedIoInteger8 = 1 << 1,
60 common::DefinedIo definedIo;
64std::multimap<const Symbol *, NonTbpDefinedIo>
65CollectNonTbpDefinedIoGenericInterfaces(
66 const Scope &,
bool useRuntimeTypeInfoEntries);
68bool ShouldIgnoreRuntimeTypeInfoNonTbpGenericInterfaces(
70bool ShouldIgnoreRuntimeTypeInfoNonTbpGenericInterfaces(
72bool ShouldIgnoreRuntimeTypeInfoNonTbpGenericInterfaces(
Definition semantics.h:67
Definition runtime-type-info.h:58
Definition runtime-type-info.h:28