libmodplug icon indicating copy to clipboard operation
libmodplug copied to clipboard

0.8.9.0: compile time warnings

Open kloczek opened this issue 3 years ago • 9 comments

Fists just summary stats:

[tkloczko@ss-desktop SPECS]$ rpmbuild -ba --with check --with failing_tests libmodplug.spec --quiet 2>&1 | grep -- -W | sed 's/.*\[//; s/\]//' | sort | uniq -c | sort -nr
     80 -Wregister
     12 -Wsign-compare
      8 -Wunused-result
      8 -Wunused-but-set-variable
      2 -Wmisleading-indentation
      1 -Wodr
      1 -Wlto-type-mismatch

and extracted all warnings from stderr with autoconf (2.71) warnings:

autoreconf: export WARNINGS=
autoreconf: Entering directory '.'
autoreconf: configure.ac: not using Gettext
autoreconf: running: aclocal --force -I m4
autoreconf: configure.ac: tracing
autoreconf: running: libtoolize --copy --force
autoreconf: configure.ac: not using Intltool
autoreconf: configure.ac: not using Gtkdoc
autoreconf: running: aclocal --force -I m4
autoreconf: running: /usr/bin/autoconf --force
configure.ac:30: warning: The macro `AC_HEADER_STDC' is obsolete.
configure.ac:30: You should run autoupdate.
./lib/autoconf/headers.m4:704: AC_HEADER_STDC is expanded from...
configure.ac:30: the top level
configure.ac:58: warning: The macro `AC_TRY_COMPILE' is obsolete.
configure.ac:58: You should run autoupdate.
./lib/autoconf/general.m4:2847: AC_TRY_COMPILE is expanded from...
configure.ac:58: the top level
autoreconf: running: /usr/bin/autoheader --force
autoreconf: running: automake --add-missing --copy --force-missing
configure.ac:21: installing './compile'
configure.ac:8: installing './missing'
src/Makefile.am: installing './depcomp'
autoreconf: Leaving directory '.'
load_okt.cpp: In member function 'BOOL CSoundFile::ReadOKT(const BYTE*, DWORD)':
load_okt.cpp:46:28: warning: variable 'npatterns' set but not used [-Wunused-but-set-variable]
   46 |         UINT nsamples = 0, npatterns = 0, norders = 0;
      |                            ^~~~~~~~~
load_mod.cpp: In member function 'void CSoundFile::ConvertModCommand(MODCOMMAND*) const':
load_mod.cpp:42:33: warning: this 'if' clause does not guard... [-Wmisleading-indentation]
   42 |                                 if ((param == 0xFF) && (m_nSamples == 15)) command = 0; break;
      |                                 ^~
load_mod.cpp:42:89: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if'
   42 |                                 if ((param == 0xFF) && (m_nSamples == 15)) command = 0; break;
      |                                                                                         ^~~~~
load_it.cpp: In member function 'BOOL CSoundFile::ReadIT(const BYTE*, DWORD)':
load_it.cpp:166:27: warning: variable 'channels_used' set but not used [-Wunused-but-set-variable]
  166 |         BYTE chnmask[64], channels_used[64];
      |                           ^~~~~~~~~~~~~
load_it.cpp: In function 'void ITUnpack8Bit(signed char*, DWORD, LPBYTE, DWORD, BOOL)':
load_it.cpp:1221:15: warning: variable 'wHdr' set but not used [-Wunused-but-set-variable]
 1221 |         DWORD wHdr = 0;
      |               ^~~~
load_it.cpp: In function 'void ITUnpack16Bit(signed char*, DWORD, LPBYTE, DWORD, BOOL)':
load_it.cpp:1303:15: warning: variable 'wHdr' set but not used [-Wunused-but-set-variable]
 1303 |         DWORD wHdr = 0;
      |               ^~~~
load_dmf.cpp: In member function 'BOOL CSoundFile::ReadDMF(const BYTE*, DWORD)':
load_dmf.cpp:282:81: warning: this 'else' clause does not guard... [-Wmisleading-indentation]
  282 |                                                                                 else if (!cmd.note) { cmd.note = 0xfe; } break;
      |                                                                                 ^~~~
load_dmf.cpp:282:122: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'else'
  282 |                                                                                 else if (!cmd.note) { cmd.note = 0xfe; } break;
      |                                                                                                                          ^~~~~
load_669.cpp: In member function 'BOOL CSoundFile::Read669(const BYTE*, DWORD)':
load_669.cpp:51:14: warning: variable 'b669Ext' set but not used [-Wunused-but-set-variable]
   51 |         BOOL b669Ext;
      |              ^~~~~~~
load_ams.cpp: In member function 'BOOL CSoundFile::ReadAMS(LPCBYTE, DWORD)':
load_ams.cpp:48:14: warning: variable 'pkinf' set but not used [-Wunused-but-set-variable]
   48 |         BYTE pkinf[MAX_SAMPLES];
      |              ^~~~~
load_psm.cpp: In member function 'BOOL CSoundFile::ReadPSM(LPCBYTE, DWORD)':
load_psm.cpp:103:15: warning: variable 'smpnames' set but not used [-Wunused-but-set-variable]
  103 |         DWORD smpnames[MAX_SAMPLES];
      |               ^~~~~~~~
fastmix.cpp: In function 'VOID Mono8BitMix(MODCHANNEL*, int*, int*)':
fastmix.cpp:291:37: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  291 |         register MODCHANNEL * const pChn = pChannel;\
      |                                     ^~~~
fastmix.cpp:678:9: note: in expansion of macro 'SNDMIX_BEGINSAMPLELOOP8'
  678 |         SNDMIX_BEGINSAMPLELOOP8
      |         ^~~~~~~~~~~~~~~~~~~~~~~
fastmix.cpp: In function 'VOID Mono16BitMix(MODCHANNEL*, int*, int*)':
fastmix.cpp:299:37: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  299 |         register MODCHANNEL * const pChn = pChannel;\
      |                                     ^~~~
fastmix.cpp:684:9: note: in expansion of macro 'SNDMIX_BEGINSAMPLELOOP16'
  684 |         SNDMIX_BEGINSAMPLELOOP16
      |         ^~~~~~~~~~~~~~~~~~~~~~~~
fastmix.cpp: In function 'VOID Mono8BitLinearMix(MODCHANNEL*, int*, int*)':
fastmix.cpp:291:37: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  291 |         register MODCHANNEL * const pChn = pChannel;\
      |                                     ^~~~
fastmix.cpp:690:9: note: in expansion of macro 'SNDMIX_BEGINSAMPLELOOP8'
  690 |         SNDMIX_BEGINSAMPLELOOP8
      |         ^~~~~~~~~~~~~~~~~~~~~~~
fastmix.cpp: In function 'VOID Mono16BitLinearMix(MODCHANNEL*, int*, int*)':
fastmix.cpp:299:37: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  299 |         register MODCHANNEL * const pChn = pChannel;\
      |                                     ^~~~
fastmix.cpp:696:9: note: in expansion of macro 'SNDMIX_BEGINSAMPLELOOP16'
  696 |         SNDMIX_BEGINSAMPLELOOP16
      |         ^~~~~~~~~~~~~~~~~~~~~~~~
fastmix.cpp: In function 'VOID Mono8BitSplineMix(MODCHANNEL*, int*, int*)':
fastmix.cpp:291:37: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  291 |         register MODCHANNEL * const pChn = pChannel;\
      |                                     ^~~~
