summaryrefslogtreecommitdiff
path: root/include/llvm
diff options
context:
space:
mode:
Diffstat (limited to 'include/llvm')
-rw-r--r--include/llvm/MC/MCAsmInfo.h20
1 files changed, 19 insertions, 1 deletions
diff --git a/include/llvm/MC/MCAsmInfo.h b/include/llvm/MC/MCAsmInfo.h
index a091bbd85d..55dc40afe5 100644
--- a/include/llvm/MC/MCAsmInfo.h
+++ b/include/llvm/MC/MCAsmInfo.h
@@ -29,6 +29,18 @@ class MCStreamer;
class MCSymbol;
class MCContext;
+namespace WinEH {
+enum class EncodingType {
+ ET_Invalid, /// Invalid
+ ET_Alpha, /// Windows Alpha
+ ET_Alpha64, /// Windows AXP64
+ ET_ARM, /// Windows NT (Windows on ARM)
+ ET_CE, /// Windows CE ARM, PowerPC, SH3, SH4
+ ET_Itanium, /// Windows x64, Windows Itanium (IA-64)
+ ET_MIPS = ET_Alpha,
+};
+}
+
namespace ExceptionHandling {
enum ExceptionsType { None, DwarfCFI, SjLj, ARM, Win64 };
}
@@ -286,9 +298,12 @@ protected:
/// false.
bool SupportsDebugInformation;
- /// True if target supports exception handling. Defaults to None
+ /// Exception handling format for the target. Defaults to None.
ExceptionHandling::ExceptionsType ExceptionsType;
+ /// Windows exception handling data (.pdata) encoding. Defaults to Invalid.
+ WinEH::EncodingType WinEHEncodingType;
+
/// True if Dwarf2 output generally uses relocations for references to other
/// .debug_* sections.
bool DwarfUsesRelocationsAcrossSections;
@@ -460,6 +475,9 @@ public:
ExceptionHandling::ExceptionsType getExceptionHandlingType() const {
return ExceptionsType;
}
+ WinEH::EncodingType getWinEHEncodingType() const {
+ return WinEHEncodingType;
+ }
bool isExceptionHandlingDwarf() const {
return (ExceptionsType == ExceptionHandling::DwarfCFI ||
ExceptionsType == ExceptionHandling::ARM ||