aboutsummaryrefslogtreecommitdiff
path: root/elfcpp/elfcpp_swap.h
diff options
context:
space:
mode:
authorIan Lance Taylor <iant@google.com>2007-10-01 21:25:23 +0000
committerIan Lance Taylor <iant@google.com>2007-10-01 21:25:23 +0000
commit5b3463d9ee95e3b9631851ef51dd37377949b06d (patch)
treea97823681001d33a2eb5b078babde3f1f7812ad9 /elfcpp/elfcpp_swap.h
parent3a9eaa7da6fb02fcd137b2b7a4f99c6eb0221abd (diff)
downloadgdb-5b3463d9ee95e3b9631851ef51dd37377949b06d.zip
gdb-5b3463d9ee95e3b9631851ef51dd37377949b06d.tar.gz
gdb-5b3463d9ee95e3b9631851ef51dd37377949b06d.tar.bz2
Add Signed_valtype and use it for sign extension. Fix names of rela8.
Diffstat (limited to 'elfcpp/elfcpp_swap.h')
-rw-r--r--elfcpp/elfcpp_swap.h10
1 files changed, 7 insertions, 3 deletions
diff --git a/elfcpp/elfcpp_swap.h b/elfcpp/elfcpp_swap.h
index 24ffccd..329ed16 100644
--- a/elfcpp/elfcpp_swap.h
+++ b/elfcpp/elfcpp_swap.h
@@ -53,8 +53,8 @@ struct Endian
};
// Valtype_base is a template based on size (8, 16, 32, 64) which
-// defines the type Valtype as the unsigned integer of the specified
-// size.
+// defines the type Valtype as the unsigned integer, and
+// Signed_valtype as the signed integer, of the specified size.
template<int size>
struct Valtype_base;
@@ -62,25 +62,29 @@ struct Valtype_base;
template<>
struct Valtype_base<8>
{
- typedef unsigned char Valtype;
+ typedef uint8_t Valtype;
+ typedef int8_t Signed_valtype;
};
template<>
struct Valtype_base<16>
{
typedef uint16_t Valtype;
+ typedef int16_t Signed_valtype;
};
template<>
struct Valtype_base<32>
{
typedef uint32_t Valtype;
+ typedef int32_t Signed_valtype;
};
template<>
struct Valtype_base<64>
{
typedef uint64_t Valtype;
+ typedef int64_t Signed_valtype;
};
// Convert_endian is a template based on size and on whether the host