fastmix.cpp:702:9: note: in expansion of macro 'SNDMIX_BEGINSAMPLELOOP8'
  702 |         SNDMIX_BEGINSAMPLELOOP8
      |         ^~~~~~~~~~~~~~~~~~~~~~~
fastmix.cpp: In function 'VOID Mono16BitSplineMix(MODCHANNEL*, int*, int*)':
fastmix.cpp:299:37: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  299 |         register MODCHANNEL * const pChn = pChannel;\
      |                                     ^~~~
fastmix.cpp:708:9: note: in expansion of macro 'SNDMIX_BEGINSAMPLELOOP16'
  708 |         SNDMIX_BEGINSAMPLELOOP16
      |         ^~~~~~~~~~~~~~~~~~~~~~~~
fastmix.cpp: In function 'VOID Mono8BitFirFilterMix(MODCHANNEL*, int*, int*)':
fastmix.cpp:291:37: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  291 |         register MODCHANNEL * const pChn = pChannel;\
      |                                     ^~~~
fastmix.cpp:714:9: note: in expansion of macro 'SNDMIX_BEGINSAMPLELOOP8'
  714 |         SNDMIX_BEGINSAMPLELOOP8
      |         ^~~~~~~~~~~~~~~~~~~~~~~
fastmix.cpp: In function 'VOID Mono16BitFirFilterMix(MODCHANNEL*, int*, int*)':
fastmix.cpp:299:37: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  299 |         register MODCHANNEL * const pChn = pChannel;\
      |                                     ^~~~
fastmix.cpp:720:9: note: in expansion of macro 'SNDMIX_BEGINSAMPLELOOP16'
  720 |         SNDMIX_BEGINSAMPLELOOP16
      |         ^~~~~~~~~~~~~~~~~~~~~~~~
fastmix.cpp: In function 'VOID Mono8BitRampMix(MODCHANNEL*, int*, int*)':
fastmix.cpp:291:37: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  291 |         register MODCHANNEL * const pChn = pChannel;\
      |                                     ^~~~
fastmix.cpp:728:9: note: in expansion of macro 'SNDMIX_BEGINSAMPLELOOP8'
  728 |         SNDMIX_BEGINSAMPLELOOP8
      |         ^~~~~~~~~~~~~~~~~~~~~~~
fastmix.cpp: In function 'VOID Mono16BitRampMix(MODCHANNEL*, int*, int*)':
fastmix.cpp:299:37: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  299 |         register MODCHANNEL * const pChn = pChannel;\
      |                                     ^~~~
fastmix.cpp:734:9: note: in expansion of macro 'SNDMIX_BEGINSAMPLELOOP16'
  734 |         SNDMIX_BEGINSAMPLELOOP16
      |         ^~~~~~~~~~~~~~~~~~~~~~~~
fastmix.cpp: In function 'VOID Mono8BitLinearRampMix(MODCHANNEL*, int*, int*)':
fastmix.cpp:291:37: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  291 |         register MODCHANNEL * const pChn = pChannel;\
      |                                     ^~~~
fastmix.cpp:740:9: note: in expansion of macro 'SNDMIX_BEGINSAMPLELOOP8'
  740 |         SNDMIX_BEGINSAMPLELOOP8
      |         ^~~~~~~~~~~~~~~~~~~~~~~
fastmix.cpp: In function 'VOID Mono16BitLinearRampMix(MODCHANNEL*, int*, int*)':
fastmix.cpp:299:37: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  299 |         register MODCHANNEL * const pChn = pChannel;\
      |                                     ^~~~
fastmix.cpp:746:9: note: in expansion of macro 'SNDMIX_BEGINSAMPLELOOP16'
  746 |         SNDMIX_BEGINSAMPLELOOP16
      |         ^~~~~~~~~~~~~~~~~~~~~~~~
fastmix.cpp: In function 'VOID Mono8BitSplineRampMix(MODCHANNEL*, int*, int*)':
fastmix.cpp:291:37: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  291 |         register MODCHANNEL * const pChn = pChannel;\
      |                                     ^~~~
fastmix.cpp:752:9: note: in expansion of macro 'SNDMIX_BEGINSAMPLELOOP8'
  752 |         SNDMIX_BEGINSAMPLELOOP8
      |         ^~~~~~~~~~~~~~~~~~~~~~~
fastmix.cpp: In function 'VOID Mono16BitSplineRampMix(MODCHANNEL*, int*, int*)':
fastmix.cpp:299:37: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  299 |         register MODCHANNEL * const pChn = pChannel;\
      |                                     ^~~~
fastmix.cpp:758:9: note: in expansion of macro 'SNDMIX_BEGINSAMPLELOOP16'
  758 |         SNDMIX_BEGINSAMPLELOOP16
      |         ^~~~~~~~~~~~~~~~~~~~~~~~
fastmix.cpp: In function 'VOID Mono8BitFirFilterRampMix(MODCHANNEL*, int*, int*)':
fastmix.cpp:291:37: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  291 |         register MODCHANNEL * const pChn = pChannel;\
      |                                     ^~~~
fastmix.cpp:764:9: note: in expansion of macro 'SNDMIX_BEGINSAMPLELOOP8'
  764 |         SNDMIX_BEGINSAMPLELOOP8
      |         ^~~~~~~~~~~~~~~~~~~~~~~
fastmix.cpp: In function 'VOID Mono16BitFirFilterRampMix(MODCHANNEL*, int*, int*)':
fastmix.cpp:299:37: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  299 |         register MODCHANNEL * const pChn = pChannel;\
      |                                     ^~~~
fastmix.cpp:770:9: note: in expansion of macro 'SNDMIX_BEGINSAMPLELOOP16'
  770 |         SNDMIX_BEGINSAMPLELOOP16
      |         ^~~~~~~~~~~~~~~~~~~~~~~~
fastmix.cpp: In function 'VOID FastMono8BitMix(MODCHANNEL*, int*, int*)':
fastmix.cpp:291:37: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  291 |         register MODCHANNEL * const pChn = pChannel;\
      |                                     ^~~~
fastmix.cpp:780:9: note: in expansion of macro 'SNDMIX_BEGINSAMPLELOOP8'
  780 |         SNDMIX_BEGINSAMPLELOOP8
      |         ^~~~~~~~~~~~~~~~~~~~~~~
fastmix.cpp: In function 'VOID FastMono16BitMix(MODCHANNEL*, int*, int*)':
fastmix.cpp:299:37: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  299 |         register MODCHANNEL * const pChn = pChannel;\
      |                                     ^~~~
fastmix.cpp:786:9: note: in expansion of macro 'SNDMIX_BEGINSAMPLELOOP16'
  786 |         SNDMIX_BEGINSAMPLELOOP16
      |         ^~~~~~~~~~~~~~~~~~~~~~~~
fastmix.cpp: In function 'VOID FastMono8BitLinearMix(MODCHANNEL*, int*, int*)':
fastmix.cpp:291:37: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  291 |         register MODCHANNEL * const pChn = pChannel;\
      |                                     ^~~~
fastmix.cpp:792:9: note: in expansion of macro 'SNDMIX_BEGINSAMPLELOOP8'
  792 |         SNDMIX_BEGINSAMPLELOOP8
      |         ^~~~~~~~~~~~~~~~~~~~~~~
fastmix.cpp: In function 'VOID FastMono16BitLinearMix(MODCHANNEL*, int*, int*)':
fastmix.cpp:299:37: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  299 |         register MODCHANNEL * const pChn = pChannel;\
      |                                     ^~~~
