PortAudio / portaudio

PortAudio is a cross-platform, open-source C language library for real-time audio input and output.
Other
1.37k stars 286 forks source link

linux alsa: Build failure with clang18 #938

Open jcelerier opened 4 days ago

jcelerier commented 4 days ago
[15/30] Building C object CMakeFiles/portaudio.dir/src/hostapi/alsa/pa_linux_alsa.c.o
FAILED: CMakeFiles/portaudio.dir/src/hostapi/alsa/pa_linux_alsa.c.o 
/usr/lib/sdk/llvm18/bin/clang -DPA_ALSA_DYNAMIC -DPA_LITTLE_ENDIAN -DPA_USE_ALSA -Dportaudio_EXPORTS -I/run/build/portaudio/src/common -I/run/build/portaudio -I/run/build/portaudio/src/os/unix -I/run/build/portaudio/include -O2 -pipe -g -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -O2 -g -DNDEBUG -fPIC -MD -MT CMakeFiles/portaudio.dir/src/hostapi/alsa/pa_linux_alsa.c.o -MF CMakeFiles/portaudio.dir/src/hostapi/alsa/pa_linux_alsa.c.o.d -o CMakeFiles/portaudio.dir/src/hostapi/alsa/pa_linux_alsa.c.o -c /run/build/portaudio/src/hostapi/alsa/pa_linux_alsa.c

/run/build/portaudio/src/hostapi/alsa/pa_linux_alsa.c:4392:5: error: cannot jump from this goto statement to its label
 4392 |     goto end;
      |     ^
/run/build/portaudio/src/hostapi/alsa/pa_linux_alsa.c:4217:5: note: jump bypasses initialization of variable with __attribute__((cleanup))
 4217 |     pthread_cleanup_push( &OnExit, stream );
      |     ^
/usr/include/pthread.h:640:36: note: expanded from macro 'pthread_cleanup_push'
  640 |     struct __pthread_cleanup_frame __clframe                                  \
      |                                    ^
1 warning and 1 error generated.

this seems like a very valid bug that clang is uncovering there.