This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] C undefined behavior fix
- From: Momchil Velikov <velco at fadata dot bg>
- To: Florian Weimer <fw at deneb dot enyo dot de>
- Cc: linux-kernel at vger dot kernel dot org, gcc at gcc dot gnu dot org, linuxppc-dev at lists dot linuxppc dot org
- Date: 02 Jan 2002 12:41:28 +0200
- Subject: Re: [PATCH] C undefined behavior fix
- References: <87g05py8qq.fsf@fadata.bg> <87y9jh3v27.fsf@deneb.enyo.de>
>>>>> "Florian" == Florian Weimer <fw@deneb.enyo.de> writes:
Florian> Momchil Velikov <velco@fadata.bg> writes:
>> - strcpy(namep, RELOC("linux,phandle"));
>> + memcpy (namep, RELOC("linux,phandle"), sizeof("linux,phandle"));
Florian> Doesn't this still trigger undefined behavior, as far as the C
Florian> standard is concerned? It's probably a better idea to fix the linker,
Florian> so that it performs proper relocation.
Well, strictly speaking it _is_ undefined, however adding/subtracting
__PAGE_OFFSET is far too common operation and one can resonably expect
to get away with it in the _vast_ majority of cases. IMHO, it is
better to fix the particular case, which triggers the undefined
behaviour, as these cases are bound to be _very_ rare.
Regards,
-velco