14#ifndef FORTRAN_SEMANTICS_RUNTIME_TYPE_INFO_H_
15#define FORTRAN_SEMANTICS_RUNTIME_TYPE_INFO_H_
17#include "flang/Common/reference.h"
18#include "flang/Semantics/symbol.h"
28namespace Fortran::semantics {
31 Scope *schemata{
nullptr};
32 std::set<std::string> names;
39constexpr char typeInfoBuiltinModule[]{
"__fortran_type_info"};
43constexpr char typeDescriptorTypeName[]{
"derivedtype"};
47constexpr char bindingDescCompName[]{
"binding"};
51constexpr char procCompName[]{
"proc"};
53SymbolVector CollectBindings(
const Scope &dtScope);
55enum NonTbpDefinedIoFlags {
56 IsDtvArgPolymorphic = 1 << 0,
57 DefinedIoInteger8 = 1 << 1,
62 common::DefinedIo definedIo;
66std::multimap<const Symbol *, NonTbpDefinedIo>
67CollectNonTbpDefinedIoGenericInterfaces(
68 const Scope &,
bool useRuntimeTypeInfoEntries);
70bool ShouldIgnoreRuntimeTypeInfoNonTbpGenericInterfaces(
72bool ShouldIgnoreRuntimeTypeInfoNonTbpGenericInterfaces(
74bool ShouldIgnoreRuntimeTypeInfoNonTbpGenericInterfaces(
Definition semantics.h:67
Definition runtime-type-info.h:60
Definition runtime-type-info.h:30