Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

0.8.9.0: compile time warnings #63

Open
kloczek opened this issue Dec 11, 2021 · 9 comments
Open

0.8.9.0: compile time warnings #63

kloczek opened this issue Dec 11, 2021 · 9 comments

Comments

@kloczek
Copy link

kloczek commented Dec 11, 2021

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'
@sezero
Copy link
Contributor

sezero commented Dec 11, 2021

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

@AliceLR
Copy link
Contributor

AliceLR commented Jan 28, 2022

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?

@sezero
Copy link
Contributor

sezero commented Jan 28, 2022

For -Wregister :
sezero@c0db4e2

For misc others, check these out:
sezero@3a7fac8
sezero@2d762bc
sezero@fc591cb
sezero@b11d0dd
sezero@40638b6

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

sezero added a commit to sezero/libmodplug that referenced this issue Jan 28, 2022
- src/*.[ch]: multiple fixes for gcc -Wmisleading-indentation, -Wshadow,
  -Wsign-compare, -Wset-but-unused, etc warnings. Fixes for Watcom W007
  warnings. (Most from Konstanty#63
  are fixed, although I might have missed a few. The -Wodr warnings are
  not fixed.)

- src/*.[ch]: build fixes for older MSVC versions.

- configure.ac: revert the hardcoded -macosx-version-min switches from
  commit 28f938c. it was a very bad idea.

- configure.ac: does not really require ac-2.71: work fine down to 2.63.

- configure.ac: remove unnecessary stuff.

- configure.ac: update libm need and discovery. update src/Makefile.am
  accordingly.

- cmake updates to make it more usable:
  - fix header list after commit 664512e
  - add -Wall for gcc and clang
  - add --no-undefined linker flag if supported
  - make -lm conditional
  - add support for visibility attributes
  - set VERSION / SOVERSION properties of unix shared lib
  - set dylib version numbers to match libtoolized builds
  - add test for WORDS_BIGENDIAN
  - rearrange the file

- Makefile.am: add CMakeLists.txt to EXTRA_DIST
@sezero
Copy link
Contributor

sezero commented Jan 28, 2022

Created #70

sezero added a commit to sezero/libmodplug that referenced this issue Jan 28, 2022
- src/*.[ch]: multiple fixes for gcc -Wmisleading-indentation, -Wshadow,
  -Wsign-compare, -Wset-but-unused, etc warnings. Fixes for Watcom W007
  warnings. (Most from Konstanty#63
  are fixed, although I might have missed a few. The -Wodr warnings are
  not fixed.)

- src/*.[ch]: build fixes for older MSVC versions.

- configure.ac: revert the hardcoded -macosx-version-min switches from
  commit 28f938c. it was a very bad idea.

- configure.ac: does not really require ac-2.71: work fine down to 2.63.

- configure.ac: remove unnecessary stuff.

- configure.ac: update libm need and discovery. update src/Makefile.am
  accordingly.

- cmake updates to make it more usable:
  - fix header list after commit 664512e
  - add -Wall for gcc and clang
  - add --no-undefined linker flag if supported
  - make -lm conditional
  - add support for visibility attributes
  - set VERSION / SOVERSION properties of unix shared lib
  - set dylib version numbers to match libtoolized builds
  - add test for WORDS_BIGENDIAN
  - rearrange the file

- Makefile.am: add CMakeLists.txt to EXTRA_DIST
@sezero
Copy link
Contributor

sezero commented Jan 29, 2022

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

@AliceLR
Copy link
Contributor

AliceLR commented Jan 29, 2022

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
Copy link
Contributor

AliceLR commented Jan 30, 2022

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
Copy link
Contributor

AliceLR commented Jan 30, 2022

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

@absolutelynothinghere
Copy link

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants