Re: Optimisations and undefined behaviour

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

 



On 09/11/15 15:00, Andrew Haley wrote:
> On 11/09/2015 02:56 PM, Richard Earnshaw wrote:
>> On 09/11/15 14:29, Andrew Haley wrote:
> 
>>> Here it is again:
>>>
>>> int foo(int x) {
>>> 	if (x > 1290) {
>>> 		printf("X is wrong here %d, but we don't care\n", x);
>>> 	}
>>> 	return x*x*x;
>>>
>>> Here, the printf writes to a stream then the UB happens.  
>>
>> Not if setvbuf has been used to make the stream unbuffered.
> 
> It hasn't.  And I know it hasn't because it's my example.
> 

A compiler would still need to do whole-program analysis to prove that;
it can't work on the assumption that it hasn't been done.

> And besides, the UB might cause the computer to crash before the data
> has been written to stdout by the kernel; the same reasoning applies.
> 
> Andrew.
> 

UB that causes the machine to crash is, I think, outside of what we need
to think about.  Any machine that's falls over in that case is not
interesting.

R.



[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux