logoalt Hacker News

david2ndaccountyesterday at 10:32 PM1 replyview on HN

The “typeof on old compilers” section contains the code:

         (list)->payload = (item); /* just for type checking */\
That is not a no-op. That is overwriting the list head with your (item). Did you mean to wrap it in an `if(0)`?

Replies

josephgyesterday at 11:18 PM

In that example they also had replace the union with a struct - presumably to work around this issue. But that seems wasteful to me too. Doing it within an if(0) seems strictly better.