mirror of
https://github.com/upx/upx
synced 2025-09-28 19:06:07 +08:00
Merge branch 'devel' of https://github.com/upx/upx into devel
This commit is contained in:
commit
1f51ef7df6
28
.github/travis_init.sh
vendored
28
.github/travis_init.sh
vendored
|
@ -54,15 +54,7 @@ if [[ -n $APPVEYOR_JOB_ID ]]; then
|
|||
AR="link -lib"; CC="cl"; CXX="cl" ;; # standard system compiler
|
||||
esac
|
||||
fi # APPVEYOR_JOB_ID
|
||||
if [[ -n $CIRCLE_BUILD_NUM ]]; then
|
||||
case $BM_C in
|
||||
gcc | gcc-m??)
|
||||
CC="gcc"; CXX="g++" ;; # standard system compiler
|
||||
gcc-[34].[0-9]-m??)
|
||||
v=${BM_C:4:3}; CC="gcc-$v"; CXX="g++-$v" ;;
|
||||
esac
|
||||
fi # $CIRCLE_BUILD_NUM
|
||||
if [[ -n $TRAVIS_JOB_ID ]]; then
|
||||
if [[ -n $TRAVIS_JOB_ID ]]; then # TODO: should check for Ubuntu and not for Travis
|
||||
if [[ -n $BM_CROSS ]]; then
|
||||
BUILD_LOCAL_ZLIB=1
|
||||
case $BM_CROSS-$BM_C in
|
||||
|
@ -107,9 +99,9 @@ case $BM_C in
|
|||
gcc*-m32) CC="$CC -m32"; CXX="$CXX -m32" ;;
|
||||
gcc*-m64) CC="$CC -m64"; CXX="$CXX -m64" ;;
|
||||
esac
|
||||
case $BM_C in
|
||||
clang* | gcc*) CC="$CC -std=gnu89" ;;
|
||||
esac
|
||||
if [[ $BM_C =~ (^|\-)(clang|gcc)($|\-) ]]; then
|
||||
CC="$CC -std=gnu89"
|
||||
fi
|
||||
export AR CC CXX
|
||||
fi # CC_OVERRIDE
|
||||
|
||||
|
@ -128,9 +120,16 @@ mkbuilddirs() {
|
|||
done
|
||||
}
|
||||
# search for an existing toptop builddir
|
||||
for d in ./build/travis ./build ../build/travis ../build; do
|
||||
[[ -z $toptop_builddir && -d $d ]] && toptop_builddir=$(readlink -mn -- "$d")
|
||||
for d in . ..; do
|
||||
for subdir in "local" appveyor circle gitlab travis .; do
|
||||
dd=$d/build/$subdir
|
||||
if [[ -z $toptop_builddir && -d $dd ]]; then
|
||||
toptop_builddir=$(readlink -en -- "$dd")
|
||||
break 2
|
||||
fi
|
||||
done
|
||||
done
|
||||
unset d subdir dd
|
||||
[[ -z $toptop_builddir ]] && toptop_builddir=$(readlink -mn -- ./build)
|
||||
[[ -z $toptop_bdir ]] && toptop_bdir=$(readlink -mn -- "$toptop_builddir/$BM_C/$BM_B")
|
||||
|
||||
|
@ -144,6 +143,7 @@ unset toptop_builddir toptop_bdir
|
|||
|
||||
# ensure absolute directories
|
||||
make_absolute() {
|
||||
local d
|
||||
while [[ $# -gt 0 ]]; do
|
||||
if [[ -n ${!1} ]]; then
|
||||
d=$(readlink -mn -- "${!1}")
|
||||
|
|
83
.github/travis_testsuite_1.sh
vendored
83
.github/travis_testsuite_1.sh
vendored
|
@ -155,9 +155,39 @@ testsuite_check_sha $testdir
|
|||
|
||||
# /***********************************************************************
|
||||
# // compression tests
|
||||
# // info: we use fast compression levels because we want to
|
||||
# // test UPX and not the compression libraries
|
||||
# ************************************************************************/
|
||||
|
||||
testdir=t02_compress_ucl_3_no_filter
|
||||
testdir=t02_compress_ucl_nrv2b_3_no_filter
|
||||
mkdir $testdir; echo -n "\
|
||||
aefe34311318ea210df73cc3c8fa8c7258673f2e27f8a511a3a8f2af135a918d *amd64-linux.elf/upx-3.91
|
||||
a22a5bf72d564887d4b77f2d4e578ffece6e71b2a60cc1050862e13a65bff7c8 *arm-wince.pe/upx-3.91.exe
|
||||
9d0ccc7e39ef23845b858869bf9718c43de5fd0eee7c61edbd63565a55110032 *armeb-linux.elf/upx-3.91
|
||||
03988f039a5372125bf90b6658516656a8582dd1c46423cb12faeb82870348bb *i386-dos32.djgpp2.coff/upx-3.91.exe
|
||||
91a9d980788c2974448c83a84af245cf22dbbe01d33850849c8b0ebcec79aab4 *i386-linux.elf/upx-3.91
|
||||
1f4fcebacc6898338445c921ccec7ae51f4e21009c82cac9f66b70f556ee102b *i386-win32.pe/upx-3.91.exe
|
||||
08baacfa5d7e9339cd67263f41983e7c6f773fe9fce862f5daad58a2ac57ce28 *m68k-atari.tos/upx-3.91.ttp
|
||||
6b33a055b2c85dddd5fa6d846939d114ee24a342205f5a23aad31b8873041592 *mipsel-linux.elf/upx-3.91
|
||||
611bde9c83fe28dd8f7119414724318c23ef532577bb404d618d100e3a801fe8 *powerpc-linux.elf/upx-3.91
|
||||
" > $testdir/.sha256sums.expected
|
||||
time testsuite_run_compress --nrv2b -3 --no-filter
|
||||
|
||||
testdir=t02_compress_ucl_nrv2d_3_no_filter
|
||||
mkdir $testdir; echo -n "\
|
||||
6e9fd36871cf4afebf6609a39690565c933668ec6791e547916e93bbb32bbbd8 *amd64-linux.elf/upx-3.91
|
||||
45e86901dde8ef9ac9e9727110f629b57ca96d078e685f167b848e26a19a9693 *arm-wince.pe/upx-3.91.exe
|
||||
5f1584a75584ef3421ba4aec8167422e78d33e2451ef9a925560d1112eacf88e *armeb-linux.elf/upx-3.91
|
||||
8d2938aa4c2b6ee3c50a2fce1041592a766d48c26605b50129b8a14697cc9694 *i386-dos32.djgpp2.coff/upx-3.91.exe
|
||||
40ecb345f3094446b5035e058b3d2351c42cc9f108333e3e4d51a64142d8950c *i386-linux.elf/upx-3.91
|
||||
d96f0e8f42aff4c1b7b50d410498fd422852d9866338a12748f91488319a193f *i386-win32.pe/upx-3.91.exe
|
||||
5abbe27c76c6f12fb560e68dbf56dd0f39bb089428374c42be7585d09f7df1fd *m68k-atari.tos/upx-3.91.ttp
|
||||
ac552f23195dfebd82558e0523eaa6ece695c711f298ed9a3cdbb571f1df4f1d *mipsel-linux.elf/upx-3.91
|
||||
abd1d89deb62839e957089e636a1e53bfc7436f6fd2a210ac92907346c239562 *powerpc-linux.elf/upx-3.91
|
||||
" > $testdir/.sha256sums.expected
|
||||
time testsuite_run_compress --nrv2d -3 --no-filter
|
||||
|
||||
testdir=t02_compress_ucl_nrv2e_3_no_filter
|
||||
mkdir $testdir; echo -n "\
|
||||
86fcb3e1c6255511173ff9a86baf3407263677dfe73bff072b978da41c892bcb *amd64-linux.elf/upx-3.91
|
||||
16c0493d4d89e6c581748826afd26d2b4caeeae6074b0bdcf55747a4bc9777a5 *arm-wince.pe/upx-3.91.exe
|
||||
|
@ -169,21 +199,21 @@ a94d5ff62c061d60d64e838ea4bb7610a75cf26a0761b26f9da0efbd38e87ebe *i386-win32.pe/
|
|||
b61aa58e493b3961646e5c0bcb7f19f74b439fe8f5c934db25b00f97f51a05d0 *mipsel-linux.elf/upx-3.91
|
||||
21071b7dfa542a7e3d6c6a3586b4b844d28270a2beccdc5d03f608a2e71b787d *powerpc-linux.elf/upx-3.91
|
||||
" > $testdir/.sha256sums.expected
|
||||
time testsuite_run_compress -3 --no-filter
|
||||
time testsuite_run_compress --nrv2e -3 --no-filter
|
||||
|
||||
testdir=t03_compress_lzma_1_no_filter
|
||||
testdir=t03_compress_lzma_2_no_filter
|
||||
mkdir $testdir; echo -n "\
|
||||
9d5a98a9f2f17e4d7066e0b953dae94cdbb1ea28c6c792ce8f92e8b8d932b311 *amd64-linux.elf/upx-3.91
|
||||
99ad77f2280a5b4791ead800c7d4d5b29aa49ce40319616f682c1b29ddf20702 *arm-wince.pe/upx-3.91.exe
|
||||
07ca9736f1cd478bde2c8da95a6ecb95bd865dcf8ea48a396b13050ac40d196e *armeb-linux.elf/upx-3.91
|
||||
9e852e95b38ca57319d1e911bf97226a82b60dd336e201496c30bf62943aecce *i386-dos32.djgpp2.coff/upx-3.91.exe
|
||||
e408fbcbbe422c06fce0cfed5d28ea0f0ef7c1b9225bf1f5a7d789cc84fb93b8 *i386-linux.elf/upx-3.91
|
||||
e249633d550abe84953a15668e3d74660fd63e9e935bec8564d9df08116b015d *i386-win32.pe/upx-3.91.exe
|
||||
dd561ff9c530711be0934db352cf40f606066c280e27b26e7f8fd6dd1a087e6a *m68k-atari.tos/upx-3.91.ttp
|
||||
813536a8f1b8b8852ed52c560afce8b51612876ac5a3a9e51434d8677932ef7b *mipsel-linux.elf/upx-3.91
|
||||
5a3607a37534bab2a22c2e1dc3f1aa26144c2b75c261f092a3d9116d884edc1a *powerpc-linux.elf/upx-3.91
|
||||
2aee8c5a4d1fb9f7a84700b9880da1098544c110a188750a937e0c231cce664f *amd64-linux.elf/upx-3.91
|
||||
e6123d50ad24a10412ee97d9b440f5d5f9830f44a74aadd6ca20a7cee9a09d47 *arm-wince.pe/upx-3.91.exe
|
||||
3e7446d8ac6d9b442d6c8e6a3c45aec97f54aa8e90bdc554dd39976495bfa36a *armeb-linux.elf/upx-3.91
|
||||
1ecd559c89d3995fa0e7ecfa8e60b7746f804fc74ddce87d2c6cbeac8e372a39 *i386-dos32.djgpp2.coff/upx-3.91.exe
|
||||
8a9bde7a9b4a8f6c4efc4a28afe2b3cabe6c0b820dbc38c74c6abae73093b784 *i386-linux.elf/upx-3.91
|
||||
37f4f82c3de1ea3e444740b1112f42c8011129825bee011889beb4a592f5d9df *i386-win32.pe/upx-3.91.exe
|
||||
35333e53bc2f8a4a8e346f4fba0d366f024bd63d0b8bb083967193ae6466b6ff *m68k-atari.tos/upx-3.91.ttp
|
||||
20526efe085aee06bfde1952f90e9d0e1524e0cb56d582caa720934f55562b78 *mipsel-linux.elf/upx-3.91
|
||||
49c88eb39416858ac1a485dfd3bcee3825ef76ed5a16cb951f68f212a057c014 *powerpc-linux.elf/upx-3.91
|
||||
" > $testdir/.sha256sums.expected
|
||||
time testsuite_run_compress -1 --lzma --no-filter
|
||||
time testsuite_run_compress --lzma -2 --no-filter
|
||||
|
||||
testdir=t04_compress_ucl_2_all_filters
|
||||
mkdir $testdir; echo -n "\
|
||||
|
@ -211,21 +241,21 @@ dd561ff9c530711be0934db352cf40f606066c280e27b26e7f8fd6dd1a087e6a *m68k-atari.tos
|
|||
813536a8f1b8b8852ed52c560afce8b51612876ac5a3a9e51434d8677932ef7b *mipsel-linux.elf/upx-3.91
|
||||
5a3607a37534bab2a22c2e1dc3f1aa26144c2b75c261f092a3d9116d884edc1a *powerpc-linux.elf/upx-3.91
|
||||
" > $testdir/.sha256sums.expected
|
||||
time testsuite_run_compress -1 --all-methods --no-filter
|
||||
time testsuite_run_compress --all-methods -1 --no-filter
|
||||
|
||||
testdir=t06_compress_all_methods_no_lzma_no_filter
|
||||
testdir=t06_compress_all_methods_no_lzma_5_no_filter
|
||||
mkdir $testdir; echo -n "\
|
||||
7ff6b8f6f8ce5dfbe8dacd5f9e1ebc8c9af20059a00c52b5e3703d31718b4839 *amd64-linux.elf/upx-3.91
|
||||
63be06791e4caa5ea530bd58d0fe5af7830fe6907cebb4de6eec5a73ff57bf58 *arm-wince.pe/upx-3.91.exe
|
||||
b95b5a9a1ba4577df41c135b0061a7282e633f006ce6a5c729d73a708f80c0f0 *armeb-linux.elf/upx-3.91
|
||||
bbf7d2290c2aff5c914f14aaa7a089895888f3e25b468ba406f9723c046b0ccb *i386-dos32.djgpp2.coff/upx-3.91.exe
|
||||
b615ce3f45d7b727594c550cb2066fff154653ffd64a5329ee6723175224cc47 *i386-linux.elf/upx-3.91
|
||||
a647ed1aea16f58b544228279ad7159cd3ec5c3533efef1fd2df5a5a59b5d663 *i386-win32.pe/upx-3.91.exe
|
||||
4ce409cc6c1a0e26b0d5e361cd6ef7b0198830a3244235eff3edb18099d1ad22 *m68k-atari.tos/upx-3.91.ttp
|
||||
8b2b9f13dd613b62d9028d2c773a2633bb756a084e5620b3496449ffe1c2dc9e *mipsel-linux.elf/upx-3.91
|
||||
84e82cfffa594230ee44aa06937ccb088778c05d5d67985a314764385018f59d *powerpc-linux.elf/upx-3.91
|
||||
d2607801730ae28244a4ca310676f912131383d6126801df05ff54903c9ef18a *amd64-linux.elf/upx-3.91
|
||||
575df11d8450ce11fabc007b913a95977f6e131d0472c92e22ef3af12d325904 *arm-wince.pe/upx-3.91.exe
|
||||
7ee87918e7473d44c3a5af014cad48298f0a99c4028880d0a87a5a1776b977c7 *armeb-linux.elf/upx-3.91
|
||||
dcdcad70f1b79290022041938957dccd4daa2f2fad166864cfb55f3400d5b03b *i386-dos32.djgpp2.coff/upx-3.91.exe
|
||||
fece6171853a531cffdf264ae0ca9a47ee3b9b9a1416adc1ba2632e5da8a5d93 *i386-linux.elf/upx-3.91
|
||||
771416e8a06041ab15f5f45702328eae8db53fcf29aee90c93815e1fc5e819de *i386-win32.pe/upx-3.91.exe
|
||||
73dc44603f0fbf3a2a9e470c1291671b2670fa7f2f0cb54a8a7cdb883d1783c9 *m68k-atari.tos/upx-3.91.ttp
|
||||
48877f2e614d4697e0ebc6d3f69e59328e0942e48bb5e54b4d9b9fe3cb917d9f *mipsel-linux.elf/upx-3.91
|
||||
9c7f990bb0d322e5ac5131cb4180541b3d8918e1c81a730311e359e456ee92d0 *powerpc-linux.elf/upx-3.91
|
||||
" > $testdir/.sha256sums.expected
|
||||
time testsuite_run_compress --all-methods --no-lzma --no-filter
|
||||
time testsuite_run_compress --all-methods --no-lzma -5 --no-filter
|
||||
|
||||
|
||||
testsuite_header "UPX testsuite summary"
|
||||
|
@ -239,6 +269,9 @@ if [[ -f $upx_exe ]]; then
|
|||
fi
|
||||
echo "upx_testsuite_SRCDIR='$upx_testsuite_SRCDIR'"
|
||||
echo "upx_testsuite_BUILDDIR='$upx_testsuite_BUILDDIR'"
|
||||
echo ".sha256sums.{expected,current}:"
|
||||
cat */.sha256sums.expected | LC_ALL=C sort -u | wc
|
||||
cat */.sha256sums.current | LC_ALL=C sort -u | wc
|
||||
echo
|
||||
if [[ $exit_code == 0 ]]; then
|
||||
echo "UPX testsuite passed. All done."
|
||||
|
|
58
.gitlab-ci.yml
Normal file
58
.gitlab-ci.yml
Normal file
|
@ -0,0 +1,58 @@
|
|||
# Support for GibLab CI -- https://gitlab.com/
|
||||
# Copyright (C) Markus Franz Xaver Johannes Oberhumer
|
||||
|
||||
.fedora_install_compilers: &fedora_install_compilers
|
||||
time dnf install -y --best --allowerasing
|
||||
coreutils curl diffutils grep gzip sed
|
||||
bzip2 file findutils git perl tar wget which xz
|
||||
clang gcc gcc-c++ lcov make valgrind
|
||||
glibc-devel libasan libstdc++-devel libubsan zlib-devel
|
||||
glibc-devel.i686 libasan.i686 libstdc++-devel.i686 libubsan.i686 zlib-devel.i686
|
||||
|
||||
before_script:
|
||||
- uname -a; pwd; id; umask; env
|
||||
- time rpm -qa | LC_ALL=C sort
|
||||
- *fedora_install_compilers
|
||||
- umask 022; mkdir -p ../deps ../build/gitlab
|
||||
- git submodule update --init --recursive
|
||||
- cd ../deps && time wget -q -O - https://github.com/upx/upx/releases/download/v3.00/ucl-1.03.tar.xz | tar -xJ
|
||||
- cd ../deps && time wget -q -O - https://github.com/upx/upx/releases/download/v3.00/zlib-1.2.8.tar.xz | tar -xJ
|
||||
- cd ../deps && time git clone https://github.com/upx/upx-testsuite
|
||||
- cd $CI_PROJECT_DIR
|
||||
- export TRAVIS_OS_NAME=linux
|
||||
|
||||
Fedora23-clang+gcc-m32+m64:
|
||||
image: fedora:23
|
||||
script:
|
||||
- time C=clang-m32 bash ./.github/travis_build.sh
|
||||
- time C=gcc-m32 bash ./.github/travis_build.sh
|
||||
- time C=clang-m64 bash ./.github/travis_build.sh
|
||||
- time C=gcc-m64 bash ./.github/travis_build.sh
|
||||
- time C=gcc-m64 B=sanitize bash ./.github/travis_build.sh
|
||||
- time C=clang-m32 bash ./.github/travis_testsuite_1.sh
|
||||
- time C=gcc-m32 bash ./.github/travis_testsuite_1.sh
|
||||
- time C=clang-m64 bash ./.github/travis_testsuite_1.sh
|
||||
- time C=gcc-m64 bash ./.github/travis_testsuite_1.sh
|
||||
- time C=gcc-m64 B=sanitize bash ./.github/travis_testsuite_1.sh
|
||||
- time C=gcc-m64 T=valgrind bash ./.github/travis_testsuite_1.sh
|
||||
tags: [ shared ]
|
||||
except: [ tags ]
|
||||
|
||||
Fedora24-clang+gcc-m32+m64:
|
||||
image: fedora:24
|
||||
script:
|
||||
- time C=clang-m32 bash ./.github/travis_build.sh
|
||||
- time C=gcc-m32 bash ./.github/travis_build.sh
|
||||
- time C=clang-m64 bash ./.github/travis_build.sh
|
||||
- time C=gcc-m64 bash ./.github/travis_build.sh
|
||||
- time C=gcc-m64 B=sanitize bash ./.github/travis_build.sh
|
||||
- time C=clang-m32 bash ./.github/travis_testsuite_1.sh
|
||||
- time C=gcc-m32 bash ./.github/travis_testsuite_1.sh
|
||||
- time C=clang-m64 bash ./.github/travis_testsuite_1.sh
|
||||
- time C=gcc-m64 bash ./.github/travis_testsuite_1.sh
|
||||
- time C=gcc-m64 B=sanitize bash ./.github/travis_testsuite_1.sh
|
||||
- time C=gcc-m64 T=valgrind bash ./.github/travis_testsuite_1.sh
|
||||
tags: [ shared ]
|
||||
except: [ tags ]
|
||||
|
||||
# vim:set ts=2 sw=2 et:
|
13
.travis.yml
13
.travis.yml
|
@ -14,13 +14,12 @@ branches:
|
|||
- devel
|
||||
- travis
|
||||
|
||||
addons:
|
||||
sources: &S
|
||||
- ubuntu-toolchain-r-test
|
||||
- llvm-toolchain-precise-3.5
|
||||
- llvm-toolchain-precise-3.6
|
||||
- llvm-toolchain-precise-3.7
|
||||
- llvm-toolchain-precise-3.8
|
||||
.ubuntu_toolchain_sources: &S
|
||||
- ubuntu-toolchain-r-test
|
||||
- llvm-toolchain-precise-3.5
|
||||
- llvm-toolchain-precise-3.6
|
||||
- llvm-toolchain-precise-3.7
|
||||
- llvm-toolchain-precise-3.8
|
||||
|
||||
env:
|
||||
global:
|
||||
|
|
15
src/bele.h
15
src/bele.h
|
@ -325,7 +325,7 @@ __packed_struct(BE16)
|
|||
BE16& operator <<= (unsigned v) { set_be16(d, get_be16(d) << v); return *this; }
|
||||
BE16& operator >>= (unsigned v) { set_be16(d, get_be16(d) >> v); return *this; }
|
||||
|
||||
operator unsigned () const { return get_be16(d); }
|
||||
operator unsigned () const { return get_be16(d); }
|
||||
__packed_struct_end()
|
||||
|
||||
|
||||
|
@ -343,7 +343,7 @@ __packed_struct(BE32)
|
|||
BE32& operator <<= (unsigned v) { set_be32(d, get_be32(d) << v); return *this; }
|
||||
BE32& operator >>= (unsigned v) { set_be32(d, get_be32(d) >> v); return *this; }
|
||||
|
||||
operator unsigned () const { return get_be32(d); }
|
||||
operator unsigned () const { return get_be32(d); }
|
||||
__packed_struct_end()
|
||||
|
||||
|
||||
|
@ -361,7 +361,7 @@ __packed_struct(BE64)
|
|||
BE64& operator <<= (unsigned v) { set_be64(d, get_be64(d) << v); return *this; }
|
||||
BE64& operator >>= (unsigned v) { set_be64(d, get_be64(d) >> v); return *this; }
|
||||
|
||||
operator upx_uint64_t () const { return get_be64(d); }
|
||||
operator upx_uint64_t () const { return get_be64(d); }
|
||||
__packed_struct_end()
|
||||
|
||||
|
||||
|
@ -379,16 +379,13 @@ __packed_struct(LE16)
|
|||
LE16& operator <<= (unsigned v) { set_le16(d, get_le16(d) << v); return *this; }
|
||||
LE16& operator >>= (unsigned v) { set_le16(d, get_le16(d) >> v); return *this; }
|
||||
|
||||
operator unsigned () const { return get_le16(d); }
|
||||
operator unsigned () const { return get_le16(d); }
|
||||
__packed_struct_end()
|
||||
|
||||
|
||||
__packed_struct(LE32)
|
||||
unsigned char d[4];
|
||||
|
||||
//inline LE32() { }
|
||||
//LE32(unsigned v) { set_le32(d, v); }
|
||||
|
||||
LE32& operator = (unsigned v) { set_le32(d, v); return *this; }
|
||||
LE32& operator += (unsigned v) { set_le32(d, get_le32(d) + v); return *this; }
|
||||
LE32& operator -= (unsigned v) { set_le32(d, get_le32(d) - v); return *this; }
|
||||
|
@ -400,7 +397,7 @@ __packed_struct(LE32)
|
|||
LE32& operator <<= (unsigned v) { set_le32(d, get_le32(d) << v); return *this; }
|
||||
LE32& operator >>= (unsigned v) { set_le32(d, get_le32(d) >> v); return *this; }
|
||||
|
||||
operator unsigned () const { return get_le32(d); }
|
||||
operator unsigned () const { return get_le32(d); }
|
||||
__packed_struct_end()
|
||||
|
||||
|
||||
|
@ -418,7 +415,7 @@ __packed_struct(LE64)
|
|||
LE64& operator <<= (unsigned v) { set_le64(d, get_le64(d) << v); return *this; }
|
||||
LE64& operator >>= (unsigned v) { set_le64(d, get_le64(d) >> v); return *this; }
|
||||
|
||||
operator upx_uint64_t () const { return get_le64(d); }
|
||||
operator upx_uint64_t () const { return get_le64(d); }
|
||||
__packed_struct_end()
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user