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]

Re: [commit] Deprecate remaining STREQ uses


On 25 Nov 2003 08:55:33 +0200, Eli Zaretskii <eliz@elta.co.il> said:

From: David Carlton <carlton@kealia.com>
Date: Mon, 24 Nov 2003 12:06:24 -0800

I was thinking that just using keyboard macros might do the trick:


For such a simple job, it probably would.  But c-macro-expand is more
trustworthy, IMHO: it actually runs cpp and has provisions for you to
specify the same compiler switches as are used during an actual
compilation, so you don't run a risk of missing some obscure #define
somewhere.


Actually, in the case at hand, they would give different results, it
turns out!  The definition of STREQ isn't simply strcmp()==0 - there's
an optimization (or "optimization", perhaps) there as well.

You'll now appreciate my paranoia :-)


So, should the transformation be the strictly mechanical inline expansion:

STREQ(a,b) => (*(a) == *(b) ? !strcmp ((a), (b)) : 0)

or also include a simplification leading to:

STREQ(a,b) => (strcmp ((a), (b)) == 0)

Andrew



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