Menu

#523 3.101 fails to build with GCC/Clang

Compatibility
closed-fixed
None
5
2026-07-11
2026-07-10
lazka
No

Fails with both GCC 16.1.0 and Clang 22.1.8

libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I../../lame-3.101/libmp3lame -I.. -I../../lame-3.101/include -I../../lame-3.101/libmp3lame -I../../lame-3.101 -I.. -I/ucrt64/include -Wall -pipe -march=nocona -msahf -mtune=generic -O2 -pipe -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector-strong -Wp,-D__USE_MING
W_ANSI_STDIO=1 -MT id3tag.lo -MD -MP -MF .deps/id3tag.Tpo -c ../../lame-3.101/libmp3lame/id3tag.c  -DDLL_EXPORT -DPIC -o .libs/id3tag.o
../../lame-3.101/libmp3lame/id3tag.c: In function 'id3tag_set_genre_utf8':
../../lame-3.101/libmp3lame/id3tag.c:661:48: error: passing argument 4 of 'id3v2_add_utf8_lng' from incompatible pointer type [-Wincompatible-pointer-types]
  661 |     ret = id3v2_add_utf8_lng(gfp, ID_GENRE, 0, text);
      |                                                ^~~~
      |                                                |
      |                                                const short unsigned int *
../../lame-3.101/libmp3lame/id3tag.c:221:81: note: expected 'const char *' but argument is of type c
onst short unsigned int *'
  221 | id3v2_add_utf8_lng(lame_t gfp, uint32_t frame_id, char const *desc, char const *text);
      |                                                                     ~~~~~~~~~~~~^~~~
../../lame-3.101/libmp3lame/id3tag.c: In function 'id3tag_set_textinfo_utf8':
../../lame-3.101/libmp3lame/id3tag.c:1141:56: error: passing argument 3 of 'id3tag_set_userinfo_utf' from incompatible pointer type [-Wincompatible-pointer-types]
 1141 |         return id3tag_set_userinfo_utf8(gfp, frame_id, text);
      |                                                        ^~~~
      |                                                        |
      |                                                        const short unsigned int *
../../lame-3.101/libmp3lame/id3tag.c:1094:63: note: expected 'const char *' but argument is of type 'const short unsigned int *'
 1094 | id3tag_set_userinfo_utf8(lame_t gfp, uint32_t id, char const *fieldvalue)
      |                                                   ~~~~~~~~~~~~^~~~~~~~~~
../../lame-3.101/libmp3lame/id3tag.c:1147:53: error: passing argument 4 of 'id3v2_add_utf8_lng' from incompatible pointer type [-Wincompatible-pointer-types]
 1147 |         return id3v2_add_utf8_lng(gfp, frame_id, 0, text);
      |                                                     ^~~~
      |                                                     |
      |                                                     const short unsigned int *
../../lame-3.101/libmp3lame/id3tag.c:1057:81: note: expected 'const char *' but argument is of type
'const short unsigned int *'
 1057 | id3v2_add_utf8_lng(lame_t gfp, uint32_t frame_id, char const *desc, char const *text)
      |                                                                     ~~~~~~~~~~~~^~~~
../../lame-3.101/libmp3lame/id3tag.c:1150:50: error: passing argument 3 of 'id3v2_add_utf8_lng' from incompatible pointer type [-Wincompatible-pointer-types]
 1150 |         return id3v2_add_utf8_lng(gfp, frame_id, text, 0);
      |                                                  ^~~~
      |                                                  |
      |                                                  const short unsigned int *
../../lame-3.101/libmp3lame/id3tag.c:1057:63: note: expected 'const char *' but argument is of type 'const short unsigned int *'
 1057 | id3v2_add_utf8_lng(lame_t gfp, uint32_t frame_id, char const *desc, char const *text)
      |                                                   ~~~~~~~~~~~~^~~~
../../lame-3.101/libmp3lame/id3tag.c:1153:50: error: passing argument 3 of 'id3v2_add_utf8_lng' from incompatible pointer type [-Wincompatible-pointer-types]
 1153 |         return id3v2_add_utf8_lng(gfp, frame_id, text, 0); /* iTunes expects WFED to be a text frame */
      |                                                  ^~~~
      |                                                  |
      |                                                  const short unsigned int *
../../lame-3.101/libmp3lame/id3tag.c:1057:63: note: expected 'const char *' but argument is of type 'const short unsigned int *'
 1057 | id3v2_add_utf8_lng(lame_t gfp, uint32_t frame_id, char const *desc, char const *text)
      |                                                   ~~~~~~~~~~~~^~~~
../../lame-3.101/libmp3lame/id3tag.c:1162:53: error: passing argument 4 of 'id3v2_add_utf8_lng' from incompatible pointer type [-Wincompatible-pointer-types]
 1162 |         return id3v2_add_utf8_lng(gfp, frame_id, 0, text);
      |                                                     ^~~~
      |                                                     |
      |                                                     const short unsigned int *
../../lame-3.101/libmp3lame/id3tag.c:1057:81: note: expected 'const char *' but argument is of type 'const short unsigned int *'
 1057 | id3v2_add_utf8_lng(lame_t gfp, uint32_t frame_id, char const *desc, char const *text)

Discussion

  • lazka

    lazka - 2026-07-10

    Those utf-8 code paths looks untested to me, it's mixing utf16 and utf8 in various places. I'd suggest reverting it.

     

    Last edit: lazka 2026-07-10
  • Alexander Leidinger

    • status: open --> closed-fixed
    • assigned_to: Alexander Leidinger
     
  • Alexander Leidinger

    Fix committed in r6542, patch in [patches:#102].
    New release upcoming.

     

    Related

    Patches: #102


Log in to post a comment.