xref: /llvm-project/lldb/source/Plugins/ObjectFile/PECOFF/ObjectFilePECOFFProperties.td (revision 3c867898c7be7ed2b5d119a2478a836a0c85f19b)
125c8a061SAlvin Wonginclude "../../../../include/lldb/Core/PropertiesBase.td"
225c8a061SAlvin Wong
325c8a061SAlvin Wonglet Definition = "objectfilepecoff" in {
425c8a061SAlvin Wong  def ABI: Property<"abi", "Enum">,
525c8a061SAlvin Wong    Global,
625c8a061SAlvin Wong    DefaultEnumValue<"llvm::Triple::UnknownEnvironment">,
725c8a061SAlvin Wong    EnumValues<"OptionEnumValues(g_abi_enums)">,
825c8a061SAlvin Wong    Desc<"ABI to use when loading a PE/COFF module. This configures the C++ ABI used, which affects things like the handling of class layout. Accepted values are: `msvc` for the MSVC ABI, `gnu` for the MinGW / Itanium ABI, and `default` to follow the default target if it is a Windows triple or use the MSVC ABI by default.">;
9*3c867898SAlvin Wong  def ModuleABIMap: Property<"module-abi", "Dictionary">,
10*3c867898SAlvin Wong    Global,
11*3c867898SAlvin Wong    ElementType<"Enum">,
12*3c867898SAlvin Wong    EnumValues<"OptionEnumValues(g_abi_enums)">,
13*3c867898SAlvin Wong    Desc<"A mapping of ABI override to use for specific modules. The module name is matched by its file name with extension. These versions are checked in sequence: exact, lowercase, exact with '.debug' suffix stripped, lowercase with '.debug' suffix stripped. Accepted values are: `msvc` for the MSVC ABI, `gnu` for the MinGW / Itanium ABI, and `default` to follow the default target if it is a Windows triple or use the MSVC ABI by default.">;
1425c8a061SAlvin Wong}
15