This is the mail archive of the
gcc-help@gcc.gnu.org
mailing list for the GCC project.
Re: C++: Difference between calling memcpy and __builtin_memcpy
- From: Martin Sebor <msebor at gmail dot com>
- To: Florian Weimer <fweimer at redhat dot com>
- Cc: gcc-help at gcc dot gnu dot org
- Date: Mon, 14 Mar 2016 10:52:19 -0600
- Subject: Re: C++: Difference between calling memcpy and __builtin_memcpy
- Authentication-results: sourceware.org; auth=none
- References: <56BDC84A dot 3050405 at redhat dot com> <56C1362C dot 7040006 at gmail dot com> <56C1DD0A dot 1070007 at redhat dot com> <56C20FB3 dot 60201 at gmail dot com> <56E16052 dot 1010303 at redhat dot com>
The only reason not to do this is that the address of the strchr
function will not be consistent across the entire process. Do you think
this could be a problem, even just a conformance problem?
I'm not sure I understand the concern. There can be up to three
overloads of strchr in a program (one extern "C" and two extern
"C++" if the program includes C++ bits). Each of the overloads
must has its own distinct address (and name) but that address of
the same overload needs to be the same across the whole program
(though the C bits will never see the C address and the C++ bits
have no way of accessing the C address in conforming programs).
As long as this invariant is maintained I don't think there is
a problem.
Martin