summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2013-04-10 15:18:39 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2013-04-10 15:18:39 +0000
commit05b96447ab27c394c6cc161ff9b2515ad673d74f (patch)
treeb865c68269e21d4c5988bcad957f835b9b9597b5
parent78fcc47aeedc93e294a94714b6bcd69ff0b06d5f (diff)
downloadllvm-05b96447ab27c394c6cc161ff9b2515ad673d74f.tar.gz
llvm-05b96447ab27c394c6cc161ff9b2515ad673d74f.tar.bz2
llvm-05b96447ab27c394c6cc161ff9b2515ad673d74f.tar.xz
Simplify the templating a bit.
Since we only ever instantiate with a type that is a MachOType instantiation, we don't need to pass template argument. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179178 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--include/llvm/Object/MachO.h43
1 files changed, 19 insertions, 24 deletions
diff --git a/include/llvm/Object/MachO.h b/include/llvm/Object/MachO.h
index 2eb094af4c..f08b3b5257 100644
--- a/include/llvm/Object/MachO.h
+++ b/include/llvm/Object/MachO.h
@@ -53,14 +53,14 @@ typedef typename MachODataTypeTypedefHelperCommon<E>::MachOInt64 MachOInt64;
template<class MachOT>
struct MachODataTypeTypedefHelper;
-template<template<endianness, bool> class MachOT, endianness TargetEndianness>
-struct MachODataTypeTypedefHelper<MachOT<TargetEndianness, false> > {
+template<endianness TargetEndianness>
+struct MachODataTypeTypedefHelper<MachOType<TargetEndianness, false> > {
typedef MachODataTypeTypedefHelperCommon<TargetEndianness> Base;
typedef typename Base::MachOInt32 MachOIntPtr;
};
-template<template<endianness, bool> class MachOT, endianness TargetEndianness>
-struct MachODataTypeTypedefHelper<MachOT<TargetEndianness, true> > {
+template<endianness TargetEndianness>
+struct MachODataTypeTypedefHelper<MachOType<TargetEndianness, true> > {
typedef MachODataTypeTypedefHelperCommon<TargetEndianness> Base;
typedef typename Base::MachOInt64 MachOIntPtr;
};
@@ -79,8 +79,8 @@ namespace MachOFormat {
template<class MachOT>
struct Section;
- template<template<endianness, bool> class MachOT, endianness TargetEndianness>
- struct Section<MachOT<TargetEndianness, false> > {
+ template<endianness TargetEndianness>
+ struct Section<MachOType<TargetEndianness, false> > {
LLVM_MACHOB_IMPORT_TYPES(TargetEndianness)
char Name[16];
char SegmentName[16];
@@ -95,9 +95,8 @@ namespace MachOFormat {
MachOInt32 Reserved2;
};
- template<template<endianness, bool> class MachOT,
- endianness TargetEndianness>
- struct Section<MachOT<TargetEndianness, true> > {
+ template<endianness TargetEndianness>
+ struct Section<MachOType<TargetEndianness, true> > {
LLVM_MACHOB_IMPORT_TYPES(TargetEndianness)
char Name[16];
char SegmentName[16];
@@ -132,10 +131,9 @@ namespace MachOFormat {
template<class MachOT>
struct SymbolTableEntry;
- template<template<endianness, bool> class MachOT, endianness TargetEndianness,
- bool Is64Bits>
- struct SymbolTableEntry<MachOT<TargetEndianness, Is64Bits> > {
- LLVM_MACHO_IMPORT_TYPES(MachOT, TargetEndianness, Is64Bits)
+ template<endianness TargetEndianness, bool Is64Bits>
+ struct SymbolTableEntry<MachOType<TargetEndianness, Is64Bits> > {
+ LLVM_MACHO_IMPORT_TYPES(MachOType, TargetEndianness, Is64Bits)
MachOInt32 StringIndex;
uint8_t Type;
uint8_t SectionIndex;
@@ -164,10 +162,9 @@ namespace MachOFormat {
template<class MachOT>
struct SegmentLoadCommand;
- template<template<endianness, bool> class MachOT, endianness TargetEndianness,
- bool Is64Bits>
- struct SegmentLoadCommand<MachOT<TargetEndianness, Is64Bits> > {
- LLVM_MACHO_IMPORT_TYPES(MachOT, TargetEndianness, Is64Bits)
+ template<endianness TargetEndianness, bool Is64Bits>
+ struct SegmentLoadCommand<MachOType<TargetEndianness, Is64Bits> > {
+ LLVM_MACHO_IMPORT_TYPES(MachOType, TargetEndianness, Is64Bits)
MachOInt32 Type;
MachOInt32 Size;
char Name[16];
@@ -319,13 +316,11 @@ struct MachOObjectFileHelper<true> :
template<bool is64Bits>
class MachOObjectFile : public MachOObjectFileBase {
public:
- static const macho::LoadCommandType SegmentLoadType =
- MachOObjectFileHelper<is64Bits>::SegmentLoadType;
- typedef typename MachOObjectFileHelper<is64Bits>::SegmentLoadCommand
- SegmentLoadCommand;
- typedef typename MachOObjectFileHelper<is64Bits>::SymbolTableEntry
- SymbolTableEntry;
- typedef typename MachOObjectFileHelper<is64Bits>::Section Section;
+ typedef MachOObjectFileHelper<is64Bits> Helper;
+ static const macho::LoadCommandType SegmentLoadType = Helper::SegmentLoadType;
+ typedef typename Helper::SegmentLoadCommand SegmentLoadCommand;
+ typedef typename Helper::SymbolTableEntry SymbolTableEntry;
+ typedef typename Helper::Section Section;
MachOObjectFile(MemoryBuffer *Object, error_code &ec);
static bool classof(const Binary *v);