From: Adrian Prantl Date: Fri, 28 Oct 2016 22:56:59 +0000 (+0000) Subject: Refactor DW_LNS_* into Dwarf.def X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=64660bf6bae0b3ad56c320f3d1eff99b7699fc1c;p=llvm Refactor DW_LNS_* into Dwarf.def git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285474 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/llvm/Support/Dwarf.def b/include/llvm/Support/Dwarf.def index c31fbd6dde9..1fd0fa8bb70 100644 --- a/include/llvm/Support/Dwarf.def +++ b/include/llvm/Support/Dwarf.def @@ -12,13 +12,13 @@ //===----------------------------------------------------------------------===// // TODO: Add other DW-based macros. -#if !(defined HANDLE_DW_TAG || defined HANDLE_DW_AT || \ - defined HANDLE_DW_FORM || defined HANDLE_DW_OP || \ - defined HANDLE_DW_LANG || defined HANDLE_DW_ATE || \ - defined HANDLE_DW_VIRTUALITY || defined HANDLE_DW_DEFAULTED || \ - defined HANDLE_DW_CC || defined HANDLE_DW_LNCT || \ - defined HANDLE_DW_MACRO || defined HANDLE_DW_RLE || \ - defined HANDLE_DW_CFA || defined HANDLE_DW_APPLE_PROPERTY) +#if !( \ + defined HANDLE_DW_TAG || defined HANDLE_DW_AT || defined HANDLE_DW_FORM || \ + defined HANDLE_DW_OP || defined HANDLE_DW_LANG || defined HANDLE_DW_ATE || \ + defined HANDLE_DW_VIRTUALITY || defined HANDLE_DW_DEFAULTED || \ + defined HANDLE_DW_CC || defined HANDLE_DW_LNS || defined HANDLE_DW_LNCT || \ + defined HANDLE_DW_MACRO || defined HANDLE_DW_RLE || \ + defined HANDLE_DW_CFA || defined HANDLE_DW_APPLE_PROPERTY) #error "Missing macro definition of HANDLE_DW*" #endif @@ -58,6 +58,10 @@ #define HANDLE_DW_CC(ID, NAME) #endif +#ifndef HANDLE_DW_LNS +#define HANDLE_DW_LNS(ID, NAME) +#endif + #ifndef HANDLE_DW_LNCT #define HANDLE_DW_LNCT(ID, NAME) #endif @@ -683,6 +687,22 @@ HANDLE_DW_CC(0xb5, BORLAND_thiscall) HANDLE_DW_CC(0xb6, BORLAND_fastcall) HANDLE_DW_CC(0xc0, LLVM_vectorcall) +/// Line Number Standard Opcode Encodings. +HANDLE_DW_LNS(0x00, extended_op) +HANDLE_DW_LNS(0x01, copy) +HANDLE_DW_LNS(0x02, advance_pc) +HANDLE_DW_LNS(0x03, advance_line) +HANDLE_DW_LNS(0x04, set_file) +HANDLE_DW_LNS(0x05, set_column) +HANDLE_DW_LNS(0x06, negate_stmt) +HANDLE_DW_LNS(0x07, set_basic_block) +HANDLE_DW_LNS(0x08, const_add_pc) +HANDLE_DW_LNS(0x09, fixed_advance_pc) +HANDLE_DW_LNS(0x0a, set_prologue_end) +HANDLE_DW_LNS(0x0b, set_epilogue_begin) +HANDLE_DW_LNS(0x0c, set_isa) + + // DWARF v5 Line number header entry format. HANDLE_DW_LNCT(0x01, path) HANDLE_DW_LNCT(0x02, directory_index) @@ -772,6 +792,7 @@ HANDLE_DW_APPLE_PROPERTY(0x4000, class) #undef HANDLE_DW_VIRTUALITY #undef HANDLE_DW_DEFAULTED #undef HANDLE_DW_CC +#undef HANDLE_DW_LNS #undef HANDLE_DW_LNCT #undef HANDLE_DW_MACRO #undef HANDLE_DW_RLE diff --git a/include/llvm/Support/Dwarf.h b/include/llvm/Support/Dwarf.h index 10ed5e3c003..b1b1639037c 100644 --- a/include/llvm/Support/Dwarf.h +++ b/include/llvm/Support/Dwarf.h @@ -205,21 +205,10 @@ enum DiscriminantList { DW_DSC_range = 0x01 }; +/// Line Number Standard Opcode Encodings. enum LineNumberOps { - // Line Number Standard Opcode Encodings - DW_LNS_extended_op = 0x00, - DW_LNS_copy = 0x01, - DW_LNS_advance_pc = 0x02, - DW_LNS_advance_line = 0x03, - DW_LNS_set_file = 0x04, - DW_LNS_set_column = 0x05, - DW_LNS_negate_stmt = 0x06, - DW_LNS_set_basic_block = 0x07, - DW_LNS_const_add_pc = 0x08, - DW_LNS_fixed_advance_pc = 0x09, - DW_LNS_set_prologue_end = 0x0a, - DW_LNS_set_epilogue_begin = 0x0b, - DW_LNS_set_isa = 0x0c +#define HANDLE_DW_LNS(ID, NAME) DW_LNS_##NAME = ID, +#include "llvm/Support/Dwarf.def" }; enum LineNumberExtendedOps { diff --git a/lib/Support/Dwarf.cpp b/lib/Support/Dwarf.cpp index 4f8b212aff4..72c787ee124 100644 --- a/lib/Support/Dwarf.cpp +++ b/lib/Support/Dwarf.cpp @@ -236,20 +236,13 @@ StringRef llvm::dwarf::DiscriminantString(unsigned Discriminant) { StringRef llvm::dwarf::LNStandardString(unsigned Standard) { switch (Standard) { - case DW_LNS_copy: return "DW_LNS_copy"; - case DW_LNS_advance_pc: return "DW_LNS_advance_pc"; - case DW_LNS_advance_line: return "DW_LNS_advance_line"; - case DW_LNS_set_file: return "DW_LNS_set_file"; - case DW_LNS_set_column: return "DW_LNS_set_column"; - case DW_LNS_negate_stmt: return "DW_LNS_negate_stmt"; - case DW_LNS_set_basic_block: return "DW_LNS_set_basic_block"; - case DW_LNS_const_add_pc: return "DW_LNS_const_add_pc"; - case DW_LNS_fixed_advance_pc: return "DW_LNS_fixed_advance_pc"; - case DW_LNS_set_prologue_end: return "DW_LNS_set_prologue_end"; - case DW_LNS_set_epilogue_begin: return "DW_LNS_set_epilogue_begin"; - case DW_LNS_set_isa: return "DW_LNS_set_isa"; + default: + return StringRef(); +#define HANDLE_DW_LNS(ID, NAME) \ + case DW_LNS_##NAME: \ + return "DW_LNS_" #NAME; +#include "llvm/Support/Dwarf.def" } - return StringRef(); } StringRef llvm::dwarf::LNExtendedString(unsigned Encoding) {