From 87c9a125d8df29895e0ba1b48f8c012ad3e27b89 Mon Sep 17 00:00:00 2001 From: "Duncan P. N. Exon Smith" Date: Fri, 6 Feb 2015 23:45:37 +0000 Subject: [PATCH] Support: Rewrite AttributeEncodingString(), NFC git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@228469 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/Support/Dwarf.def | 25 ++++++++++++++++++++++++- include/llvm/Support/Dwarf.h | 19 ++----------------- lib/Support/Dwarf.cpp | 22 +++++----------------- 3 files changed, 31 insertions(+), 35 deletions(-) diff --git a/include/llvm/Support/Dwarf.def b/include/llvm/Support/Dwarf.def index 34bb7fb0bdf..9c788298cf7 100644 --- a/include/llvm/Support/Dwarf.def +++ b/include/llvm/Support/Dwarf.def @@ -12,7 +12,7 @@ //===----------------------------------------------------------------------===// // TODO: Add other DW-based macros. -#if !(defined HANDLE_DW_TAG || defined HANDLE_DW_LANG) +#if !(defined HANDLE_DW_TAG || defined HANDLE_DW_LANG || defined HANDLE_DW_ATE) #error "Missing macro definition of HANDLE_DW*" #endif @@ -24,6 +24,10 @@ #define HANDLE_DW_LANG(ID, NAME) #endif +#ifndef HANDLE_DW_ATE +#define HANDLE_DW_ATE(ID, NAME) +#endif + HANDLE_DW_TAG(0x0001, array_type) HANDLE_DW_TAG(0x0002, class_type) HANDLE_DW_TAG(0x0003, entry_point) @@ -137,5 +141,24 @@ HANDLE_DW_LANG(0x001a, C_plus_plus_11) HANDLE_DW_LANG(0x001b, OCaml) HANDLE_DW_LANG(0x8001, Mips_Assembler) +// DWARF attribute type encodings. +HANDLE_DW_ATE(0x01, address) +HANDLE_DW_ATE(0x02, boolean) +HANDLE_DW_ATE(0x03, complex_float) +HANDLE_DW_ATE(0x04, float) +HANDLE_DW_ATE(0x05, signed) +HANDLE_DW_ATE(0x06, signed_char) +HANDLE_DW_ATE(0x07, unsigned) +HANDLE_DW_ATE(0x08, unsigned_char) +HANDLE_DW_ATE(0x09, imaginary_float) +HANDLE_DW_ATE(0x0a, packed_decimal) +HANDLE_DW_ATE(0x0b, numeric_string) +HANDLE_DW_ATE(0x0c, edited) +HANDLE_DW_ATE(0x0d, signed_fixed) +HANDLE_DW_ATE(0x0e, unsigned_fixed) +HANDLE_DW_ATE(0x0f, decimal_float) +HANDLE_DW_ATE(0x10, UTF) + #undef HANDLE_DW_TAG #undef HANDLE_DW_LANG +#undef HANDLE_DW_ATE diff --git a/include/llvm/Support/Dwarf.h b/include/llvm/Support/Dwarf.h index 46bf7328541..be1273604f5 100644 --- a/include/llvm/Support/Dwarf.h +++ b/include/llvm/Support/Dwarf.h @@ -455,23 +455,8 @@ enum LocationAtom { }; enum TypeKind { - // Encoding attribute values - DW_ATE_address = 0x01, - DW_ATE_boolean = 0x02, - DW_ATE_complex_float = 0x03, - DW_ATE_float = 0x04, - DW_ATE_signed = 0x05, - DW_ATE_signed_char = 0x06, - DW_ATE_unsigned = 0x07, - DW_ATE_unsigned_char = 0x08, - DW_ATE_imaginary_float = 0x09, - DW_ATE_packed_decimal = 0x0a, - DW_ATE_numeric_string = 0x0b, - DW_ATE_edited = 0x0c, - DW_ATE_signed_fixed = 0x0d, - DW_ATE_unsigned_fixed = 0x0e, - DW_ATE_decimal_float = 0x0f, - DW_ATE_UTF = 0x10, +#define HANDLE_DW_ATE(ID, NAME) DW_ATE_##NAME = ID, +#include "llvm/Support/Dwarf.def" DW_ATE_lo_user = 0x80, DW_ATE_hi_user = 0xff }; diff --git a/lib/Support/Dwarf.cpp b/lib/Support/Dwarf.cpp index 7b94b71834d..553a436938b 100644 --- a/lib/Support/Dwarf.cpp +++ b/lib/Support/Dwarf.cpp @@ -406,24 +406,12 @@ const char *llvm::dwarf::OperationEncodingString(unsigned Encoding) { const char *llvm::dwarf::AttributeEncodingString(unsigned Encoding) { switch (Encoding) { - case DW_ATE_address: return "DW_ATE_address"; - case DW_ATE_boolean: return "DW_ATE_boolean"; - case DW_ATE_complex_float: return "DW_ATE_complex_float"; - case DW_ATE_float: return "DW_ATE_float"; - case DW_ATE_signed: return "DW_ATE_signed"; - case DW_ATE_signed_char: return "DW_ATE_signed_char"; - case DW_ATE_unsigned: return "DW_ATE_unsigned"; - case DW_ATE_unsigned_char: return "DW_ATE_unsigned_char"; - case DW_ATE_imaginary_float: return "DW_ATE_imaginary_float"; - case DW_ATE_UTF: return "DW_ATE_UTF"; - case DW_ATE_packed_decimal: return "DW_ATE_packed_decimal"; - case DW_ATE_numeric_string: return "DW_ATE_numeric_string"; - case DW_ATE_edited: return "DW_ATE_edited"; - case DW_ATE_signed_fixed: return "DW_ATE_signed_fixed"; - case DW_ATE_unsigned_fixed: return "DW_ATE_unsigned_fixed"; - case DW_ATE_decimal_float: return "DW_ATE_decimal_float"; + default: return nullptr; +#define HANDLE_DW_ATE(ID, NAME) \ + case DW_ATE_##NAME: \ + return "DW_ATE_" #NAME; +#include "llvm/Support/Dwarf.def" } - return nullptr; } const char *llvm::dwarf::DecimalSignString(unsigned Sign) { -- 2.34.1