C++: Difference between calling memcpy and __builtin_memcpy

Martin Sebor msebor@gmail.com
Mon Mar 14 16:52:00 GMT 2016


> 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



More information about the Gcc-help mailing list