Re: Logs from building VDR 2.1.3 with Clang 3.4.1

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxxxxxx
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr

[Index of Archives]     [Linux Media]     [Asterisk]     [DCCP]     [Netdev]     [Xorg]     [Util Linux NG]     [Xfree86]     [Big List of Linux Books]     [Fedora Users]     [Fedora Women]     [ALSA Devel]     [Linux USB]

  Powered by Linux