Messages in this thread | | | Date | Sat, 13 Jul 2013 15:06:51 +0200 | From | "Yann E. MORIN" <> | Subject | Re: [PATCH 12/15] kconfig: sort found symbols by relevance |
| |
Jean, All,
On 2013-07-12 11:07 +0200, Jean Delvare spake thusly: [--SNIP--] > > > > > +static int sym_rel_comp( const void *sym1, const void *sym2 ) > > > > > +{ > > > > > + struct sym_match *s1 = *(struct sym_match **)sym1; > > > > > + struct sym_match *s2 = *(struct sym_match **)sym2; > > > > > > > > You shouldn't need these casts. > > > > > > Probably not, indeed, but I like to write (and read) what I expect to > > > happen, and pointer arithmetics is always something I dread to foobar. > > > > In fact, we need the cast, otherwise gcc whines about const/non-const. > > And quite rightly so, as you are taking const pointers (i.e. the caller > told you you are _not_ allowed to change the contents) and making them > non-const pointers (i.e. you give yourself the right to still change the > contents.) It happens that your function doesn't actually change the > contents, so no harm done, but this is still conceptually wrong. > Preserving the const nature of pointers down the call chain lets the > compiler warn you if a function changes data it was not supposed to. > > So what you want to do is: > > static int sym_rel_comp(const void *sym1, const void *sym2) > { > const struct sym_match *s1 = sym1; > const struct sym_match *s2 = sym2; > > This is both concise and correct, and it makes gcc happy.
Yes, that's what I thought to, and what I was about to do. Thanks for confirming this! :-)
Regards, Yann E. MORIN.
-- .-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | '------------------------------^-------^------------------^--------------------'
| |