diff options
author | James Cowgill <jcowgill@debian.org> | 2020-01-27 17:46:41 +0000 |
---|---|---|
committer | James Cowgill <jcowgill@debian.org> | 2020-01-27 17:46:41 +0000 |
commit | e91ae1bd09e5b1c89f608b3e56edc4da45a024f8 (patch) | |
tree | d6ee77682cc2e2ff1fc8b8b630b32ed6ae927826 | |
parent | 36e2d996ae10918c3911b23cac7584b73103d910 (diff) | |
parent | 50a6b620e3393d2e046249d572502e766937aba4 (diff) |
Update upstream source from tag 'upstream/0.4.11'
Update to upstream version '0.4.11'
with Debian dir 299d2441066484c9308654f07489a4d0e08894d1
-rw-r--r-- | common/CompilerDetect.h | 6 | ||||
-rw-r--r-- | common/versionNumber.h | 2 | ||||
-rwxr-xr-x | configure | 26 | ||||
-rw-r--r-- | configure.ac | 8 | ||||
-rw-r--r-- | libopenmpt/dox/changelog.md | 5 | ||||
-rw-r--r-- | libopenmpt/libopenmpt_version.h | 2 | ||||
-rw-r--r-- | libopenmpt/libopenmpt_version.mk | 4 | ||||
-rw-r--r-- | man/openmpt123.1 | 2 | ||||
-rw-r--r-- | soundlib/ModChannel.cpp | 4 | ||||
-rw-r--r-- | soundlib/OPL.cpp | 6 | ||||
-rw-r--r-- | soundlib/OPL.h | 2 | ||||
-rw-r--r-- | soundlib/Snd_fx.cpp | 5 | ||||
-rw-r--r-- | soundlib/Sndfile.cpp | 3 | ||||
-rw-r--r-- | soundlib/pattern.cpp | 2 | ||||
-rw-r--r-- | test/test.cpp | 16 |
15 files changed, 51 insertions, 42 deletions
diff --git a/common/CompilerDetect.h b/common/CompilerDetect.h index 5087163..b51dc19 100644 --- a/common/CompilerDetect.h +++ b/common/CompilerDetect.h @@ -58,7 +58,11 @@ #elif defined(_MSC_VER) #define MPT_COMPILER_MSVC 1 -#if (_MSC_VER >= 1922) +#if (_MSC_VER >= 1924) +#define MPT_COMPILER_MSVC_VERSION MPT_COMPILER_MAKE_VERSION2(2019,4) +#elif (_MSC_VER >= 1923) +#define MPT_COMPILER_MSVC_VERSION MPT_COMPILER_MAKE_VERSION2(2019,3) +#elif (_MSC_VER >= 1922) #define MPT_COMPILER_MSVC_VERSION MPT_COMPILER_MAKE_VERSION2(2019,2) #elif (_MSC_VER >= 1921) #define MPT_COMPILER_MSVC_VERSION MPT_COMPILER_MAKE_VERSION2(2019,1) diff --git a/common/versionNumber.h b/common/versionNumber.h index 35bb47f..c50faa2 100644 --- a/common/versionNumber.h +++ b/common/versionNumber.h @@ -20,7 +20,7 @@ OPENMPT_NAMESPACE_BEGIN //Version definitions. The only thing that needs to be changed when changing version number. #define VER_MAJORMAJOR 1 #define VER_MAJOR 28 -#define VER_MINOR 08 +#define VER_MINOR 09 #define VER_MINORMINOR 00 //Numerical value of the version. @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for libopenmpt 0.4.10+release.autotools. +# Generated by GNU Autoconf 2.69 for libopenmpt 0.4.11+release.autotools. # # Report bugs to <https://bugs.openmpt.org/>. # @@ -590,8 +590,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='libopenmpt' PACKAGE_TARNAME='libopenmpt' -PACKAGE_VERSION='0.4.10+release.autotools' -PACKAGE_STRING='libopenmpt 0.4.10+release.autotools' +PACKAGE_VERSION='0.4.11+release.autotools' +PACKAGE_STRING='libopenmpt 0.4.11+release.autotools' PACKAGE_BUGREPORT='https://bugs.openmpt.org/' PACKAGE_URL='https://lib.openmpt.org/' @@ -1485,7 +1485,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures libopenmpt 0.4.10+release.autotools to adapt to many kinds of systems. +\`configure' configures libopenmpt 0.4.11+release.autotools to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1556,7 +1556,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of libopenmpt 0.4.10+release.autotools:";; + short | recursive ) echo "Configuration of libopenmpt 0.4.11+release.autotools:";; esac cat <<\_ACEOF @@ -1756,7 +1756,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -libopenmpt configure 0.4.10+release.autotools +libopenmpt configure 0.4.11+release.autotools generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2246,7 +2246,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by libopenmpt $as_me 0.4.10+release.autotools, which was +It was created by libopenmpt $as_me 0.4.11+release.autotools, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -3117,7 +3117,7 @@ fi # Define the identity of the package. PACKAGE='libopenmpt' - VERSION='0.4.10+release.autotools' + VERSION='0.4.11+release.autotools' cat >>confdefs.h <<_ACEOF @@ -17281,13 +17281,13 @@ LIBOPENMPT_LTVER_AGE=1 -$as_echo "#define MPT_SVNURL \"https://source.openmpt.org/svn/openmpt/tags/libopenmpt-0.4.10\"" >>confdefs.h +$as_echo "#define MPT_SVNURL \"https://source.openmpt.org/svn/openmpt/tags/libopenmpt-0.4.11\"" >>confdefs.h -$as_echo "#define MPT_SVNVERSION \"12263\"" >>confdefs.h +$as_echo "#define MPT_SVNVERSION \"12392\"" >>confdefs.h -$as_echo "#define MPT_SVNDATE \"2019-10-30T10:43:15.521271Z\"" >>confdefs.h +$as_echo "#define MPT_SVNDATE \"2019-12-22T19:09:25.374363Z\"" >>confdefs.h $as_echo "#define MPT_PACKAGE true" >>confdefs.h @@ -23527,7 +23527,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by libopenmpt $as_me 0.4.10+release.autotools, which was +This file was extended by libopenmpt $as_me 0.4.11+release.autotools, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -23594,7 +23594,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -libopenmpt config.status 0.4.10+release.autotools +libopenmpt config.status 0.4.11+release.autotools configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff --git a/configure.ac b/configure.ac index 81be412..4551008 100644 --- a/configure.ac +++ b/configure.ac @@ -1,4 +1,4 @@ -AC_INIT([libopenmpt], [0.4.10+release.autotools], [https://bugs.openmpt.org/], [libopenmpt], [https://lib.openmpt.org/]) +AC_INIT([libopenmpt], [0.4.11+release.autotools], [https://bugs.openmpt.org/], [libopenmpt], [https://lib.openmpt.org/]) AC_PREREQ([2.68]) AC_CONFIG_MACRO_DIR([m4]) @@ -27,9 +27,9 @@ AC_SUBST([LIBOPENMPT_LTVER_CURRENT]) AC_SUBST([LIBOPENMPT_LTVER_REVISION]) AC_SUBST([LIBOPENMPT_LTVER_AGE]) -AC_DEFINE([MPT_SVNURL], ["https://source.openmpt.org/svn/openmpt/tags/libopenmpt-0.4.10"], [svn version]) -AC_DEFINE([MPT_SVNVERSION], ["12263"], [svn version]) -AC_DEFINE([MPT_SVNDATE], ["2019-10-30T10:43:15.521271Z"], [svn date]) +AC_DEFINE([MPT_SVNURL], ["https://source.openmpt.org/svn/openmpt/tags/libopenmpt-0.4.11"], [svn version]) +AC_DEFINE([MPT_SVNVERSION], ["12392"], [svn version]) +AC_DEFINE([MPT_SVNDATE], ["2019-12-22T19:09:25.374363Z"], [svn date]) AC_DEFINE([MPT_PACKAGE], [true], [is package]) diff --git a/libopenmpt/dox/changelog.md b/libopenmpt/dox/changelog.md index 5b98fcf..d83697f 100644 --- a/libopenmpt/dox/changelog.md +++ b/libopenmpt/dox/changelog.md @@ -5,6 +5,11 @@ Changelog {#changelog} For fully detailed change log, please see the source repository directly. This is just a high-level summary. +### libopenmpt 0.4.11 (2019-12-22) + + * MOD: Fix initial instrument change with no note playing. Fixes first pattern + of Beyond Music by Captain. + ### libopenmpt 0.4.10 (2019-10-30) * The "date" metadata could contain a bogus date for some older IT files. diff --git a/libopenmpt/libopenmpt_version.h b/libopenmpt/libopenmpt_version.h index ad3941e..51e8369 100644 --- a/libopenmpt/libopenmpt_version.h +++ b/libopenmpt/libopenmpt_version.h @@ -19,7 +19,7 @@ /*! \brief libopenmpt minor version number */ #define OPENMPT_API_VERSION_MINOR 4 /*! \brief libopenmpt patch version number */ -#define OPENMPT_API_VERSION_PATCH 10 +#define OPENMPT_API_VERSION_PATCH 11 /*! \brief libopenmpt pre-release tag */ #define OPENMPT_API_VERSION_PREREL "" /*! \brief libopenmpt pre-release flag */ diff --git a/libopenmpt/libopenmpt_version.mk b/libopenmpt/libopenmpt_version.mk index 1dc9026..3180e68 100644 --- a/libopenmpt/libopenmpt_version.mk +++ b/libopenmpt/libopenmpt_version.mk @@ -1,8 +1,8 @@ LIBOPENMPT_VERSION_MAJOR=0 LIBOPENMPT_VERSION_MINOR=4 -LIBOPENMPT_VERSION_PATCH=10 +LIBOPENMPT_VERSION_PATCH=11 LIBOPENMPT_VERSION_PREREL= LIBOPENMPT_LTVER_CURRENT=1 -LIBOPENMPT_LTVER_REVISION=10 +LIBOPENMPT_LTVER_REVISION=11 LIBOPENMPT_LTVER_AGE=1 diff --git a/man/openmpt123.1 b/man/openmpt123.1 index 5a1005e..5c749fd 100644 --- a/man/openmpt123.1 +++ b/man/openmpt123.1 @@ -1,5 +1,5 @@ .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.4. -.TH OPENMPT123 "1" "October 2019" "openmpt123 v0.4.10" "User Commands" +.TH OPENMPT123 "1" "December 2019" "openmpt123 v0.4.11" "User Commands" .SH NAME openmpt123 - command line module music player based on libopenmpt .SH SYNOPSIS diff --git a/soundlib/ModChannel.cpp b/soundlib/ModChannel.cpp index 66ae13d..69736f7 100644 --- a/soundlib/ModChannel.cpp +++ b/soundlib/ModChannel.cpp @@ -46,6 +46,7 @@ void ModChannel::Reset(ResetFlags resetMask, const CSoundFile &sndFile, CHANNELI if(resetMask & resetSetPosAdvanced) { + increment = SamplePosition(0); nPeriod = 0; position.Set(0); nLength = 0; @@ -60,7 +61,7 @@ void ModChannel::Reset(ResetFlags resetMask, const CSoundFile &sndFile, CHANNELI rightVol = leftVol = 0; newRightVol = newLeftVol = 0; rightRamp = leftRamp = 0; - nVolume = 0; // Needs to be 0 for SMP_NODEFAULTVOLUME flag + nVolume = 0; // Needs to be 0 for SMP_NODEFAULTVOLUME flag nVibratoPos = nTremoloPos = nPanbrelloPos = 0; nOldHiOffset = 0; nLeftVU = nRightVU = 0; @@ -89,7 +90,6 @@ void ModChannel::Reset(ResetFlags resetMask, const CSoundFile &sndFile, CHANNELI nRestorePanOnNewNote = 0; nRestoreCutoffOnNewNote = 0; nRestoreResonanceOnNewNote = 0; - } } diff --git a/soundlib/OPL.cpp b/soundlib/OPL.cpp index 4f94952..84cc3da 100644 --- a/soundlib/OPL.cpp +++ b/soundlib/OPL.cpp @@ -15,11 +15,9 @@ OPENMPT_NAMESPACE_BEGIN -OPL::OPL() +OPL::OPL(uint32 samplerate) { - m_KeyOnBlock.fill(0); - m_OPLtoChan.fill(CHANNELINDEX_INVALID); - m_ChanToOPL.fill(OPL_CHANNEL_INVALID); + Initialize(samplerate); } diff --git a/soundlib/OPL.h b/soundlib/OPL.h index 331be87..f2b0d08 100644 --- a/soundlib/OPL.h +++ b/soundlib/OPL.h @@ -67,7 +67,7 @@ public: STEREO_BITS = VOICE_TO_LEFT | VOICE_TO_RIGHT, }; - OPL(); + OPL(uint32 samplerate); ~OPL(); void Initialize(uint32 samplerate); diff --git a/soundlib/Snd_fx.cpp b/soundlib/Snd_fx.cpp index 77f86ea..c67fb8f 100644 --- a/soundlib/Snd_fx.cpp +++ b/soundlib/Snd_fx.cpp @@ -2664,8 +2664,9 @@ bool CSoundFile::ProcessEffects() // Test cases: keyoff+instr.xm, delay.xm bool reloadSampleSettings = (m_playBehaviour[kFT2ReloadSampleSettings] && instr != 0); // ProTracker Compatibility: If a sample was stopped before, lone instrument numbers can retrigger it - // Test case: PTSwapEmpty.mod - bool keepInstr = (GetType() & (MOD_TYPE_IT | MOD_TYPE_MPT)) || (m_playBehaviour[kMODSampleSwap] && !chn.IsSamplePlaying() && chn.pModSample != nullptr && !chn.pModSample->HasSampleData()); + // Test case: PTSwapEmpty.mod, PTInstrVolume.mod + bool keepInstr = (GetType() & (MOD_TYPE_IT | MOD_TYPE_MPT)) + || (m_playBehaviour[kMODSampleSwap] && !chn.IsSamplePlaying() && (chn.pModSample == nullptr || !chn.pModSample->HasSampleData())); // Now it's time for some FT2 crap... if (GetType() & (MOD_TYPE_XM | MOD_TYPE_MT2)) diff --git a/soundlib/Sndfile.cpp b/soundlib/Sndfile.cpp index cce5e50..e5a0520 100644 --- a/soundlib/Sndfile.cpp +++ b/soundlib/Sndfile.cpp @@ -1292,7 +1292,8 @@ void CSoundFile::InitAmigaResampler() void CSoundFile::InitOPL() { - if(!m_opl) m_opl = mpt::make_unique<OPL>(); + if(!m_opl) + m_opl = mpt::make_unique<OPL>(m_MixerSettings.gdwMixingFreq); } diff --git a/soundlib/pattern.cpp b/soundlib/pattern.cpp index 4d419ec..8db5cef 100644 --- a/soundlib/pattern.cpp +++ b/soundlib/pattern.cpp @@ -240,7 +240,7 @@ bool CPattern::Shrink() } } } - m_ModCommands.resize(m_ModCommands.size() / 2); + m_ModCommands.resize(m_Rows * nChns); return true; } diff --git a/test/test.cpp b/test/test.cpp index 39b2c2d..fd41a9d 100644 --- a/test/test.cpp +++ b/test/test.cpp @@ -1255,7 +1255,7 @@ static MPT_NOINLINE void TestMisc1() #endif - VERIFY_EQUAL(mpt::rshift_signed<int64>(-0x8000000000000000ll, 1), mpt::rshift_signed_standard<int64>(-0x8000000000000000ll, 1)); + VERIFY_EQUAL(mpt::rshift_signed<int64>(0ull-0x8000000000000000ull, 1), mpt::rshift_signed_standard<int64>(0ull-0x8000000000000000ull, 1)); VERIFY_EQUAL(mpt::rshift_signed<int64>(-0x7fffffffffffffffll, 1), mpt::rshift_signed_standard<int64>(-0x7fffffffffffffffll, 1)); VERIFY_EQUAL(mpt::rshift_signed<int64>(-0x7ffffffffffffffell, 1), mpt::rshift_signed_standard<int64>(-0x7ffffffffffffffell, 1)); VERIFY_EQUAL(mpt::rshift_signed<int64>( -1ll, 1), mpt::rshift_signed_standard<int64>( -1ll, 1)); @@ -1264,7 +1264,7 @@ static MPT_NOINLINE void TestMisc1() VERIFY_EQUAL(mpt::rshift_signed<int64>( 0x7ffffffffffffffell, 1), mpt::rshift_signed_standard<int64>( 0x7ffffffffffffffell, 1)); VERIFY_EQUAL(mpt::rshift_signed<int64>( 0x7fffffffffffffffll, 1), mpt::rshift_signed_standard<int64>( 0x7fffffffffffffffll, 1)); - VERIFY_EQUAL(mpt::rshift_signed<int64>(-0x8000000000000000ll, 63), mpt::rshift_signed_standard<int64>(-0x8000000000000000ll, 63)); + VERIFY_EQUAL(mpt::rshift_signed<int64>(0ull-0x8000000000000000ull, 63), mpt::rshift_signed_standard<int64>(0ull-0x8000000000000000ull, 63)); VERIFY_EQUAL(mpt::rshift_signed<int64>(-0x7fffffffffffffffll, 63), mpt::rshift_signed_standard<int64>(-0x7fffffffffffffffll, 63)); VERIFY_EQUAL(mpt::rshift_signed<int64>(-0x7ffffffffffffffell, 63), mpt::rshift_signed_standard<int64>(-0x7ffffffffffffffell, 63)); VERIFY_EQUAL(mpt::rshift_signed<int64>( -1ll, 63), mpt::rshift_signed_standard<int64>( -1ll, 63)); @@ -1273,7 +1273,7 @@ static MPT_NOINLINE void TestMisc1() VERIFY_EQUAL(mpt::rshift_signed<int64>( 0x7ffffffffffffffell, 63), mpt::rshift_signed_standard<int64>( 0x7ffffffffffffffell, 63)); VERIFY_EQUAL(mpt::rshift_signed<int64>( 0x7fffffffffffffffll, 63), mpt::rshift_signed_standard<int64>( 0x7fffffffffffffffll, 63)); - VERIFY_EQUAL(mpt::lshift_signed<int64>(-0x8000000000000000ll, 1), mpt::lshift_signed_standard<int64>(-0x8000000000000000ll, 1)); + VERIFY_EQUAL(mpt::lshift_signed<int64>(0ull-0x8000000000000000ull, 1), mpt::lshift_signed_standard<int64>(0ull-0x8000000000000000ull, 1)); VERIFY_EQUAL(mpt::lshift_signed<int64>(-0x7fffffffffffffffll, 1), mpt::lshift_signed_standard<int64>(-0x7fffffffffffffffll, 1)); VERIFY_EQUAL(mpt::lshift_signed<int64>(-0x7ffffffffffffffell, 1), mpt::lshift_signed_standard<int64>(-0x7ffffffffffffffell, 1)); VERIFY_EQUAL(mpt::lshift_signed<int64>( -1ll, 1), mpt::lshift_signed_standard<int64>( -1ll, 1)); @@ -1282,7 +1282,7 @@ static MPT_NOINLINE void TestMisc1() VERIFY_EQUAL(mpt::lshift_signed<int64>( 0x7ffffffffffffffell, 1), mpt::lshift_signed_standard<int64>( 0x7ffffffffffffffell, 1)); VERIFY_EQUAL(mpt::lshift_signed<int64>( 0x7fffffffffffffffll, 1), mpt::lshift_signed_standard<int64>( 0x7fffffffffffffffll, 1)); - VERIFY_EQUAL(mpt::lshift_signed<int64>(-0x8000000000000000ll, 63), mpt::lshift_signed_standard<int64>(-0x8000000000000000ll, 63)); + VERIFY_EQUAL(mpt::lshift_signed<int64>(0ull-0x8000000000000000ull, 63), mpt::lshift_signed_standard<int64>(0ull-0x8000000000000000ull, 63)); VERIFY_EQUAL(mpt::lshift_signed<int64>(-0x7fffffffffffffffll, 63), mpt::lshift_signed_standard<int64>(-0x7fffffffffffffffll, 63)); VERIFY_EQUAL(mpt::lshift_signed<int64>(-0x7ffffffffffffffell, 63), mpt::lshift_signed_standard<int64>(-0x7ffffffffffffffell, 63)); VERIFY_EQUAL(mpt::lshift_signed<int64>( -1ll, 63), mpt::lshift_signed_standard<int64>( -1ll, 63)); @@ -1293,7 +1293,7 @@ static MPT_NOINLINE void TestMisc1() #if MPT_COMPILER_SHIFT_SIGNED - VERIFY_EQUAL(mpt::rshift_signed<int64>(-0x8000000000000000ll, 1), mpt::rshift_signed_undefined<int64>(-0x8000000000000000ll, 1)); + VERIFY_EQUAL(mpt::rshift_signed<int64>(0ull-0x8000000000000000ull, 1), mpt::rshift_signed_undefined<int64>(0ull-0x8000000000000000ull, 1)); VERIFY_EQUAL(mpt::rshift_signed<int64>(-0x7fffffffffffffffll, 1), mpt::rshift_signed_undefined<int64>(-0x7fffffffffffffffll, 1)); VERIFY_EQUAL(mpt::rshift_signed<int64>(-0x7ffffffffffffffell, 1), mpt::rshift_signed_undefined<int64>(-0x7ffffffffffffffell, 1)); VERIFY_EQUAL(mpt::rshift_signed<int64>( -1ll, 1), mpt::rshift_signed_undefined<int64>( -1ll, 1)); @@ -1302,7 +1302,7 @@ static MPT_NOINLINE void TestMisc1() VERIFY_EQUAL(mpt::rshift_signed<int64>( 0x7ffffffffffffffell, 1), mpt::rshift_signed_undefined<int64>( 0x7ffffffffffffffell, 1)); VERIFY_EQUAL(mpt::rshift_signed<int64>( 0x7fffffffffffffffll, 1), mpt::rshift_signed_undefined<int64>( 0x7fffffffffffffffll, 1)); - VERIFY_EQUAL(mpt::rshift_signed<int64>(-0x8000000000000000ll, 63), mpt::rshift_signed_undefined<int64>(-0x8000000000000000ll, 63)); + VERIFY_EQUAL(mpt::rshift_signed<int64>(0ull-0x8000000000000000ull, 63), mpt::rshift_signed_undefined<int64>(0ull-0x8000000000000000ull, 63)); VERIFY_EQUAL(mpt::rshift_signed<int64>(-0x7fffffffffffffffll, 63), mpt::rshift_signed_undefined<int64>(-0x7fffffffffffffffll, 63)); VERIFY_EQUAL(mpt::rshift_signed<int64>(-0x7ffffffffffffffell, 63), mpt::rshift_signed_undefined<int64>(-0x7ffffffffffffffell, 63)); VERIFY_EQUAL(mpt::rshift_signed<int64>( -1ll, 63), mpt::rshift_signed_undefined<int64>( -1ll, 63)); @@ -1311,7 +1311,7 @@ static MPT_NOINLINE void TestMisc1() VERIFY_EQUAL(mpt::rshift_signed<int64>( 0x7ffffffffffffffell, 63), mpt::rshift_signed_undefined<int64>( 0x7ffffffffffffffell, 63)); VERIFY_EQUAL(mpt::rshift_signed<int64>( 0x7fffffffffffffffll, 63), mpt::rshift_signed_undefined<int64>( 0x7fffffffffffffffll, 63)); - VERIFY_EQUAL(mpt::lshift_signed<int64>(-0x8000000000000000ll, 1), mpt::lshift_signed_undefined<int64>(-0x8000000000000000ll, 1)); + VERIFY_EQUAL(mpt::lshift_signed<int64>(0ull-0x8000000000000000ull, 1), mpt::lshift_signed_undefined<int64>(0ull-0x8000000000000000ull, 1)); VERIFY_EQUAL(mpt::lshift_signed<int64>(-0x7fffffffffffffffll, 1), mpt::lshift_signed_undefined<int64>(-0x7fffffffffffffffll, 1)); VERIFY_EQUAL(mpt::lshift_signed<int64>(-0x7ffffffffffffffell, 1), mpt::lshift_signed_undefined<int64>(-0x7ffffffffffffffell, 1)); VERIFY_EQUAL(mpt::lshift_signed<int64>( -1ll, 1), mpt::lshift_signed_undefined<int64>( -1ll, 1)); @@ -1320,7 +1320,7 @@ static MPT_NOINLINE void TestMisc1() VERIFY_EQUAL(mpt::lshift_signed<int64>( 0x7ffffffffffffffell, 1), mpt::lshift_signed_undefined<int64>( 0x7ffffffffffffffell, 1)); VERIFY_EQUAL(mpt::lshift_signed<int64>( 0x7fffffffffffffffll, 1), mpt::lshift_signed_undefined<int64>( 0x7fffffffffffffffll, 1)); - VERIFY_EQUAL(mpt::lshift_signed<int64>(-0x8000000000000000ll, 63), mpt::lshift_signed_undefined<int64>(-0x8000000000000000ll, 63)); + VERIFY_EQUAL(mpt::lshift_signed<int64>(0ull-0x8000000000000000ull, 63), mpt::lshift_signed_undefined<int64>(0ull-0x8000000000000000ull, 63)); VERIFY_EQUAL(mpt::lshift_signed<int64>(-0x7fffffffffffffffll, 63), mpt::lshift_signed_undefined<int64>(-0x7fffffffffffffffll, 63)); VERIFY_EQUAL(mpt::lshift_signed<int64>(-0x7ffffffffffffffell, 63), mpt::lshift_signed_undefined<int64>(-0x7ffffffffffffffell, 63)); VERIFY_EQUAL(mpt::lshift_signed<int64>( -1ll, 63), mpt::lshift_signed_undefined<int64>( -1ll, 63)); |