aboutsummaryrefslogtreecommitdiffstats
path: root/clang-r383902/include/llvm/Object/COFFModuleDefinition.h
diff options
context:
space:
mode:
authorYabin Cui <yabinc@google.com>2020-04-29 10:54:45 -0700
committerYabin Cui <yabinc@google.com>2020-04-29 10:54:45 -0700
commitf71cc7fa68ac644595257d6fdebc2e543cb7041c (patch)
tree81eef62411c6d9a4c89870cc811173f0c7bed2c3 /clang-r383902/include/llvm/Object/COFFModuleDefinition.h
parent27fa4eeb5967e0bae5aef6de643739bef2a58726 (diff)
downloadprebuilts_clang_host_linux-x86-f71cc7fa68ac644595257d6fdebc2e543cb7041c.tar.gz
prebuilts_clang_host_linux-x86-f71cc7fa68ac644595257d6fdebc2e543cb7041c.tar.bz2
prebuilts_clang_host_linux-x86-f71cc7fa68ac644595257d6fdebc2e543cb7041c.zip
Update prebuilt Clang to r383902.
clang 11.0.1 (based on r383902) from build 6443078. Bug: http://b/149839606 Test: N/A Change-Id: Id966d7b2cbaf3d2711a1e528c41a173ae28f6c11
Diffstat (limited to 'clang-r383902/include/llvm/Object/COFFModuleDefinition.h')
-rw-r--r--clang-r383902/include/llvm/Object/COFFModuleDefinition.h52
1 files changed, 52 insertions, 0 deletions
diff --git a/clang-r383902/include/llvm/Object/COFFModuleDefinition.h b/clang-r383902/include/llvm/Object/COFFModuleDefinition.h
new file mode 100644
index 00000000..ab52259f
--- /dev/null
+++ b/clang-r383902/include/llvm/Object/COFFModuleDefinition.h
@@ -0,0 +1,52 @@
+//===--- COFFModuleDefinition.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
+//
+//===----------------------------------------------------------------------===//
+//
+// Windows-specific.
+// A parser for the module-definition file (.def file).
+// Parsed results are directly written to Config global variable.
+//
+// The format of module-definition files are described in this document:
+// https://msdn.microsoft.com/en-us/library/28d6s79h.aspx
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_OBJECT_COFF_MODULE_DEFINITION_H
+#define LLVM_OBJECT_COFF_MODULE_DEFINITION_H
+
+#include "llvm/Object/COFF.h"
+#include "llvm/Object/COFFImportFile.h"
+
+namespace llvm {
+namespace object {
+
+struct COFFModuleDefinition {
+ std::vector<COFFShortExport> Exports;
+ std::string OutputFile;
+ std::string ImportName;
+ uint64_t ImageBase = 0;
+ uint64_t StackReserve = 0;
+ uint64_t StackCommit = 0;
+ uint64_t HeapReserve = 0;
+ uint64_t HeapCommit = 0;
+ uint32_t MajorImageVersion = 0;
+ uint32_t MinorImageVersion = 0;
+ uint32_t MajorOSVersion = 0;
+ uint32_t MinorOSVersion = 0;
+};
+
+// mingw and wine def files do not mangle _ for x86 which
+// is a consequence of legacy binutils' dlltool functionality.
+// This MingwDef flag should be removed once mingw stops this pratice.
+Expected<COFFModuleDefinition>
+parseCOFFModuleDefinition(MemoryBufferRef MB, COFF::MachineTypes Machine,
+ bool MingwDef = false);
+
+} // End namespace object.
+} // End namespace llvm.
+
+#endif