fastmix.cpp:798:9: note: in expansion of macro 'SNDMIX_BEGINSAMPLELOOP16'
  798 |         SNDMIX_BEGINSAMPLELOOP16
      |         ^~~~~~~~~~~~~~~~~~~~~~~~
fastmix.cpp: In function 'VOID FastMono8BitSplineMix(MODCHANNEL*, int*, int*)':
fastmix.cpp:291:37: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  291 |         register MODCHANNEL * const pChn = pChannel;\
      |                                     ^~~~
fastmix.cpp:804:9: note: in expansion of macro 'SNDMIX_BEGINSAMPLELOOP8'
  804 |         SNDMIX_BEGINSAMPLELOOP8
      |         ^~~~~~~~~~~~~~~~~~~~~~~
fastmix.cpp: In function 'VOID FastMono16BitSplineMix(MODCHANNEL*, int*, int*)':
fastmix.cpp:299:37: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  299 |         register MODCHANNEL * const pChn = pChannel;\
      |                                     ^~~~
fastmix.cpp:810:9: note: in expansion of macro 'SNDMIX_BEGINSAMPLELOOP16'
  810 |         SNDMIX_BEGINSAMPLELOOP16
      |         ^~~~~~~~~~~~~~~~~~~~~~~~
fastmix.cpp: In function 'VOID FastMono8BitFirFilterMix(MODCHANNEL*, int*, int*)':
fastmix.cpp:291:37: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  291 |         register MODCHANNEL * const pChn = pChannel;\
      |                                     ^~~~
fastmix.cpp:816:9: note: in expansion of macro 'SNDMIX_BEGINSAMPLELOOP8'
  816 |         SNDMIX_BEGINSAMPLELOOP8
      |         ^~~~~~~~~~~~~~~~~~~~~~~
fastmix.cpp: In function 'VOID FastMono16BitFirFilterMix(MODCHANNEL*, int*, int*)':
fastmix.cpp:299:37: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  299 |         register MODCHANNEL * const pChn = pChannel;\
      |                                     ^~~~
fastmix.cpp:822:9: note: in expansion of macro 'SNDMIX_BEGINSAMPLELOOP16'
  822 |         SNDMIX_BEGINSAMPLELOOP16
      |         ^~~~~~~~~~~~~~~~~~~~~~~~
fastmix.cpp: In function 'VOID FastMono8BitRampMix(MODCHANNEL*, int*, int*)':
fastmix.cpp:291:37: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  291 |         register MODCHANNEL * const pChn = pChannel;\
      |                                     ^~~~
fastmix.cpp:830:9: note: in expansion of macro 'SNDMIX_BEGINSAMPLELOOP8'
  830 |         SNDMIX_BEGINSAMPLELOOP8
      |         ^~~~~~~~~~~~~~~~~~~~~~~
fastmix.cpp: In function 'VOID FastMono16BitRampMix(MODCHANNEL*, int*, int*)':
fastmix.cpp:299:37: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  299 |         register MODCHANNEL * const pChn = pChannel;\
      |                                     ^~~~
fastmix.cpp:836:9: note: in expansion of macro 'SNDMIX_BEGINSAMPLELOOP16'
  836 |         SNDMIX_BEGINSAMPLELOOP16
      |         ^~~~~~~~~~~~~~~~~~~~~~~~
fastmix.cpp: In function 'VOID FastMono8BitLinearRampMix(MODCHANNEL*, int*, int*)':
fastmix.cpp:291:37: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  291 |         register MODCHANNEL * const pChn = pChannel;\
      |                                     ^~~~
fastmix.cpp:842:9: note: in expansion of macro 'SNDMIX_BEGINSAMPLELOOP8'
  842 |         SNDMIX_BEGINSAMPLELOOP8
      |         ^~~~~~~~~~~~~~~~~~~~~~~
fastmix.cpp: In function 'VOID FastMono16BitLinearRampMix(MODCHANNEL*, int*, int*)':
fastmix.cpp:299:37: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  299 |         register MODCHANNEL * const pChn = pChannel;\
      |                                     ^~~~
fastmix.cpp:848:9: note: in expansion of macro 'SNDMIX_BEGINSAMPLELOOP16'
  848 |         SNDMIX_BEGINSAMPLELOOP16
      |         ^~~~~~~~~~~~~~~~~~~~~~~~
fastmix.cpp: In function 'VOID FastMono8BitSplineRampMix(MODCHANNEL*, int*, int*)':
fastmix.cpp:291:37: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  291 |         register MODCHANNEL * const pChn = pChannel;\
      |                                     ^~~~
fastmix.cpp:854:9: note: in expansion of macro 'SNDMIX_BEGINSAMPLELOOP8'
  854 |         SNDMIX_BEGINSAMPLELOOP8
      |         ^~~~~~~~~~~~~~~~~~~~~~~
fastmix.cpp: In function 'VOID FastMono16BitSplineRampMix(MODCHANNEL*, int*, int*)':
fastmix.cpp:299:37: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  299 |         register MODCHANNEL * const pChn = pChannel;\
      |                                     ^~~~
fastmix.cpp:860:9: note: in expansion of macro 'SNDMIX_BEGINSAMPLELOOP16'
  860 |         SNDMIX_BEGINSAMPLELOOP16
      |         ^~~~~~~~~~~~~~~~~~~~~~~~
fastmix.cpp: In function 'VOID FastMono8BitFirFilterRampMix(MODCHANNEL*, int*, int*)':
fastmix.cpp:291:37: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  291 |         register MODCHANNEL * const pChn = pChannel;\
      |                                     ^~~~
fastmix.cpp:866:9: note: in expansion of macro 'SNDMIX_BEGINSAMPLELOOP8'
  866 |         SNDMIX_BEGINSAMPLELOOP8
      |         ^~~~~~~~~~~~~~~~~~~~~~~
fastmix.cpp: In function 'VOID FastMono16BitFirFilterRampMix(MODCHANNEL*, int*, int*)':
fastmix.cpp:299:37: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  299 |         register MODCHANNEL * const pChn = pChannel;\
      |                                     ^~~~
fastmix.cpp:872:9: note: in expansion of macro 'SNDMIX_BEGINSAMPLELOOP16'
  872 |         SNDMIX_BEGINSAMPLELOOP16
      |         ^~~~~~~~~~~~~~~~~~~~~~~~
fastmix.cpp: In function 'VOID Stereo8BitMix(MODCHANNEL*, int*, int*)':
fastmix.cpp:291:37: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  291 |         register MODCHANNEL * const pChn = pChannel;\
      |                                     ^~~~
fastmix.cpp:882:9: note: in expansion of macro 'SNDMIX_BEGINSAMPLELOOP8'
  882 |         SNDMIX_BEGINSAMPLELOOP8
      |         ^~~~~~~~~~~~~~~~~~~~~~~
fastmix.cpp: In function 'VOID Stereo16BitMix(MODCHANNEL*, int*, int*)':
fastmix.cpp:299:37: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  299 |         register MODCHANNEL * const pChn = pChannel;\
      |                                     ^~~~
fastmix.cpp:888:9: note: in expansion of macro 'SNDMIX_BEGINSAMPLELOOP16'
  888 |         SNDMIX_BEGINSAMPLELOOP16
      |         ^~~~~~~~~~~~~~~~~~~~~~~~
fastmix.cpp: In function 'VOID Stereo8BitLinearMix(MODCHANNEL*, int*, int*)':
fastmix.cpp:291:37: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  291 |         register MODCHANNEL * const pChn = pChannel;\
      |                                     ^~~~
