Improve Packer:addLoader(). We're still somewhat limited because of gcc-bug

#29823 (see http://gcc.gnu.org/PR29823).
This commit is contained in:
Markus F.X.J. Oberhumer
2006-11-16 18:52:20 +01:00
parent e61f481881
commit db7ae4ed5d
3 changed files with 33 additions and 38 deletions
+7 -4
View File
@@ -209,12 +209,11 @@ protected:
virtual upx_byte *getLoader() const;
virtual int getLoaderSize() const;
virtual void initLoader(const void *pdata, int plen, int small=-1);
void addLoader(const char *);
#if 1 && (ACC_CC_GNUC >= 0x040100)
//virtual void addLoader(const char *);
virtual void __acc_cdecl_va addLoader(const char *, ...) __attribute__((__sentinel__));
template <class T> void __acc_cdecl_va addLoader(const T *, ...) __attribute__((__sentinel__));
#else
//virtual void addLoader(const char *);
virtual void __acc_cdecl_va addLoader(const char *, ...);
template <class T> void __acc_cdecl_va addLoader(const T *, ...);
#endif
virtual int getLoaderSection(const char *name, int *slen=NULL) const;
virtual int getLoaderSectionStart(const char *name, int *slen=NULL) const;
@@ -293,6 +292,10 @@ private:
};
template <>
void __acc_cdecl_va Packer::addLoader<char>(const char *s, ...);
#endif /* already included */