------- Comment #1 from tbm at cyrius dot com  2007-10-22 21:12 -------
struct LE16 {
  operator unsigned () const {
  }
};
struct LE32 {
};
namespace N_BELE_CTP {
  struct LEPolicy {
    typedef LE16 U16;
    typedef LE32 U32;
  };
};
namespace N_Elf {
  template <class THalf, class TWord, class TXword, class TAddr, class TOff>
struct ElfITypes {
    typedef THalf Half;
  };
  template <class TElfITypes> struct Ehdr {
    typedef typename TElfITypes::Half Half;
    Half e_shnum;
  };
}
namespace N_Elf32 {
  template <class TElfITypes> struct Phdr {
  };
  template <class TElfITypes> struct Shdr {
  } __attribute__((__packed__,__aligned__(1)));
}
namespace N_Elf {
  template <class TP> struct ElfClass_32 {
    typedef typename TP::U16 U16;
    typedef typename TP::U32 U32;
    typedef N_Elf::ElfITypes<U16, U32, U32, U32, U32> ElfITypes;
    typedef N_Elf ::Ehdr<ElfITypes> Ehdr;
    typedef N_Elf32::Shdr<ElfITypes> Shdr;
  };
}
typedef N_Elf::ElfClass_32<N_BELE_CTP::LEPolicy> ElfClass_LE32;
template <class TElfClass> class PackVmlinuxBase {
  protected:
    typedef TElfClass ElfClass;
    typedef typename ElfClass::Ehdr Ehdr;
    typedef typename ElfClass::Shdr Shdr;
    Shdr *shdri;
    Ehdr ehdri;
    virtual Shdr const *getElfSections();
    virtual bool canPack();
};
class PackVmlinuxI386 : public PackVmlinuxBase<ElfClass_LE32> {
  virtual const int *getCompressionMethods(void) const;
};
template <class T> typename T::Shdr const *PackVmlinuxBase<T>::getElfSections()
{
  Shdr const *p, *shstrsec=0;
  int j;
  for (p = shdri, j= ehdri.e_shnum; --j >= 0; ++p);
}
template <class T> bool PackVmlinuxBase<T>::canPack() {
  Shdr const *p, *const shstrsec = getElfSections();
}
const int *PackVmlinuxI386::getCompressionMethods(void) const {
}


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33865

Reply via email to