fastmix.cpp:894:9: note: in expansion of macro 'SNDMIX_BEGINSAMPLELOOP8'
  894 |         SNDMIX_BEGINSAMPLELOOP8
      |         ^~~~~~~~~~~~~~~~~~~~~~~
fastmix.cpp: In function 'VOID Stereo16BitLinearMix(MODCHANNEL*, int*, int*)':
fastmix.cpp:299:37: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  299 |         register MODCHANNEL * const pChn = pChannel;\
      |                                     ^~~~
fastmix.cpp:900:9: note: in expansion of macro 'SNDMIX_BEGINSAMPLELOOP16'
  900 |         SNDMIX_BEGINSAMPLELOOP16
      |         ^~~~~~~~~~~~~~~~~~~~~~~~
fastmix.cpp: In function 'VOID Stereo8BitSplineMix(MODCHANNEL*, int*, int*)':
fastmix.cpp:291:37: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  291 |         register MODCHANNEL * const pChn = pChannel;\
      |                                     ^~~~
fastmix.cpp:906:9: note: in expansion of macro 'SNDMIX_BEGINSAMPLELOOP8'
  906 |         SNDMIX_BEGINSAMPLELOOP8
      |         ^~~~~~~~~~~~~~~~~~~~~~~
fastmix.cpp: In function 'VOID Stereo16BitSplineMix(MODCHANNEL*, int*, int*)':
fastmix.cpp:299:37: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  299 |         register MODCHANNEL * const pChn = pChannel;\
      |                                     ^~~~
fastmix.cpp:912:9: note: in expansion of macro 'SNDMIX_BEGINSAMPLELOOP16'
  912 |         SNDMIX_BEGINSAMPLELOOP16
      |         ^~~~~~~~~~~~~~~~~~~~~~~~
fastmix.cpp: In function 'VOID Stereo8BitFirFilterMix(MODCHANNEL*, int*, int*)':
fastmix.cpp:291:37: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  291 |         register MODCHANNEL * const pChn = pChannel;\
      |                                     ^~~~
fastmix.cpp:918:9: note: in expansion of macro 'SNDMIX_BEGINSAMPLELOOP8'
  918 |         SNDMIX_BEGINSAMPLELOOP8
      |         ^~~~~~~~~~~~~~~~~~~~~~~
fastmix.cpp: In function 'VOID Stereo16BitFirFilterMix(MODCHANNEL*, int*, int*)':
fastmix.cpp:299:37: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  299 |         register MODCHANNEL * const pChn = pChannel;\
      |                                     ^~~~
fastmix.cpp:924:9: note: in expansion of macro 'SNDMIX_BEGINSAMPLELOOP16'
  924 |         SNDMIX_BEGINSAMPLELOOP16
      |         ^~~~~~~~~~~~~~~~~~~~~~~~
fastmix.cpp: In function 'VOID Stereo8BitRampMix(MODCHANNEL*, int*, int*)':
fastmix.cpp:291:37: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  291 |         register MODCHANNEL * const pChn = pChannel;\
      |                                     ^~~~
fastmix.cpp:932:9: note: in expansion of macro 'SNDMIX_BEGINSAMPLELOOP8'
  932 |         SNDMIX_BEGINSAMPLELOOP8
      |         ^~~~~~~~~~~~~~~~~~~~~~~
fastmix.cpp: In function 'VOID Stereo16BitRampMix(MODCHANNEL*, int*, int*)':
fastmix.cpp:299:37: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  299 |         register MODCHANNEL * const pChn = pChannel;\
      |                                     ^~~~
fastmix.cpp:938:9: note: in expansion of macro 'SNDMIX_BEGINSAMPLELOOP16'
  938 |         SNDMIX_BEGINSAMPLELOOP16
      |         ^~~~~~~~~~~~~~~~~~~~~~~~
fastmix.cpp: In function 'VOID Stereo8BitLinearRampMix(MODCHANNEL*, int*, int*)':
fastmix.cpp:291:37: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  291 |         register MODCHANNEL * const pChn = pChannel;\
      |                                     ^~~~
fastmix.cpp:944:9: note: in expansion of macro 'SNDMIX_BEGINSAMPLELOOP8'
  944 |         SNDMIX_BEGINSAMPLELOOP8
      |         ^~~~~~~~~~~~~~~~~~~~~~~
fastmix.cpp: In function 'VOID Stereo16BitLinearRampMix(MODCHANNEL*, int*, int*)':
fastmix.cpp:299:37: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  299 |         register MODCHANNEL * const pChn = pChannel;\
      |                                     ^~~~
fastmix.cpp:950:9: note: in expansion of macro 'SNDMIX_BEGINSAMPLELOOP16'
  950 |         SNDMIX_BEGINSAMPLELOOP16
      |         ^~~~~~~~~~~~~~~~~~~~~~~~
fastmix.cpp: In function 'VOID Stereo8BitSplineRampMix(MODCHANNEL*, int*, int*)':
fastmix.cpp:291:37: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  291 |         register MODCHANNEL * const pChn = pChannel;\
      |                                     ^~~~
fastmix.cpp:956:9: note: in expansion of macro 'SNDMIX_BEGINSAMPLELOOP8'
  956 |         SNDMIX_BEGINSAMPLELOOP8
      |         ^~~~~~~~~~~~~~~~~~~~~~~
fastmix.cpp: In function 'VOID Stereo16BitSplineRampMix(MODCHANNEL*, int*, int*)':
fastmix.cpp:299:37: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  299 |         register MODCHANNEL * const pChn = pChannel;\
      |                                     ^~~~
fastmix.cpp:962:9: note: in expansion of macro 'SNDMIX_BEGINSAMPLELOOP16'
  962 |         SNDMIX_BEGINSAMPLELOOP16
      |         ^~~~~~~~~~~~~~~~~~~~~~~~
fastmix.cpp: In function 'VOID Stereo8BitFirFilterRampMix(MODCHANNEL*, int*, int*)':
fastmix.cpp:291:37: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  291 |         register MODCHANNEL * const pChn = pChannel;\
      |                                     ^~~~
fastmix.cpp:968:9: note: in expansion of macro 'SNDMIX_BEGINSAMPLELOOP8'
  968 |         SNDMIX_BEGINSAMPLELOOP8
      |         ^~~~~~~~~~~~~~~~~~~~~~~
fastmix.cpp: In function 'VOID Stereo16BitFirFilterRampMix(MODCHANNEL*, int*, int*)':
fastmix.cpp:299:37: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  299 |         register MODCHANNEL * const pChn = pChannel;\
      |                                     ^~~~
fastmix.cpp:974:9: note: in expansion of macro 'SNDMIX_BEGINSAMPLELOOP16'
  974 |         SNDMIX_BEGINSAMPLELOOP16
      |         ^~~~~~~~~~~~~~~~~~~~~~~~
fastmix.cpp: In function 'VOID FilterMono8BitMix(MODCHANNEL*, int*, int*)':
fastmix.cpp:291:37: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  291 |         register MODCHANNEL * const pChn = pChannel;\
      |                                     ^~~~
fastmix.cpp:988:9: note: in expansion of macro 'SNDMIX_BEGINSAMPLELOOP8'
  988 |         SNDMIX_BEGINSAMPLELOOP8
      |         ^~~~~~~~~~~~~~~~~~~~~~~
fastmix.cpp: In function 'VOID FilterMono16BitMix(MODCHANNEL*, int*, int*)':
fastmix.cpp:299:37: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  299 |         register MODCHANNEL * const pChn = pChannel;\
      |                                     ^~~~
