This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[RFC] trying to kill a warning in hpread.c (from call to complaint)


Hello,

I see the following warnings when compiling hpread.c:

        hpread.c:1920: warning: int format, pointer arg (arg 3)
        hpread.c:2025: warning: int format, pointer arg (arg 3)
        hpread.c:2051: warning: int format, pointer arg (arg 3)
        hpread.c:2072: warning: int format, pointer arg (arg 3)
        hpread.c:2146: warning: int format, pointer arg (arg 3)
        hpread.c:2230: warning: int format, pointer arg (arg 3)

These warnings point to the following macro:

#define SET_NAMESTRING(SYM, NAMEP, OBJFILE) \
  if (! hpread_has_name ((SYM)->dblock.kind)) \
    *NAMEP = ""; \
  else if (((unsigned)(SYM)->dsfile.name) >= VT_SIZE (OBJFILE)) \
    { \
      complaint (&symfile_complaints, "bad string table offset in symbol %d", \
                 (char *) symnum); \
      *NAMEP = ""; \
    } \
  else \
    *NAMEP = (SYM)->dsfile.name + VT (OBJFILE)

I think that the warning comes from the call to complaint where the
format string contains "%d", but the next parameter is casted to a
"char *".

Is the cast to "char *" necessary? Can/Should I remove it?

Thanks,
-- 
Joel


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]