Define Fortran derived types that describe the characteristics of derived types, and instantiations of parameterized derived types, that are of relevance to the runtime language support library. Define a suite of corresponding C++ structure types for the runtime library to use to interpret instances of the descriptions. Create instances of these description types in Semantics as static initializers for compiler-created objects in the scopes that define or instantiate user derived types. Delete obsolete code from earlier attempts to package runtime type information. Differential Revision: https://reviews.llvm.org/D92802
21 lines
690 B
C++
21 lines
690 B
C++
//===-- runtime/derived.h -------------------------------------------------===//
|
|
//
|
|
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
|
// See https://llvm.org/LICENSE.txt for license information.
|
|
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#ifndef FLANG_RUNTIME_DERIVED_H_
|
|
#define FLANG_RUNTIME_DERIVED_H_
|
|
|
|
namespace Fortran::runtime::typeInfo {
|
|
class DerivedType;
|
|
}
|
|
|
|
namespace Fortran::runtime {
|
|
class Descriptor;
|
|
void Destroy(const Descriptor &, bool finalize, const typeInfo::DerivedType &);
|
|
} // namespace Fortran::runtime
|
|
#endif // FLANG_RUNTIME_FINAL_H_
|