On 08.02.2014 09:59, Paul Menzel wrote:
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
You may want to find an option that suppresses this warning, because the file
names of VDR (*.c)
are not going to change.
...
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);
~~~~~~~~~~~~~ ^
This is explicitly checked with 'rid ? ...', so the warning is unjustified
(although the compiler
probably has a hard time figuring that out ;-).
...
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 =
Fixed in the attached patch.
...
In file included from dvbspu.c:14:
./dvbspu.h:104:10: warning: private field 'ready' is not used
[-Wunused-private-field]
bool ready;
^
Fixed in the attached patch.
...
dvbsubtitle.c:37:13: warning: unused variable 'DebugBitmaps'
[-Wunused-variable]
static bool DebugBitmaps = DebugVerbose || DebugNormal;
^
Fixed in the attached patch.
...
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
~~~~~~~~~~~~~~~~~~~~ ^ ~~~~
I assume this is because the enum LinkageType doesn't contain 0xB0. However,
the actual value that
comes from the SI data may well be 0xB0, so I'm now typecasting
uint(ld->getLinkageType()).
...
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*)
Fixed in the attached patch.
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);
~~~~ ^
Same as above (channels.c:45:119).
...
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));
~~~~~~
^
Same as above.
...
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'
Can you suggest a different way of causing a segfault at this point?
...
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);
~~~~~~~~~~~~~~~~ ^
Same as above.
...
In file included from remux.c:10:
./remux.h:479:7: warning: private field 'numFrames' is not used
[-Wunused-private-field]
int numFrames;
^
Fixed in the attached patch.
...
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;
^
Fixed in the attached patch.
...
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;
^
Fixed in the attached patch.
...
*** Plugin pictures:
...
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:
Fixed in the attached patch.
Klaus
===================================================================
RCS file: ./PLUGINS/src/dvbhddevice/RCS/hdffosd.c
retrieving revision 3.0
diff -u -b -r3.0 ./PLUGINS/src/dvbhddevice/hdffosd.c
--- ./PLUGINS/src/dvbhddevice/hdffosd.c 2013/03/02 17:58:21 3.0
+++ ./PLUGINS/src/dvbhddevice/hdffosd.c 2014/02/08 12:46:14
@@ -42,7 +42,6 @@
tFont mFonts[MAX_NUM_FONTS];
uint32_t mBitmapPalette;
uint32_t mBitmapColors[256];
- uint32_t mBitmapNumColors;
bool mSupportsUtf8Text;
@@ -555,7 +554,6 @@
uint32_t mDisplay;
uint32_t mBitmapPalette;
uint32_t mBitmapColors[256];
- uint32_t mBitmapNumColors;
protected:
virtual void SetActive(bool On);
===================================================================
RCS file: ./PLUGINS/src/pictures/RCS/player.c
retrieving revision 3.0
diff -u -b -r3.0 ./PLUGINS/src/pictures/player.c
--- ./PLUGINS/src/pictures/player.c 2012/04/28 11:58:15 3.0
+++ ./PLUGINS/src/pictures/player.c 2014/02/08 12:48:12
@@ -211,7 +211,7 @@
eOSState cPictureControl::ProcessKey(eKeys Key)
{
- switch (Key) {
+ switch (int(Key)) {
case kUp:
case kPlay: slideShowDelay.Set();
slideShow = true;
===================================================================
RCS file: ./RCS/ci.c
retrieving revision 3.10
diff -u -b -r3.10 ./ci.c
--- ./ci.c 2014/01/22 09:46:38 3.10
+++ ./ci.c 2014/02/08 12:25:55
@@ -864,7 +864,7 @@
#pragma pack(1)
struct tTime { uint16_t mjd; uint8_t h, m, s; short offset; };
#pragma pack()
- 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_loc.tm_gmtoff / 60)) };
+ 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_loc.tm_gmtoff / 60)) };
bool OldDumpTPDUDataTransfer = DumpTPDUDataTransfer;
DumpTPDUDataTransfer &= DumpDateTime;
if (DumpDateTime)
@@ -1004,7 +1004,7 @@
case DCC_SET_MMI_MODE:
if (l == 2 && *++d == MM_HIGH_LEVEL) {
struct tDisplayReply { uint8_t id; uint8_t mode; };
- tDisplayReply dr = { id : DRI_MMI_MODE_ACK, mode : MM_HIGH_LEVEL };
+ tDisplayReply dr = { .id = DRI_MMI_MODE_ACK, .mode = MM_HIGH_LEVEL };
dbgprotocol("Slot %d: ==> Display Reply (%d)\n", Tc()->CamSlot()->SlotNumber(), SessionId());
SendData(AOT_DISPLAY_REPLY, 2, (uint8_t *)&dr);
}
===================================================================
RCS file: ./RCS/dvbspu.h
retrieving revision 3.0
diff -u -b -r3.0 ./dvbspu.h
--- ./dvbspu.h 2013/01/20 10:15:47 3.0
+++ ./dvbspu.h 2014/02/08 12:27:34
@@ -101,7 +101,6 @@
uint8_t *spu;
uint32_t spupts;
bool clean;
- bool ready;
bool restricted_osd;
enum spFlag { spNONE, spHIDE, spSHOW, spMENU };
===================================================================
RCS file: ./RCS/dvbsubtitle.c
retrieving revision 3.4
diff -u -b -r3.4 ./dvbsubtitle.c
--- ./dvbsubtitle.c 2013/09/07 10:39:46 3.4
+++ ./dvbsubtitle.c 2014/02/08 12:29:13
@@ -34,7 +34,6 @@
static bool DebugPages = DebugVerbose || DebugNormal;
static bool DebugRegions = DebugVerbose || DebugNormal;
static bool DebugObjects = DebugVerbose || DebugNormal;
-static bool DebugBitmaps = DebugVerbose || DebugNormal;
static bool DebugConverter = DebugVerbose;
static bool DebugSegments = DebugVerbose;
static bool DebugPixel = DebugVerbose;
@@ -45,7 +44,6 @@
#define dbgpages(a...) if (DebugPages) SD.WriteHtml(a)
#define dbgregions(a...) if (DebugRegions) SD.WriteHtml(a)
#define dbgobjects(a...) if (DebugObjects) SD.WriteHtml(a)
-#define dbgbitmaps(a...) if (DebugBitmaps) SD.WriteHtml(a)
#define dbgconverter(a...) if (DebugConverter) SD.WriteHtml(a)
#define dbgsegments(a...) if (DebugSegments) SD.WriteHtml(a)
#define dbgpixel(a...) if (DebugPixel) SD.WriteHtml(a)
===================================================================
RCS file: ./RCS/eit.c
retrieving revision 3.3
diff -u -b -r3.3 ./eit.c
--- ./eit.c 2013/11/03 13:55:00 3.3
+++ ./eit.c 2014/02/08 12:33:01
@@ -220,7 +220,7 @@
case SI::LinkageDescriptorTag: {
SI::LinkageDescriptor *ld = (SI::LinkageDescriptor *)d;
tChannelID linkID(Source, ld->getOriginalNetworkId(), ld->getTransportStreamId(), ld->getServiceId());
- if (ld->getLinkageType() == 0xB0) { // Premiere World
+ if (uint(ld->getLinkageType()) == 0xB0) { // Premiere World
bool hit = StartTime <= Now && Now < StartTime + Duration;
if (hit) {
char linkName[ld->privateData.getLength() + 1];
===================================================================
RCS file: ./libsi/RCS/descriptor.h
retrieving revision 3.1
diff -u -b -r3.1 ./libsi/descriptor.h
--- ./libsi/descriptor.h 2013/10/30 10:16:18 3.1
+++ ./libsi/descriptor.h 2014/02/08 12:44:17
@@ -489,8 +489,6 @@
StructureLoop<Language> languageLoop;
protected:
virtual void Parse();
-private:
- const descr_iso_639_language *s;
};
class PDCDescriptor : public Descriptor {
===================================================================
RCS file: ./RCS/menu.c
retrieving revision 3.18
diff -u -b -r3.18 ./menu.c
--- ./menu.c 2014/01/30 09:04:06 3.18
+++ ./menu.c 2014/02/08 12:36:12
@@ -983,7 +983,7 @@
if (!*data.file)
strcpy(data.file, data.Channel()->ShortName(true));
if (timer) {
- if (memcmp(timer, &data, sizeof(data)) != 0)
+ if (memcmp((void *)timer, &data, sizeof(data)) != 0)
*timer = data;
if (addIfConfirmed)
Timers.Add(timer);
===================================================================
RCS file: ./RCS/remux.h
retrieving revision 3.2
diff -u -b -r3.2 ./remux.h
--- ./remux.h 2014/01/28 11:06:37 3.2
+++ ./remux.h 2014/02/08 12:41:50
@@ -483,7 +483,6 @@
bool independentFrame;
uint32_t ptsValues[MaxPtsValues]; // 32 bit is enough - we only need the delta
int numPtsValues;
- int numFrames;
int numIFrames;
bool isVideo;
double framesPerSecond;
_______________________________________________
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr