From 5dcd2ccf2e5a49604eee0f1be3bd4be0d43e70e5 Mon Sep 17 00:00:00 2001 From: ahlstrom Date: Thu, 7 Dec 2023 07:16:14 -0500 Subject: [PATCH] Fixed more errors/warnings uncovered by clang-16 for ussue #124. --- TODO | 12 +++++++++++- bootstrap | 17 ++++++++++++++-- contrib/midi/README | 15 +++++++++++++- contrib/midi/trilogy.mid | Bin 0 -> 92274 bytes contrib/scripts/configure-clang | 29 ++++++++++++++++++++++++++++ libseq66/src/ctrl/opcontainer.cpp | 4 ++-- libseq66/src/midi/event.cpp | 20 +++++++++---------- libseq66/src/midi/midifile.cpp | 6 ++---- seq_portmidi/include/midibus_pm.hpp | 4 ++-- 9 files changed, 85 insertions(+), 22 deletions(-) create mode 100644 contrib/midi/trilogy.mid create mode 100755 contrib/scripts/configure-clang diff --git a/TODO b/TODO index 81112928..d2c13ac6 100644 --- a/TODO +++ b/TODO @@ -1,6 +1,6 @@ TO DO for Seq66 0.99.11 Chris Ahlstrom -2019-04-13 to 2023-12-06 +2019-04-13 to 2023-12-07 Misc: @@ -27,6 +27,16 @@ Misc: into a pattern when recording is set. [Turns out to be quite tricky!] - The Carpet song has PPQN = 120 and displays weirdly in pattern editor. Too difficult to fix at this time; converted it to 192. + - trilogy.mid errors: + [seq66] Offset ~0xae18 of 0x16872 bytes (44568/92274): + Unsupported MIDI event. Bad value 0x56. + [seq66] Unexpected meta type 0x2f offset ~0xaee7 + [seq66] Unexpected meta type 0x2f offset ~0xaf82 + [seq66] Unexpected meta type 0x2f offset ~0xca35 + [seq66] Unexpected meta type 0x2f offset ~0x149e4 + [seq66] Unexpected meta type 0x2f offset ~0x167df + [seq66] Unexpected meta type 0x2f offset ~0x16822 + [seq66] Read: '/home/ahlstrom/Downloads/Trilogy.mid' Mutes: diff --git a/bootstrap b/bootstrap index 594105ed..add15ce6 100755 --- a/bootstrap +++ b/bootstrap @@ -8,7 +8,7 @@ # \library Seq66 # \author Chris Ahlstrom # \date 2018-11-09 -# \update 2022-05-23 +# \update 2023-12-06 # \version $Revision$ # \license $XPC_SUITE_GPL_LICENSE$ # @@ -36,7 +36,7 @@ LANG=C export LANG CYGWIN=binmode export CYGWIN -export SEQ66_SCRIPT_EDIT_DATE="2022-05-23" +export SEQ66_SCRIPT_EDIT_DATE="2022-12-06" export SEQ66_LIBRARY_API_VERSION="0.99" export SEQ66_LIBRARY_VERSION="$SEQ66_LIBRARY_API_VERSION.9" @@ -66,6 +66,7 @@ checkdir libseq66 # Option settings #------------------------------------------------------------------------------ +DOAUTOCONF_ONLY="no" DOBOOTSTRAP="yes" DOCONFIGURE="no" DONSM="yes" @@ -106,6 +107,7 @@ and creates the 'configure' script. It can super-clean the project, removing all generated files and directories. It provides options to save trouble passing long options to the configure script for some canned setups. + --autoconf Just create the autoconf/automake setup and exit. --clean Delete the usual derived files from the project. --full-clean Delete all derived and configure-related files. The bootstrap script will need to be run again. @@ -152,6 +154,12 @@ if [ $# -ge 1 ] ; then case "$1" in + --autoconf) + + DOAUTOCONF_ONLY="yes" + DOCONFIGURE="no" + ;; + --no-bootstrap | -nb) DOBOOTSTRAP="no" DOCONFIGURE="no" @@ -492,6 +500,11 @@ E_O_F cp contrib/mkinstalldirs-1.10 aux-files/mkinstalldirs + if [ $DOAUTOCONF_ONLY == "yes" ] ; then + echo "Autoconf is set up, exiting..." + exit 0 + fi + # At this point, remove files which always need to be regenerated. # Right now, this is done with the --clean option. diff --git a/contrib/midi/README b/contrib/midi/README index dcfa8d3d..96f05637 100644 --- a/contrib/midi/README +++ b/contrib/midi/README @@ -1,6 +1,6 @@ MIDI Sample and Test Files Chris Ahlstrom -2015-09-11 to 2023-11-25 +2015-09-11 to 2023-12-07 This directory contains contributed MIDI files for examples and testing. Also see the test files from the midicvt as described in @@ -110,6 +110,19 @@ the "example1" file. A version more like the original. + trilogy.mid: + + A file found that yields unexpected data: + + Offset ~0xae18 of 0x16872 bytes (44568/92274): + Unsupported MIDI event. Bad value 0x56. + Unexpected meta type 0x2f offset ~0xaee7 + Unexpected meta type 0x2f offset ~0xaf82 + Unexpected meta type 0x2f offset ~0xca35 + Unexpected meta type 0x2f offset ~0x149e4 + Unexpected meta type 0x2f offset ~0x167df + Unexpected meta type 0x2f offset ~0x16822 + There are many other files, used for testing fixes, that are not documented here. diff --git a/contrib/midi/trilogy.mid b/contrib/midi/trilogy.mid new file mode 100644 index 0000000000000000000000000000000000000000..795733d688fc60d270261b512bd5114560402201 GIT binary patch literal 92274 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

