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

Call to undeclared library function '_BitScanForward' with VS2022 ClanCl in WAVPACK #625

Closed
eres-j opened this issue Aug 5, 2024 · 1 comment

Comments

@eres-j
Copy link

eres-j commented Aug 5, 2024

Hi,

This issue is actually in https://github.com/libsdl-org/WavPack but it is not possible to open one in this repository.
It is a fork but it looks more maintained than the original repo.
I hope you don't mind if I open one here, not sure how to proceed with external library hosted in libsdl-org.

I recently let my project build using VS2022 ClangCl and got the following error in wavpack:
SDL_mixer\external\wavpack\src\read_words.c(136,30): error : call to undeclared library function '_BitScanForward' with type 'unsigned char (unsigned long *, unsigned long)'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]

Step to reproduce (in SDL_mixer\external\wavpack):

"%ProgramFiles%\CMake\bin\cmake.exe" -B build -G "Visual Studio 17 2022" -A x64 -T ClangCl
"%ProgramFiles%\CMake\bin\cmake.exe" --build "build" --config Release

Potential fix:
I locally patched read_words.c by adding this at line 29

#if defined(_MSC_VER) && defined(__clang__)
#include <intrin.h>
#endif

The compiler also give some warnings which could be nice to fix as well:

SDL_mixer\external\wavpack\src\unpack_dsd.c(510,9): warning : variable 'skipped_terms' set but not used [-Wunused-but-set-variable]
SDL_mixer\external\wavpack\cli\wvtag.c(1351,37): warning : passing 'char *' to parameter of type 'const unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
SDL_mixer\external\wavpack\cli\wvunpack.c(3347,37): warning : passing 'char *' to parameter of type 'const unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]

Let me know if you need more information :)

@eres-j
Copy link
Author

eres-j commented Aug 5, 2024

My bad...
I don't know which repo I checked exactly but after searching again I've been able to open an issue there: dbry/WavPack#184

Sorry for the noise.

@eres-j eres-j closed this as completed Aug 5, 2024
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

1 participant