fastmix.cpp:995:9: note: in expansion of macro 'SNDMIX_BEGINSAMPLELOOP16'
  995 |         SNDMIX_BEGINSAMPLELOOP16
      |         ^~~~~~~~~~~~~~~~~~~~~~~~
fastmix.cpp: In function 'VOID FilterMono8BitLinearMix(MODCHANNEL*, int*, int*)':
fastmix.cpp:291:37: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  291 |         register MODCHANNEL * const pChn = pChannel;\
      |                                     ^~~~
fastmix.cpp:1002:9: note: in expansion of macro 'SNDMIX_BEGINSAMPLELOOP8'
 1002 |         SNDMIX_BEGINSAMPLELOOP8
      |         ^~~~~~~~~~~~~~~~~~~~~~~
fastmix.cpp: In function 'VOID FilterMono16BitLinearMix(MODCHANNEL*, int*, int*)':
fastmix.cpp:299:37: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  299 |         register MODCHANNEL * const pChn = pChannel;\
      |                                     ^~~~
fastmix.cpp:1009:9: note: in expansion of macro 'SNDMIX_BEGINSAMPLELOOP16'
 1009 |         SNDMIX_BEGINSAMPLELOOP16
      |         ^~~~~~~~~~~~~~~~~~~~~~~~
fastmix.cpp: In function 'VOID FilterMono8BitSplineMix(MODCHANNEL*, int*, int*)':
fastmix.cpp:291:37: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  291 |         register MODCHANNEL * const pChn = pChannel;\
      |                                     ^~~~
fastmix.cpp:1016:9: note: in expansion of macro 'SNDMIX_BEGINSAMPLELOOP8'
 1016 |         SNDMIX_BEGINSAMPLELOOP8
      |         ^~~~~~~~~~~~~~~~~~~~~~~
fastmix.cpp: In function 'VOID FilterMono16BitSplineMix(MODCHANNEL*, int*, int*)':
fastmix.cpp:299:37: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  299 |         register MODCHANNEL * const pChn = pChannel;\
      |                                     ^~~~
fastmix.cpp:1023:9: note: in expansion of macro 'SNDMIX_BEGINSAMPLELOOP16'
 1023 |         SNDMIX_BEGINSAMPLELOOP16
      |         ^~~~~~~~~~~~~~~~~~~~~~~~
fastmix.cpp: In function 'VOID FilterMono8BitFirFilterMix(MODCHANNEL*, int*, int*)':
fastmix.cpp:291:37: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  291 |         register MODCHANNEL * const pChn = pChannel;\
      |                                     ^~~~
fastmix.cpp:1030:9: note: in expansion of macro 'SNDMIX_BEGINSAMPLELOOP8'
 1030 |         SNDMIX_BEGINSAMPLELOOP8
      |         ^~~~~~~~~~~~~~~~~~~~~~~
fastmix.cpp: In function 'VOID FilterMono16BitFirFilterMix(MODCHANNEL*, int*, int*)':
fastmix.cpp:299:37: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  299 |         register MODCHANNEL * const pChn = pChannel;\
      |                                     ^~~~
fastmix.cpp:1037:9: note: in expansion of macro 'SNDMIX_BEGINSAMPLELOOP16'
 1037 |         SNDMIX_BEGINSAMPLELOOP16
      |         ^~~~~~~~~~~~~~~~~~~~~~~~
fastmix.cpp: In function 'VOID FilterMono8BitRampMix(MODCHANNEL*, int*, int*)':
fastmix.cpp:291:37: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  291 |         register MODCHANNEL * const pChn = pChannel;\
      |                                     ^~~~
fastmix.cpp:1045:9: note: in expansion of macro 'SNDMIX_BEGINSAMPLELOOP8'
 1045 |         SNDMIX_BEGINSAMPLELOOP8
      |         ^~~~~~~~~~~~~~~~~~~~~~~
fastmix.cpp: In function 'VOID FilterMono16BitRampMix(MODCHANNEL*, int*, int*)':
fastmix.cpp:299:37: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  299 |         register MODCHANNEL * const pChn = pChannel;\
      |                                     ^~~~
fastmix.cpp:1052:9: note: in expansion of macro 'SNDMIX_BEGINSAMPLELOOP16'
 1052 |         SNDMIX_BEGINSAMPLELOOP16
      |         ^~~~~~~~~~~~~~~~~~~~~~~~
fastmix.cpp: In function 'VOID FilterMono8BitLinearRampMix(MODCHANNEL*, int*, int*)':
fastmix.cpp:291:37: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  291 |         register MODCHANNEL * const pChn = pChannel;\
      |                                     ^~~~
fastmix.cpp:1059:9: note: in expansion of macro 'SNDMIX_BEGINSAMPLELOOP8'
 1059 |         SNDMIX_BEGINSAMPLELOOP8
      |         ^~~~~~~~~~~~~~~~~~~~~~~
fastmix.cpp: In function 'VOID FilterMono16BitLinearRampMix(MODCHANNEL*, int*, int*)':
fastmix.cpp:299:37: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  299 |         register MODCHANNEL * const pChn = pChannel;\
      |                                     ^~~~
fastmix.cpp:1066:9: note: in expansion of macro 'SNDMIX_BEGINSAMPLELOOP16'
 1066 |         SNDMIX_BEGINSAMPLELOOP16
      |         ^~~~~~~~~~~~~~~~~~~~~~~~
fastmix.cpp: In function 'VOID FilterMono8BitSplineRampMix(MODCHANNEL*, int*, int*)':
fastmix.cpp:291:37: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  291 |         register MODCHANNEL * const pChn = pChannel;\
      |                                     ^~~~
fastmix.cpp:1073:9: note: in expansion of macro 'SNDMIX_BEGINSAMPLELOOP8'
 1073 |         SNDMIX_BEGINSAMPLELOOP8
      |         ^~~~~~~~~~~~~~~~~~~~~~~
fastmix.cpp: In function 'VOID FilterMono16BitSplineRampMix(MODCHANNEL*, int*, int*)':
fastmix.cpp:299:37: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  299 |         register MODCHANNEL * const pChn = pChannel;\
      |                                     ^~~~
fastmix.cpp:1080:9: note: in expansion of macro 'SNDMIX_BEGINSAMPLELOOP16'
 1080 |         SNDMIX_BEGINSAMPLELOOP16
      |         ^~~~~~~~~~~~~~~~~~~~~~~~
fastmix.cpp: In function 'VOID FilterMono8BitFirFilterRampMix(MODCHANNEL*, int*, int*)':
fastmix.cpp:291:37: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  291 |         register MODCHANNEL * const pChn = pChannel;\
      |                                     ^~~~
fastmix.cpp:1087:9: note: in expansion of macro 'SNDMIX_BEGINSAMPLELOOP8'
 1087 |         SNDMIX_BEGINSAMPLELOOP8
      |         ^~~~~~~~~~~~~~~~~~~~~~~
fastmix.cpp: In function 'VOID FilterMono16BitFirFilterRampMix(MODCHANNEL*, int*, int*)':
fastmix.cpp:299:37: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  299 |         register MODCHANNEL * const pChn = pChannel;\
      |                                     ^~~~
fastmix.cpp:1094:9: note: in expansion of macro 'SNDMIX_BEGINSAMPLELOOP16'
 1094 |         SNDMIX_BEGINSAMPLELOOP16
      |         ^~~~~~~~~~~~~~~~~~~~~~~~
