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

Re: Is this a bug in libc6?



srivasta@datasync.com (Manoj Srivastava)  wrote on 10.04.98 in <[🔎] 8767khi4y3.fsf@tiamat.datasync.com>:

> 	I understand that it is fashionable in comp.lang.c to say that
>  undefined behaviour means "It can corrupt memory, re-format your hard
>  disk, or make monkeys fly out of your nose; all of these are ISO C
>  compliant.", but the standard does make a statement about permissible
>  undefined behaviour, and unless such action is documented, it is not
>  permitted by the standard.

Bullshit.

The documentation requirement is for implementation-defined behaviour. For  
undefined behaviour, "the standard imposes no requirements". No  
requirements are no requirements. There is no requirement that such an  
action is documented.

It further says "Permissible undefined behaviour ranges from ignoring the  
situation completely with unpredictable results, ...", and those  
unpredictable results sure include memory corruption, or indeed any of the  
other stuff "fashionable in comp.lang.c".

Undefined is *un*defined.

The only interesting question here is if fclose(fp); fclose(fp); is indeed  
undefined. (Note that fp=fopen("not.there", "r"); fanything(fp); is  
undefined simply because fp is NULL.) I suspect it is, because after the  
first fclose(fp); it has "indeterminate value".

MfG Kai


--
To UNSUBSCRIBE, email to debian-devel-request@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org


Reply to: