Optimising away memset() calls?

Andrew Haley aph@redhat.com
Fri Oct 10 09:20:00 GMT 2014


On 09/10/14 21:52, Ángel González wrote:

> The compiler would need to know that memset_s is special (either
> intrinsically or thorugh eg. function attributes). Either way, IMHO
> an advanced knowledge allowing to optimize it out would be a
> violation of K.3.7.4.1.

It would be a perverse thing to do and goes against intent, but we
again fall into the problem of defining an access.  But this is
irrelevant anyway: even if a key is stored in an array X in the source
code and the array X is later wiped with memset_s(), there is
absolutely nothing to force the compiler to use X during the
computation: it may well store the key somewhere else altogether.  So,
all we can have here is a best effort.  Anyone who wants to be sure
that the key is wiped is going to have to do something machine-
dependent.

Andrew.



More information about the Gcc-help mailing list