This is the mail archive of the binutils@sourceware.org mailing list for the binutils 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]

Re: PATCH: PR binutils/3186: symbol `.debug_abbrev' required but not present


Hi Pedro,

Why not have a standard macro for this?

#define STR_STRLEN_PAIR(STR) \
    STR, (sizeof (STR) - 1)

Then these cases become either:

        { STR_STRLEN_PAIR("debug")  },    /* 'd' */
        { NULL,         0  },    /* 'e' */
        { NULL,         0  },    /* 'f' */
      { STR_STRLEN_PAIR("gnu.linkonce.wi.") },    /* 'g' */
       { NULL,         0  },    /* 'h' */
        { NULL,         0  },    /* 'i' */
        { NULL,         0  },    /* 'j' */

If you want to keep looking at the string for NULLness,
or ...:

        { STR_STRLEN_PAIR("debug") },    /* 'd' */
        { STR_STRLEN_PAIR("") },    /* 'd' */
        { STR_STRLEN_PAIR("") },    /* 'e' */
        { STR_STRLEN_PAIR("")  },    /* 'f' */
      { STR_STRLEN_PAIR("gnu.linkonce.wi.") },    /* 'g' */
        { STR_STRLEN_PAIR("")  },    /* 'h' */
        { STR_STRLEN_PAIR("")  },    /* 'i' */
        { STR_STRLEN_PAIR("")  },    /* 'j' */

... if you just look at the len.

Just a thought, I am not suggesting to go all over
the code base to adapt to something like this, but we
could make new code use something like this.

Code improvements that remove the potential for bugs are always welcome. In this particular case you could always make the macro slightly more intelligent, so that it could handle the NULL pointer, eg:


  #define STR_STRLEN_PAIR(STR) \
   (STR), (STR) ? sizeof (STR) - 1 : 0

Cheers
  Nick


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