fastmix.cpp: In function 'VOID FilterStereo8BitMix(MODCHANNEL*, int*, int*)':
fastmix.cpp:291:37: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  291 |         register MODCHANNEL * const pChn = pChannel;\
      |                                     ^~~~
fastmix.cpp:1103:9: note: in expansion of macro 'SNDMIX_BEGINSAMPLELOOP8'
 1103 |         SNDMIX_BEGINSAMPLELOOP8
      |         ^~~~~~~~~~~~~~~~~~~~~~~
fastmix.cpp: In function 'VOID FilterStereo16BitMix(MODCHANNEL*, int*, int*)':
fastmix.cpp:299:37: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  299 |         register MODCHANNEL * const pChn = pChannel;\
      |                                     ^~~~
fastmix.cpp:1110:9: note: in expansion of macro 'SNDMIX_BEGINSAMPLELOOP16'
 1110 |         SNDMIX_BEGINSAMPLELOOP16
      |         ^~~~~~~~~~~~~~~~~~~~~~~~
fastmix.cpp: In function 'VOID FilterStereo8BitLinearMix(MODCHANNEL*, int*, int*)':
fastmix.cpp:291:37: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  291 |         register MODCHANNEL * const pChn = pChannel;\
      |                                     ^~~~
fastmix.cpp:1117:9: note: in expansion of macro 'SNDMIX_BEGINSAMPLELOOP8'
 1117 |         SNDMIX_BEGINSAMPLELOOP8
      |         ^~~~~~~~~~~~~~~~~~~~~~~
fastmix.cpp: In function 'VOID FilterStereo16BitLinearMix(MODCHANNEL*, int*, int*)':
fastmix.cpp:299:37: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  299 |         register MODCHANNEL * const pChn = pChannel;\
      |                                     ^~~~
fastmix.cpp:1124:9: note: in expansion of macro 'SNDMIX_BEGINSAMPLELOOP16'
 1124 |         SNDMIX_BEGINSAMPLELOOP16
      |         ^~~~~~~~~~~~~~~~~~~~~~~~
fastmix.cpp: In function 'VOID FilterStereo8BitSplineMix(MODCHANNEL*, int*, int*)':
fastmix.cpp:291:37: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  291 |         register MODCHANNEL * const pChn = pChannel;\
      |                                     ^~~~
fastmix.cpp:1131:9: note: in expansion of macro 'SNDMIX_BEGINSAMPLELOOP8'
 1131 |         SNDMIX_BEGINSAMPLELOOP8
      |         ^~~~~~~~~~~~~~~~~~~~~~~
fastmix.cpp: In function 'VOID FilterStereo16BitSplineMix(MODCHANNEL*, int*, int*)':
fastmix.cpp:299:37: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  299 |         register MODCHANNEL * const pChn = pChannel;\
      |                                     ^~~~
fastmix.cpp:1138:9: note: in expansion of macro 'SNDMIX_BEGINSAMPLELOOP16'
 1138 |         SNDMIX_BEGINSAMPLELOOP16
      |         ^~~~~~~~~~~~~~~~~~~~~~~~
fastmix.cpp: In function 'VOID FilterStereo8BitFirFilterMix(MODCHANNEL*, int*, int*)':
fastmix.cpp:291:37: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  291 |         register MODCHANNEL * const pChn = pChannel;\
      |                                     ^~~~
fastmix.cpp:1145:9: note: in expansion of macro 'SNDMIX_BEGINSAMPLELOOP8'
 1145 |         SNDMIX_BEGINSAMPLELOOP8
      |         ^~~~~~~~~~~~~~~~~~~~~~~
fastmix.cpp: In function 'VOID FilterStereo16BitFirFilterMix(MODCHANNEL*, int*, int*)':
fastmix.cpp:299:37: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  299 |         register MODCHANNEL * const pChn = pChannel;\
      |                                     ^~~~
fastmix.cpp:1152:9: note: in expansion of macro 'SNDMIX_BEGINSAMPLELOOP16'
 1152 |         SNDMIX_BEGINSAMPLELOOP16
      |         ^~~~~~~~~~~~~~~~~~~~~~~~
fastmix.cpp: In function 'VOID FilterStereo8BitRampMix(MODCHANNEL*, int*, int*)':
fastmix.cpp:291:37: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  291 |         register MODCHANNEL * const pChn = pChannel;\
      |                                     ^~~~
fastmix.cpp:1160:9: note: in expansion of macro 'SNDMIX_BEGINSAMPLELOOP8'
 1160 |         SNDMIX_BEGINSAMPLELOOP8
      |         ^~~~~~~~~~~~~~~~~~~~~~~
fastmix.cpp: In function 'VOID FilterStereo16BitRampMix(MODCHANNEL*, int*, int*)':
fastmix.cpp:299:37: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  299 |         register MODCHANNEL * const pChn = pChannel;\
      |                                     ^~~~
fastmix.cpp:1167:9: note: in expansion of macro 'SNDMIX_BEGINSAMPLELOOP16'
 1167 |         SNDMIX_BEGINSAMPLELOOP16
      |         ^~~~~~~~~~~~~~~~~~~~~~~~
fastmix.cpp: In function 'VOID FilterStereo8BitLinearRampMix(MODCHANNEL*, int*, int*)':
fastmix.cpp:291:37: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  291 |         register MODCHANNEL * const pChn = pChannel;\
      |                                     ^~~~
fastmix.cpp:1174:9: note: in expansion of macro 'SNDMIX_BEGINSAMPLELOOP8'
 1174 |         SNDMIX_BEGINSAMPLELOOP8
      |         ^~~~~~~~~~~~~~~~~~~~~~~
fastmix.cpp: In function 'VOID FilterStereo16BitLinearRampMix(MODCHANNEL*, int*, int*)':
fastmix.cpp:299:37: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  299 |         register MODCHANNEL * const pChn = pChannel;\
      |                                     ^~~~
fastmix.cpp:1181:9: note: in expansion of macro 'SNDMIX_BEGINSAMPLELOOP16'
 1181 |         SNDMIX_BEGINSAMPLELOOP16
      |         ^~~~~~~~~~~~~~~~~~~~~~~~
fastmix.cpp: In function 'VOID FilterStereo8BitSplineRampMix(MODCHANNEL*, int*, int*)':
fastmix.cpp:291:37: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  291 |         register MODCHANNEL * const pChn = pChannel;\
      |                                     ^~~~
fastmix.cpp:1188:9: note: in expansion of macro 'SNDMIX_BEGINSAMPLELOOP8'
 1188 |         SNDMIX_BEGINSAMPLELOOP8
      |         ^~~~~~~~~~~~~~~~~~~~~~~
fastmix.cpp: In function 'VOID FilterStereo16BitSplineRampMix(MODCHANNEL*, int*, int*)':
fastmix.cpp:299:37: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  299 |         register MODCHANNEL * const pChn = pChannel;\
      |                                     ^~~~
fastmix.cpp:1195:9: note: in expansion of macro 'SNDMIX_BEGINSAMPLELOOP16'
 1195 |         SNDMIX_BEGINSAMPLELOOP16
      |         ^~~~~~~~~~~~~~~~~~~~~~~~
fastmix.cpp: In function 'VOID FilterStereo8BitFirFilterRampMix(MODCHANNEL*, int*, int*)':
fastmix.cpp:291:37: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  291 |         register MODCHANNEL * const pChn = pChannel;\
      |                                     ^~~~
