[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Having fun with the following C code (UB)



On 12/04/14 23:38, Henrique de Moraes Holschuh wrote:
On Thu, 10 Apr 2014, Shachar Shemesh wrote:
I never did understand what people expect. gcc uses the undefined
Warn the hell out of any line of code with per-spec undefined behaviour, if
not by default, at least under -Wall.
I have no argument with that, in those places it is possible.

I will point out that it is not always is possible, and is quite often not easy. For example, the famous "undefined after NULL dereference" would probably cause a warning every time a function uses a pointer it was given without first validating its non-NULLness.

THAT would be a good start.  Too bad not even gcc knows every time it hits
undefined behaviour...
My understanding of things is that undefined behaviors are fairly common, and almost always benign. Look at the following code:

int add( int a, int b )
{
    return a+b;
}

Do you really want to get a "Warning: signed integer overflow yields undefined behavior" on this function?

Shachar

Reply to: