Dear VDR folks,
building VDR 2.1.3 with Clang 3.4.1 the warnings below are shown.
Most warnings look like they can be ignored. Maybe you can spot
something, which should be fixed.
$ clang --version
Debian clang version 3.4-1 (tags/RELEASE_34/final) (based on LLVM 3.4)
Target: i386-pc-linux-gnu
Thread model: posix
$ CC=clang CXX=clang++ make
[…]
clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated
clang++ -g -O3 -Wall -Werror=overloaded-virtual -Wno-parentheses -fPIC -c -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -DREMOTE_KBD -DLIRC_DEVICE=\"/var/run/lirc/lircd\" -DVIDEODIR=\"/srv/vdr/video\" -DCONFDIR=\"/var/lib/vdr\" -DCACHEDIR=\"/var/cache/vdr\" -DRESDIR=\"/usr/local/share/vdr\" -DPLUGINDIR=\"/usr/local/lib/vdr\" -DLOCDIR=\"/usr/local/share/locale\" -I/usr/include/freetype2 -o audio.o audio.c
clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated
clang++ -g -O3 -Wall -Werror=overloaded-virtual -Wno-parentheses -fPIC -c -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -DREMOTE_KBD -DLIRC_DEVICE=\"/var/run/lirc/lircd\" -DVIDEODIR=\"/srv/vdr/video\" -DCONFDIR=\"/var/lib/vdr\" -DCACHEDIR=\"/var/cache/vdr\" -DRESDIR=\"/usr/local/share/vdr\" -DPLUGINDIR=\"/usr/local/lib/vdr\" -DLOCDIR=\"/usr/local/share/locale\" -I/usr/include/freetype2 -o channels.o channels.c
clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated
channels.c:45:119: warning: data argument not used by format string [-Wformat-extra-args]
snprintf(buffer, sizeof(buffer), rid ? "%s-%d-%d-%d-%d" : "%s-%d-%d-%d", *cSource::ToString(source), nid, tid, sid, rid);
~~~~~~~~~~~~~ ^
1 warning generated.
clang++ -g -O3 -Wall -Werror=overloaded-virtual -Wno-parentheses -fPIC -c -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -DREMOTE_KBD -DLIRC_DEVICE=\"/var/run/lirc/lircd\" -DVIDEODIR=\"/srv/vdr/video\" -DCONFDIR=\"/var/lib/vdr\" -DCACHEDIR=\"/var/cache/vdr\" -DRESDIR=\"/usr/local/share/vdr\" -DPLUGINDIR=\"/usr/local/lib/vdr\" -DLOCDIR=\"/usr/local/share/locale\" -I/usr/include/freetype2 -o ci.o ci.c
clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated
ci.c:867:18: warning: use of GNU old-style field designator extension [-Wgnu-designator]
tTime T = { mjd : htons(MJD), h : DEC2BCD(tm_gmt.tm_hour), m : DEC2BCD(tm_gmt.tm_min), s : DEC2BCD(tm_gmt.tm_sec), offset : short(htons(...
^~~~~
.mjd =
ci.c:867:36: warning: use of GNU old-style field designator extension [-Wgnu-designator]
tTime T = { mjd : htons(MJD), h : DEC2BCD(tm_gmt.tm_hour), m : DEC2BCD(tm_gmt.tm_min), s : DEC2BCD(tm_gmt.tm_sec), offset : short(htons(...
^~~
.h =
ci.c:867:65: warning: use of GNU old-style field designator extension [-Wgnu-designator]
tTime T = { mjd : htons(MJD), h : DEC2BCD(tm_gmt.tm_hour), m : DEC2BCD(tm_gmt.tm_min), s : DEC2BCD(tm_gmt.tm_sec), offset : short(htons(...
^~~
.m =
ci.c:867:93: warning: use of GNU old-style field designator extension [-Wgnu-designator]
tTime T = { mjd : htons(MJD), h : DEC2BCD(tm_gmt.tm_hour), m : DEC2BCD(tm_gmt.tm_min), s : DEC2BCD(tm_gmt.tm_sec), offset : short(htons(...
^~~
.s =
ci.c:867:121: warning: use of GNU old-style field designator extension [-Wgnu-designator]
tTime T = { mjd : htons(MJD), h : DEC2BCD(tm_gmt.tm_hour), m : DEC2BCD(tm_gmt.tm_min), s : DEC2BCD(tm_gmt.tm_sec), offset : short(htons(tm_lo...
^~~~~~~~
.offset =
ci.c:1007:47: warning: use of GNU old-style field designator extension [-Wgnu-designator]
tDisplayReply dr = { id : DRI_MMI_MODE_ACK, mode : MM_HIGH_LEVEL };
^~~~
.id =
ci.c:1007:70: warning: use of GNU old-style field designator extension [-Wgnu-designator]
tDisplayReply dr = { id : DRI_MMI_MODE_ACK, mode : MM_HIGH_LEVEL };
^~~~~~
.mode =
7 warnings generated.
[…]
clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated
clang++ -g -O3 -Wall -Werror=overloaded-virtual -Wno-parentheses -fPIC -c -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -DREMOTE_KBD -DLIRC_DEVICE=\"/var/run/lirc/lircd\" -DVIDEODIR=\"/srv/vdr/video\" -DCONFDIR=\"/var/lib/vdr\" -DCACHEDIR=\"/var/cache/vdr\" -DRESDIR=\"/usr/local/share/vdr\" -DPLUGINDIR=\"/usr/local/lib/vdr\" -DLOCDIR=\"/usr/local/share/locale\" -I/usr/include/freetype2 -o dvbspu.o dvbspu.c
clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated
In file included from dvbspu.c:14:
./dvbspu.h:104:10: warning: private field 'ready' is not used [-Wunused-private-field]
bool ready;
^
1 warning generated.
clang++ -g -O3 -Wall -Werror=overloaded-virtual -Wno-parentheses -fPIC -c -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -DREMOTE_KBD -DLIRC_DEVICE=\"/var/run/lirc/lircd\" -DVIDEODIR=\"/srv/vdr/video\" -DCONFDIR=\"/var/lib/vdr\" -DCACHEDIR=\"/var/cache/vdr\" -DRESDIR=\"/usr/local/share/vdr\" -DPLUGINDIR=\"/usr/local/lib/vdr\" -DLOCDIR=\"/usr/local/share/locale\" -I/usr/include/freetype2 -o dvbsubtitle.o dvbsubtitle.c
clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated
dvbsubtitle.c:37:13: warning: unused variable 'DebugBitmaps' [-Wunused-variable]
static bool DebugBitmaps = DebugVerbose || DebugNormal;
^
1 warning generated.
clang++ -g -O3 -Wall -Werror=overloaded-virtual -Wno-parentheses -fPIC -c -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -DREMOTE_KBD -DLIRC_DEVICE=\"/var/run/lirc/lircd\" -DVIDEODIR=\"/srv/vdr/video\" -DCONFDIR=\"/var/lib/vdr\" -DCACHEDIR=\"/var/cache/vdr\" -DRESDIR=\"/usr/local/share/vdr\" -DPLUGINDIR=\"/usr/local/lib/vdr\" -DLOCDIR=\"/usr/local/share/locale\" -I/usr/include/freetype2 -o eit.o eit.c
clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated
eit.c:223:43: warning: comparison of constant 176 with expression of type 'SI::LinkageType' is always false
[-Wtautological-constant-out-of-range-compare]
if (ld->getLinkageType() == 0xB0) { // Premiere World
~~~~~~~~~~~~~~~~~~~~ ^ ~~~~
1 warning generated.
[…]
clang++ -g -O3 -Wall -Werror=overloaded-virtual -Wno-parentheses -fPIC -c -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -DREMOTE_KBD -DLIRC_DEVICE=\"/var/run/lirc/lircd\" -DVIDEODIR=\"/srv/vdr/video\" -DCONFDIR=\"/var/lib/vdr\" -DCACHEDIR=\"/var/cache/vdr\" -DRESDIR=\"/usr/local/share/vdr\" -DPLUGINDIR=\"/usr/local/lib/vdr\" -DLOCDIR=\"/usr/local/share/locale\" -I/usr/include/freetype2 -o menu.o menu.c
clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated
menu.c:982:38: warning: first operand of this 'memcmp' call is a pointer to dynamic class 'cTimer'; vtable pointer will be compared
[-Wdynamic-class-memaccess]
if (memcmp(timer, &data, sizeof(data)) != 0)
~~~~~~ ^
menu.c:982:38: note: explicitly cast the pointer to silence this warning
if (memcmp(timer, &data, sizeof(data)) != 0)
^
(void*)
menu.c:4582:107: warning: data argument not used by format string [-Wformat-extra-args]
instantId = cString::sprintf(cDevice::NumDevices() > 1 ? "%s - %d" : "%s", timer->Channel()->Name(), device->CardIndex() + 1);
~~~~ ^
2 warnings generated.
clang++ -g -O3 -Wall -Werror=overloaded-virtual -Wno-parentheses -fPIC -c -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -DREMOTE_KBD -DLIRC_DEVICE=\"/var/run/lirc/lircd\" -DVIDEODIR=\"/srv/vdr/video\" -DCONFDIR=\"/var/lib/vdr\" -DCACHEDIR=\"/var/cache/vdr\" -DRESDIR=\"/usr/local/share/vdr\" -DPLUGINDIR=\"/usr/local/lib/vdr\" -DLOCDIR=\"/usr/local/share/locale\" -I/usr/include/freetype2 -o menuitems.o menuitems.c
clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated
menuitems.c:249:86: warning: data argument not used by format string [-Wformat-extra-args]
SetValue(cString::sprintf(s ? "%.*f %s" : "%.*f", factor / 10, double(v) / factor, s));
~~~~~~ ^
1 warning generated.
[…]
clang++ -g -O3 -Wall -Werror=overloaded-virtual -Wno-parentheses -fPIC -c -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -DREMOTE_KBD -DLIRC_DEVICE=\"/var/run/lirc/lircd\" -DVIDEODIR=\"/srv/vdr/video\" -DCONFDIR=\"/var/lib/vdr\" -DCACHEDIR=\"/var/cache/vdr\" -DRESDIR=\"/usr/local/share/vdr\" -DPLUGINDIR=\"/usr/local/lib/vdr\" -DLOCDIR=\"/usr/local/share/locale\" -I/usr/include/freetype2 -o receiver.o receiver.c
clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated
receiver.c:28:6: warning: indirection of non-volatile null pointer will be deleted, not trap [-Wnull-dereference]
*(char *)0 = 0; // cause a segfault
^~~~~~~~~~
receiver.c:28:6: note: consider using __builtin_trap() or qualifying pointer with 'volatile'
1 warning generated.
clang++ -g -O3 -Wall -Werror=overloaded-virtual -Wno-parentheses -fPIC -c -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -DREMOTE_KBD -DLIRC_DEVICE=\"/var/run/lirc/lircd\" -DVIDEODIR=\"/srv/vdr/video\" -DCONFDIR=\"/var/lib/vdr\" -DCACHEDIR=\"/var/cache/vdr\" -DRESDIR=\"/usr/local/share/vdr\" -DPLUGINDIR=\"/usr/local/lib/vdr\" -DLOCDIR=\"/usr/local/share/locale\" -I/usr/include/freetype2 -o recorder.o recorder.c
clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated
clang++ -g -O3 -Wall -Werror=overloaded-virtual -Wno-parentheses -fPIC -c -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -DREMOTE_KBD -DLIRC_DEVICE=\"/var/run/lirc/lircd\" -DVIDEODIR=\"/srv/vdr/video\" -DCONFDIR=\"/var/lib/vdr\" -DCACHEDIR=\"/var/cache/vdr\" -DRESDIR=\"/usr/local/share/vdr\" -DPLUGINDIR=\"/usr/local/lib/vdr\" -DLOCDIR=\"/usr/local/share/locale\" -I/usr/include/freetype2 -o recording.o recording.c
clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated
recording.c:2923:96: warning: data argument not used by format string [-Wformat-extra-args]
return cString::sprintf(WithFrame ? "%s%d:%02d:%02d.%02d" : "%s%d:%02d:%02d", Sign, h, m, s, f);
~~~~~~~~~~~~~~~~ ^
1 warning generated.
clang++ -g -O3 -Wall -Werror=overloaded-virtual -Wno-parentheses -fPIC -c -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -DREMOTE_KBD -DLIRC_DEVICE=\"/var/run/lirc/lircd\" -DVIDEODIR=\"/srv/vdr/video\" -DCONFDIR=\"/var/lib/vdr\" -DCACHEDIR=\"/var/cache/vdr\" -DRESDIR=\"/usr/local/share/vdr\" -DPLUGINDIR=\"/usr/local/lib/vdr\" -DLOCDIR=\"/usr/local/share/locale\" -I/usr/include/freetype2 -o remote.o remote.c
clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated
clang++ -g -O3 -Wall -Werror=overloaded-virtual -Wno-parentheses -fPIC -c -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -DREMOTE_KBD -DLIRC_DEVICE=\"/var/run/lirc/lircd\" -DVIDEODIR=\"/srv/vdr/video\" -DCONFDIR=\"/var/lib/vdr\" -DCACHEDIR=\"/var/cache/vdr\" -DRESDIR=\"/usr/local/share/vdr\" -DPLUGINDIR=\"/usr/local/lib/vdr\" -DLOCDIR=\"/usr/local/share/locale\" -I/usr/include/freetype2 -o remux.o remux.c
clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated
In file included from remux.c:10:
./remux.h:479:7: warning: private field 'numFrames' is not used [-Wunused-private-field]
int numFrames;
^
1 warning generated.
[…]
clang++ -g -O3 -Wall -Werror=overloaded-virtual -Wno-parentheses -fPIC -c -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE descriptor.c
clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated
In file included from descriptor.c:14:
./descriptor.h:493:34: warning: private field 's' is not used [-Wunused-private-field]
const descr_iso_639_language *s;
^
1 warning generated.
[…]
clang++ -g -O3 -Wall -Werror=overloaded-virtual -Wno-parentheses -fPIC -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -c -DPLUGIN_NAME_I18N='"dvbhddevice"' -I/srv/filme/src/vdr/include -o hdffosd.o hdffosd.c
clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated
hdffosd.c:45:14: warning: private field 'mBitmapNumColors' is not used [-Wunused-private-field]
uint32_t mBitmapNumColors;
^
hdffosd.c:558:14: warning: private field 'mBitmapNumColors' is not used [-Wunused-private-field]
uint32_t mBitmapNumColors;
^
2 warnings generated.
[…]
*** Plugin pictures:
clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated
clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated
clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated
clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated
clang++ -g -O3 -Wall -Werror=overloaded-virtual -Wno-parentheses -fPIC -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -c -DPLUGIN_NAME_I18N='"pictures"' -I/srv/filme/src/vdr/include -o pictures.o pictures.c
clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated
clang++ -g -O3 -Wall -Werror=overloaded-virtual -Wno-parentheses -fPIC -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -c -DPLUGIN_NAME_I18N='"pictures"' -I/srv/filme/src/vdr/include -o entry.o entry.c
clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated
clang++ -g -O3 -Wall -Werror=overloaded-virtual -Wno-parentheses -fPIC -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -c -DPLUGIN_NAME_I18N='"pictures"' -I/srv/filme/src/vdr/include -o menu.o menu.c
clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated
clang++ -g -O3 -Wall -Werror=overloaded-virtual -Wno-parentheses -fPIC -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -c -DPLUGIN_NAME_I18N='"pictures"' -I/srv/filme/src/vdr/include -o player.o player.c
clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated
player.c:222:15: warning: case value not in enumerated type 'eKeys' [-Wswitch]
case kLeft|k_Repeat:
^
player.c:226:16: warning: case value not in enumerated type 'eKeys' [-Wswitch]
case kRight|k_Repeat:
^
2 warnings generated.
[…]
Thanks,
Paul