fastmix.cpp:1202:9: note: in expansion of macro 'SNDMIX_BEGINSAMPLELOOP8'
 1202 |         SNDMIX_BEGINSAMPLELOOP8
      |         ^~~~~~~~~~~~~~~~~~~~~~~
fastmix.cpp: In function 'VOID FilterStereo16BitFirFilterRampMix(MODCHANNEL*, int*, int*)':
fastmix.cpp:299:37: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  299 |         register MODCHANNEL * const pChn = pChannel;\
      |                                     ^~~~
fastmix.cpp:1209:9: note: in expansion of macro 'SNDMIX_BEGINSAMPLELOOP16'
 1209 |         SNDMIX_BEGINSAMPLELOOP16
      |         ^~~~~~~~~~~~~~~~~~~~~~~~
fastmix.cpp: In member function 'UINT CSoundFile::CreateStereoMix(int)':
fastmix.cpp:1488:30: warning: variable 'nMasterCh' set but not used [-Wunused-but-set-variable]
 1488 |                 UINT nFlags, nMasterCh;
      |                              ^~~~~~~~~
load_pat.cpp: In function 'void pat_init_patnames()':
load_pat.cpp:281:54: warning: ignoring return value of 'char* fgets(char*, int, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
  281 | #define _mm_fgets(f,buf,sz)                     fgets(buf,sz,f)
      |                                                 ~~~~~^~~~~~~~~~
load_pat.cpp:387:25: note: in expansion of macro '_mm_fgets'
  387 |                         _mm_fgets(mmcfg, line, PATH_MAX);
      |                         ^~~~~~~~~
load_pat.cpp:281:54: warning: ignoring return value of 'char* fgets(char*, int, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
  281 | #define _mm_fgets(f,buf,sz)                     fgets(buf,sz,f)
      |                                                 ~~~~~^~~~~~~~~~
load_pat.cpp:433:25: note: in expansion of macro '_mm_fgets'
  433 |                         _mm_fgets(mmcfg, line, PATH_MAX);
      |                         ^~~~~~~~~
load_pat.cpp: In function 'void pat_read_waveheader(FILE*, WaveHeader*, int)':
load_pat.cpp:284:54: warning: ignoring return value of 'size_t fread(void*, size_t, size_t, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
  284 | #define _mm_read_UBYTES(buf,sz,f)               fread(buf,sz,1,f)
      |                                                 ~~~~~^~~~~~~~~~~~
load_pat.cpp:517:33: note: in expansion of macro '_mm_read_UBYTES'
  517 |                                 _mm_read_UBYTES((BYTE *)hw, sizeof(WaveHeader), mmpat);
      |                                 ^~~~~~~~~~~~~~~
load_pat.cpp:284:54: warning: ignoring return value of 'size_t fread(void*, size_t, size_t, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
  284 | #define _mm_read_UBYTES(buf,sz,f)               fread(buf,sz,1,f)
      |                                                 ~~~~~^~~~~~~~~~~~
load_pat.cpp:525:33: note: in expansion of macro '_mm_read_UBYTES'
  525 |                                 _mm_read_UBYTES((BYTE *)hw, sizeof(WaveHeader), mmpat);
      |                                 ^~~~~~~~~~~~~~~
load_pat.cpp:284:54: warning: ignoring return value of 'size_t fread(void*, size_t, size_t, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
  284 | #define _mm_read_UBYTES(buf,sz,f)               fread(buf,sz,1,f)
      |                                                 ~~~~~^~~~~~~~~~~~
load_pat.cpp:542:9: note: in expansion of macro '_mm_read_UBYTES'
  542 |         _mm_read_UBYTES((BYTE *)hw, sizeof(WaveHeader), mmpat);
      |         ^~~~~~~~~~~~~~~
load_pat.cpp: In function 'void pat_read_layerheader(FILE*, LayerHeader*)':
load_pat.cpp:284:54: warning: ignoring return value of 'size_t fread(void*, size_t, size_t, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
  284 | #define _mm_read_UBYTES(buf,sz,f)               fread(buf,sz,1,f)
      |                                                 ~~~~~^~~~~~~~~~~~
load_pat.cpp:486:9: note: in expansion of macro '_mm_read_UBYTES'
  486 |         _mm_read_UBYTES((BYTE *)hl, sizeof(LayerHeader), mmpat);
      |         ^~~~~~~~~~~~~~~
load_pat.cpp: In function 'void pat_readpat(int, char*, int)':
load_pat.cpp:285:54: warning: ignoring return value of 'size_t fread(void*, size_t, size_t, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
  285 | #define _mm_read_SBYTES(buf,sz,f)               fread(buf,sz,1,f)
      |                                                 ~~~~~^~~~~~~~~~~~
load_pat.cpp:695:9: note: in expansion of macro '_mm_read_SBYTES'
  695 |         _mm_read_SBYTES(dest, num, mmpat);
      |         ^~~~~~~~~~~~~~~
load_abc.cpp: In function 'ABCTRACK* abc_locate_track(ABCHANDLE*, const char*, int)':
load_abc.cpp:829:23: warning: comparison of integer expressions of different signedness: 'int' and 'long unsigned int' [-Wsign-compare]
  829 |         for( i=0; i+1 < sizeof(vc) && *voice && *voice != ']' && *voice != '%' && !isspace(*voice); voice++ )   // can work with inline voice instructions
      |                   ~~~~^~~~~~~~~~~~
load_abc.cpp: In function 'void abc_add_chord(const char*, ABCHANDLE*, ABCTRACK*, uint32_t)':
load_abc.cpp:1499:21: warning: comparison of integer expressions of different signedness: 'int' and 'long unsigned int' [-Wsign-compare]
 1499 |         for( i=0; i < sizeof(s) - 1 && p[i] && p[i] != '"' && p[i] != '/' && p[i] != '(' && p[i] != ')' && p[i] != ' '; i++ ) s[i] = p[i];
      |                   ~~^~~~~~~~~~~~~~~
