top | item 43798312

(no title)

nikic | 10 months ago

Fun fact: GCC decided to adopt Clang's (old) behavior at the same time Clang decided to adopt GCC's (old) behavior.

So now you have this matrix of behaviors: * Old GCC: Initializes whole union. * New GCC: Initializes first member only. * Old Clang: Initializes first member only. * New Clang: Initializes whole union.

discuss

order

augusto-moura|10 months ago

That's funny and sad at the same time.

And it shows a deeper problem, even though they are willing to align behavior between each other, they failed to communicate and discuss what would be the best approach. That's a bit tragic, IMO

Neywiny|10 months ago

I would argue the even deeper problem is that it's implementation defined. Should be in the spec and they should conform to the spec. That's why I'm so paranoid and zeroize things myself. Too much hassle to remember what is or isn't zero.

homebrewer|10 months ago

Since having multiple compilers is often touted as an advantage, how often do situations like what you're describing happen compared to the opposite — when a second compiler surfaces bugs in one's application or the other compiler?

uecker|10 months ago

I compile my projects with clang and GCC. It is quite often that one compilers finds minor issues the other does not.

iamthejuan|10 months ago

It is like an era of average.

zeroq|10 months ago

i will call it "webification" of C!