[RFC] Using function clones for Pointer Bounds Checker

Jeff Law law@redhat.com
Tue May 13 19:21:00 GMT 2014


On 05/13/14 02:38, Ilya Enkovich wrote:
>>> propagate constant bounds value and remove checks in called function).
>>
>> So from a linking standpoint, presumably you have to mangle the instrumented
>> caller/callee in some manner.  Right?  Or are you dynamically dispatching
>> somehow?
>
> Originally the idea was o have instrumented clone to have the same
> assembler name as the original function. Since instrumented code is
> fully compatible with not instrumented code, we always emit only one
> version. Usage of the same assembler name allows instrumented and not
> instrumented calls to look similar in assembler. It worked fine until
> I tried it with LTO where assembler name is used as a unique
> identifier. With linker resolutions files it became even more harder
> to use such approach. To resolve these issues I started to use new
> assembler name with postfix, but linked with the original name using
> IDENTIFIER_TRANSPARENT_ALIAS. It gives different assembler names for
> clones and originals during compilation, but both clone and original
> functions have similar name in output assembler.
OK.  So if I read that correctly, it implies that the existence of 
bounds information does not change the signature of the callee.   This 
is obviously important for C++.

Sounds like I need to sit down with the branch and see how this works in 
the new scheme.

jeff



More information about the Gcc-patches mailing list