load_abc.cpp: In function 'void abc_set_parts(char**, char*)':
load_abc.cpp:1833:56: warning: comparison of integer expressions of different signedness: 'int' and 'size_t' {aka 'long unsigned int'} [-Wsign-compare]
 1833 |         for( i=0; p[i] && p[i] != '%' && j < size && i < size; i++ ) {
      |                                                      ~~^~~~~~
load_abc.cpp:1839:54: warning: comparison of integer expressions of different signedness: 'int' and 'size_t' {aka 'long unsigned int'} [-Wsign-compare]
 1839 |                                         for( k = n; k<j; k++ ) q[k-1] = q[k];   // shift to the left...
      |                                                     ~^~
load_abc.cpp:1874:20: warning: comparison of integer expressions of different signedness: 'int' and 'size_t' {aka 'long unsigned int'} [-Wsign-compare]
 1874 |         for( i=0; i<j; i++ ) {
      |                   ~^~
load_abc.cpp:1877:36: warning: comparison of integer expressions of different signedness: 'int' and 'size_t' {aka 'long unsigned int'} [-Wsign-compare]
 1877 |                         for( k=i; k<j; k++ ) q[k] = q[k+1];
      |                                   ~^~
load_abc.cpp: In function 'int abc_MIDI_drum(const char*, ABCHANDLE*)':
load_abc.cpp:2979:41: warning: comparison of integer expressions of different signedness: 'int' and 'long unsigned int' [-Wsign-compare]
 2979 |                 if( !isdigit(*p) && len < sizeof(h->drum)-1 ) {
      |                                     ~~~~^~~~~~~~~~~~~~~~~~~
load_abc.cpp:2983:25: warning: comparison of integer expressions of different signedness: 'int' and 'long unsigned int' [-Wsign-compare]
 2983 |                 if (len >= sizeof(h->drum)-1) {
      |                     ~~~~^~~~~~~~~~~~~~~~~~~~
load_abc.cpp: In function 'int abc_MIDI_gchord(const char*, ABCHANDLE*)':
load_abc.cpp:3033:41: warning: comparison of integer expressions of different signedness: 'int' and 'long unsigned int' [-Wsign-compare]
 3033 |                 if( !isdigit(*p) && len < sizeof(h->gchord)-1 && !isdigit(p[1]) ) { *q++ = '1'; len ++; }
      |                                     ~~~~^~~~~~~~~~~~~~~~~~~~~
load_abc.cpp:3034:25: warning: comparison of integer expressions of different signedness: 'int' and 'long unsigned int' [-Wsign-compare]
 3034 |                 if (len >= sizeof(h->gchord)-1) {
      |                     ~~~~^~~~~~~~~~~~~~~~~~~~~~
load_abc.cpp: In function 'void abc_metric_gchord(ABCHANDLE*, int, int)':
load_abc.cpp:3080:34: warning: comparison of integer expressions of different signedness: 'int' and 'long unsigned int' [-Wsign-compare]
 3080 |                         if (dest >= sizeof(h->gchord))
      |                             ~~~~~^~~~~~~~~~~~~~~~~~~~
load_abc.cpp: In member function 'BOOL CSoundFile::ReadABC(const uint8_t*, DWORD)':
load_abc.cpp:3935:64: warning: comparison of integer expressions of different signedness: 'int' and 'DWORD' {aka 'unsigned int'} [-Wsign-compare]
 3935 |                                         if (mmstack[mmsp]->pos < dwMemLength) {
      |                                             ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
load_abc.cpp: In function 'MMFILE* mmfopen(const char*, const char*)':
load_abc.cpp:447:14: warning: ignoring return value of 'size_t fread(void*, size_t, size_t, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
  447 |         fread(&mmfile[1],1,len,fp);
      |         ~~~~~^~~~~~~~~~~~~~~~~~~~~
load_abc.cpp:428:3: warning: type 'struct MMFILE' violates the C++ One Definition Rule [-Wodr]
  428 | } MMFILE;
      |   ^
load_mid.cpp:108:3: note: a different type is defined in another translation unit
  108 | } MMFILE;
      |   ^
load_abc.cpp:426:13: note: the first difference of corresponding definitions is field 'sz'
  426 |         int sz;
      |             ^
load_mid.cpp:106:22: note: a field of same name but different type is defined in another translation unit
  106 |         unsigned int sz;
      |                      ^
load_abc.cpp:428:3: note: type 'int' should match type 'unsigned int'
  428 | } MMFILE;
      |   ^
snd_dsp.cpp:102:12: warning: type of 'MixSoundBuffer' does not match original declaration [-Wlto-type-mismatch]
  102 | extern int MixSoundBuffer[MIXBUFFERSIZE*2];
      |            ^
fastmix.cpp:17:5: note: array types have different bounds
   17 | int MixSoundBuffer[MIXBUFFERSIZE*4];
      |     ^
fastmix.cpp:17:5: note: 'MixSoundBuffer' was previously declared here
libtool: warning: remember to run 'libtool --finish /usr/lib64'

kloczek avatar Dec 11 '21 18:12 kloczek

Look at my fork at https://github.com/sezero/libmodplug/tree/sezero which fixes those and more

sezero avatar Dec 11 '21 18:12 sezero

Look at my fork at https://github.com/sezero/libmodplug/tree/sezero which fixes those and more

Got flooded out with a bunch of these building libmodplug to test after #66 was merged—do you have a patch for these?

AliceLR avatar Jan 28 '22 12:01 AliceLR

For -Wregister : https://github.com/sezero/libmodplug/commit/c0db4e2c053f5ccd962c5a3ff7033adafe58d520

For misc others, check these out: https://github.com/sezero/libmodplug/commit/3a7fac8842d3f8745fd050bd6371e4ebe7c918bc https://github.com/sezero/libmodplug/commit/2d762bcd2ec6d643672895be48dcd6a9ebfa6e0e https://github.com/sezero/libmodplug/commit/fc591cb0bd985d6cf7bfe2a33115224b4c6f35b7 https://github.com/sezero/libmodplug/commit/b11d0dda2e1e4060537be2c765ba0394bb7cc181 https://github.com/sezero/libmodplug/commit/40638b6a77d5da28013b87048565c9c1566abed9

(There may be more, but these are the ones easy to find.)

sezero avatar Jan 28 '22 12:01 sezero

Created https://github.com/Konstanty/libmodplug/pull/70

sezero avatar Jan 28 '22 14:01 sezero

Now that PR/70 is in, which warnings do remain? Or, can this be closed?

sezero avatar Jan 29 '22 12:01 sezero

Still have these (wish strncpy would just get __attribute__((deprecated)) slapped on it already):

  CXX      load_pat.lo
load_pat.cpp: In function 'void PATsample(CSoundFile*, MODINSTRUMENT*, int, int)':
load_pat.cpp:1064:16: warning: 'char* strncpy(char*, const char*, size_t)' output may be truncated copying 31 bytes from a string of length 255 [-Wstringop-truncation]
 1064 |         strncpy(cs->m_szNames[smp], s, 32-1);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
load_pat.cpp: In function 'void pat_init_patnames()':
load_pat.cpp:374:16: warning: 'char* strncpy(char*, const char*, size_t)' output may be truncated copying 259 bytes from a string of length 259 [-Wstringop-truncation]
  374 |         strncpy(cfgsources[0], timiditycfg, PATH_MAX - 1);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In function 'void PATinst(INSTRUMENTHEADER*, int, int)',
    inlined from 'BOOL PAT_Load_Instruments(void*)' at load_pat.cpp:1115:10:
load_pat.cpp:1026:24: warning: 'char* strncpy(char*, const char*, size_t)' output may be truncated copying 31 bytes from a string of length 49659 [-Wstringop-truncation]
 1026 |                 strncpy(s, midipat[gm-1], 32);
      |                 ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
load_pat.cpp:1024:24: warning: 'char* strncpy(char*, const char*, size_t)' output may be truncated copying 31 bytes from a string of length 31 [-Wstringop-truncation]
 1024 |                 strncpy(s, hw.reserved, 32);
      |                 ~~~~~~~^~~~~~~~~~~~~~~~~~~~

AliceLR avatar Jan 29 '22 23:01 AliceLR

load_pat.cpp:1064:16: warning: 'char* strncpy(char*, const char*, size_t)' output may be truncated copying 31 bytes from a string of length 255 [-Wstringop-truncation]
 1064 |         strncpy(cs->m_szNames[smp], s, 32-1);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Not only will GCC's "correct" way of suppressing this (manually inserting a \0) not suppress this, but GCC missed a blatant actual bug with the sprintf above it, which can overflow the buffer if midipat[gm-1] is longer than 245 🤦‍♀️

AliceLR avatar Jan 30 '22 00:01 AliceLR

Opened #83 to fix the rest of the warnings on my end.

AliceLR avatar Jan 30 '22 00:01 AliceLR

Possibly related: libmodplug segfaults when compiled with UBsan enabled, indicating that libmodplug depends on undefined behavior... No idea how to debug this though.

absolutelynothinghere avatar Dec 31 '23 18:12 absolutelynothinghere