mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-25 04:06:06 +00:00

Split some headers into headers for public and private declarations in preparation for #110217. Moving the runtime-private headers in runtime-private include directory will occur in #110298. * Do not use `sizeof(Descriptor)` in the compiler. The size of the descriptor is target-dependent while `sizeof(Descriptor)` is the size of the Descriptor for the host platform which might be too small when cross-compiling to a different platform. Another problem is that the emitted assembly ((cross-)compiling to the same target) is not identical between Flang's running on different systems. Moving the declaration of `class Descriptor` out of the included header will also reduce the amount of #included sources. * Do not use `sizeof(ArrayConstructorVector)` and `alignof(ArrayConstructorVector)` in the compiler. Same reason as with `Descriptor`. * Compute the descriptor's extra flags without instantiating a Descriptor. `Fortran::runtime::Descriptor` is defined in the runtime source, but not the compiler source. * Move `InquiryKeywordHashDecode` into runtime-private header. The function is defined in the runtime sources and trying to call it in the compiler would lead to a link-error. * Move allocator-kind magic numbers into common header. They are the only declarations out of `allocator-registry.h` in the compiler as well. This does not make Flang cross-compile ready yet, the main goal is to avoid transitive header dependencies from Flang to clang-rt. There are more assumptions that host platform is the same as the target platform.
32 lines
1.0 KiB
C
32 lines
1.0 KiB
C
/*===-- runtime/environment-default-list.h --------------------------*- C -*-===
|
|
*
|
|
* 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 FORTRAN_RUNTIME_ENVIRONMENT_DEFAULT_LIST_H_
|
|
#define FORTRAN_RUNTIME_ENVIRONMENT_DEFAULT_LIST_H_
|
|
|
|
/* Try to maintain C compatibility to make it easier to both define environment
|
|
* defaults in non-Fortran main programs as well as pass through the environment
|
|
* default list in C code.
|
|
*/
|
|
|
|
struct EnvironmentDefaultItem {
|
|
const char *name;
|
|
const char *value;
|
|
};
|
|
|
|
/* Default values for environment variables are packaged by lowering into an
|
|
* instance of this struct to be read and set by the runtime.
|
|
*/
|
|
struct EnvironmentDefaultList {
|
|
int numItems;
|
|
const struct EnvironmentDefaultItem *item;
|
|
};
|
|
|
|
#endif /* FORTRAN_RUNTIME_ENVIRONMENT_DEFAULT_LIST_H_ */
|