lFmf3mO!=hzL4Q z9}EgoS0my5NMriLhWrm3>i?*JT+kI!!POq)^jrRhAJs=!1dRxDM17ucNKiR^||yI^8Gu>WUFj0k&hJGKOI) zl1eEmT7eYWCdn;lLF}eI9XnRJ~+(@HHg5=NA<}3k+*SNK~K; zy~4z8Wm<&%!bIt~s30m#3)m%L!nxA*bz0{Kg$ZLjD$G&72aW4A*6$N0c&8zc3v--a z$a?>(&rg9Kj#|{*_ko+>sp3AfUKKIxk<&vKe%86)+=ENdY}UW5cD#Ppn>_-u1nx6K zU!rO=;es>()4K|25vA_J|EIVM7Ag7x1) ztB?q(p8!>ZqtQ5MtGWOh+x<90;@obg)_0rMDHpm zq|^3DZJt85ZRv%^*?MYQByF*^4YzHtJ0x)f&oPiStIbz30#??A;Z6$L#ZMKznz^-d(Zxd+nWV{Sv|6!?)j7*glf&BONT7 z>^D&M8z_4p$=*k@_mK`vqU|HuK9cPt**?;NL9l%!+efl}B-=-_eWU}EX!}UEk7WBu zbsuT+MMr~P(TT$spQErlsGXyD{l{DN*;e~x^UwWQ{_AJGeX{u#oT+)4qk6B%yuH+k zZTm>t>pGJ5;_1xh!Rz9IeJt=5n6TG)viZe2^NMVw-ND!1$ncFFjc zA`L;u$Ulnv)G!=XbQD{~7}OhE(qVaID-mk*ejaHsT0SqahS$0F8k}P zRFhhL9Ogz7oZG&{t#Fvzr|QR$uQIt*0pzcf;;45o`NrvcC_+B!pch?=d|hFjs?+*} zILZ{RwG-kf{;Z#tbC2&6z5P4&&${{+ZajRrW67?}0{zc#(ZBYc`Q*QN`j0Zw%n+p{ ztx9th38FPgI&+PXz)zDChtlSkTfLxWBeb8=>bveMBP$vDi7P72DAAHMmw2cq1{s%T zoJi*{NLrSaWugVnM`i_;Q93IrAu9qL2J z=80CMxx&n-tdXg))j2t7=7^HgOx8z{m6a^lub_TfRsd7TiXhT8b*YA2kd;Cm2VGNh zHz#RBnj2_BH9632HMSa0-MhxNk$N-IoFST*=6r1|uYguIwO^Xr)nPDiNmhp;+Tb44 zFfJ<)-VB*(Nej}1P^Za+jB7S75UR?WY%G!4kY?dm3d6$R00=DssGry~n*J~(#lG0cpOY6FNni@nSXiejstbkv63EWMEwW;;KQJZyIk4e|hN;6BQ zMq1NALsQJveSx>HP@7*f!(VfEwtQjc__@kgWnr7&l*fMHNYdYxs zb=d}*G^UHvEb^v>iA{@5*||wnl%2>qoURV50)q>z%hzQmpz3yq)69X!{B`-P zgse^JSMdCRw=Vt2DM&wdN7kfYA@5fM^eZCxL6BwX$Lcd7{n*7>l75)jMd^o=rnie$ zBz|HSB!yiNWMU@=Ue{Lrd(oy{+GAtzxLhyKeo#Xeseo?YEOgF$eRKFqr zmBH_m{5b>t9FhF#gfVH3k*U)|vVwhOO@>KX!5F`~{;1@SCg`VbJ0L3qU)So@^->+i zV1^)=z&ao+0mh{Qj7(WE8H=wjA3!;f9l;;a;c)FhKq!j!6DO$w5JN82ufF zG%WYGhZ*kv_LtzkxmbRZQiAbQ{~V^HB1vt?hpASh%C{^#OwGeRe337W76Dg62>^Ziw2hqdG?X6&m6vw2WbME)=wAqw(@Of&d_ zH)oiZwUaX?D^UGuS%K#kmKB(X5t%~i73sf%Hj?^fs$VsRFNg{K1W)J+YysL@rg@%HlF`?tDo q;Pr8Q=Sf%MR#$%KZbQBA)$1LL?mV98%IrMgs@d7z!I2TJ_WuJ{UWw)a literal 0 HcmV?d00001 diff --git a/contrib/scripts/configure-clang b/contrib/scripts/configure-clang new file mode 100755 index 00000000..a88eac41 --- /dev/null +++ b/contrib/scripts/configure-clang @@ -0,0 +1,29 @@ +#!/bin/bash +#------------------------------------------------------------------------------ +## +# \file configure-clang +# \library bin +# \author Chris Ahlstrom +# \date 2023-12-06 to 2023-12-06 +# \version $Revision$ +# \license GNU GPLv2 or above +# +# This script tries to set up got building Seq66 with clang. +# +#------------------------------------------------------------------------------ + +export CC=clang +export CXX=clang++ +export RANLIB=llvm-ranlib +export CFLAGS=" -flto -std=gnu99 " +export LDFLAGS=" -flto -fuse-ld=gold " +# export QMAKESPEC="linux-clang" +export QMAKESPEC="linux-llvm" +./configure + +#****************************************************************************** +# qbuild (Seq66) +#------------------------------------------------------------------------------ +# vim: ts=3 sw=3 wm=4 et ft=sh +#------------------------------------------------------------------------------ + diff --git a/libseq66/src/ctrl/opcontainer.cpp b/libseq66/src/ctrl/opcontainer.cpp index 2fe8ea51..2db4b9a7 100644 --- a/libseq66/src/ctrl/opcontainer.cpp +++ b/libseq66/src/ctrl/opcontainer.cpp @@ -25,7 +25,7 @@ * \library seq66 application * \author Chris Ahlstrom * \date 2018-11-18 - * \updates 2022-05-16 + * \updates 2023-12-07 * \license GNU GPLv2 or above * */ @@ -85,7 +85,7 @@ opcontainer::add (const midioperation & op) automation::slot opnumber = op.number(); if ( - opnumber != automation::slot::max || + opnumber != automation::slot::max && // || re issue #124 opnumber != automation::slot::automation ) { diff --git a/libseq66/src/midi/event.cpp b/libseq66/src/midi/event.cpp index e860e88a..64eb67bc 100644 --- a/libseq66/src/midi/event.cpp +++ b/libseq66/src/midi/event.cpp @@ -24,7 +24,7 @@ * \library seq66 application * \author Chris Ahlstrom * \date 2015-07-24 - * \updates 2023-09-16 + * \updates 2023-12-07 * \license GNU GPLv2 or above * * A MIDI event (i.e. "track event") is encapsulated by the seq66::event @@ -98,13 +98,13 @@ namespace seq66 */ event::event () : - m_input_buss (null_buss()), /* 0xFF */ + m_input_buss (null_buss()), /* 0xFF */ m_timestamp (0), - m_status (EVENT_NOTE_OFF), /* note-off, channel 0 */ - m_channel (null_channel()), /* 0x80 */ - m_data (), /* a two-element array */ - m_sysex (), /* an std::vector */ - m_linked (nullptr), + m_status (EVENT_NOTE_OFF), /* note-off, channel 0 */ + m_channel (null_channel()), /* 0x80 */ + m_data (), /* a two-element array */ + m_sysex (), /* an std::vector */ + m_linked (), /* uninit'd iterator #124 */ m_has_link (false), m_selected (false), m_marked (false), @@ -139,7 +139,7 @@ event::event (midipulse tstamp, midibyte status, midibyte d0, midibyte d1) : m_channel (mask_channel(status)), m_data (), /* two-element array, midibytes */ m_sysex (), /* an std::vector of midibytes */ - m_linked (nullptr), + m_linked (), /* removed nullptr issue #124 */ m_has_link (false), m_selected (false), m_marked (false), @@ -159,7 +159,7 @@ event::event (midipulse tstamp, midibpm tempo) : m_channel (EVENT_META_SET_TEMPO), m_data (), /* two-element array, midibytes */ m_sysex (), /* an std::vector of midibytes */ - m_linked (nullptr), + m_linked (), /* removed nullptr issue #124 */ m_has_link (false), m_selected (false), m_marked (false), @@ -186,7 +186,7 @@ event::event m_channel (channel), m_data (), /* two-element array, midibytes */ m_sysex (), /* an std::vector of midibytes */ - m_linked (nullptr), + m_linked (), /* removed nullptr issue #124 */ m_has_link (false), m_selected (false), m_marked (false), diff --git a/libseq66/src/midi/midifile.cpp b/libseq66/src/midi/midifile.cpp index b2232eca..6b8e758e 100644 --- a/libseq66/src/midi/midifile.cpp +++ b/libseq66/src/midi/midifile.cpp @@ -24,7 +24,7 @@ * \library seq66 application * \author Chris Ahlstrom * \date 2015-07-24 - * \updates 2023-11-30 + * \updates 2023-12-06 * \license GNU GPLv2 or above * * For a quick guide to the MIDI format, see, for example: @@ -1542,11 +1542,9 @@ midifile::parse_smf_1 (performer & p, int screenset, bool is_smf0) --m_pos; /* put byte back */ len = read_varinum(); /* sysex */ #if defined SEQ66_USE_SYSEX_PROCESSING - int bcount = 0; - while (len--) + while (len-- > 0) { midibyte b = read_byte(); - ++bcount; if (! e.append_sysex_byte(b)) /* end byte? */ break; } diff --git a/seq_portmidi/include/midibus_pm.hpp b/seq_portmidi/include/midibus_pm.hpp index c213495c..5a31b9af 100644 --- a/seq_portmidi/include/midibus_pm.hpp +++ b/seq_portmidi/include/midibus_pm.hpp @@ -27,7 +27,7 @@ * \library seq66 application * \author Seq24 team; modifications by Chris Ahlstrom * \date 2015-07-24 - * \updates 2023-06-28 + * \updates 2023-12-05 * \license GNU GPLv2 or above * * This midibus module is the Windows (PortMidi) version of the midibus @@ -107,7 +107,7 @@ class midibus : public midibase virtual int api_poll_for_midi () override; virtual bool api_init_in () override; virtual bool api_init_out () override; - virtual void api_continue_from (midipulse tick, midipulse beats); + virtual void api_continue_from (midipulse tick, midipulse beats) override; virtual void api_start () override; virtual void api_stop () override; virtual void api_clock (midipulse tick) override;