[PATCH] Don't instrument inline functions that are not externally visible

Reid Kleckner rnk at google.com
Wed Nov 13 09:30:41 PST 2013


The instrumentation looks like:

static inline func() {
  __cyg_profile_func_enter(func, llvm.returnaddress());
  ...
}

Why can't the linker resolve func here?


On Tue, Nov 12, 2013 at 6:12 AM, Gonzalo Brito Gadeschi <
g.brito at aia.rwth-aachen.de> wrote:

> This is a patch from Matthew Iselin that was never applied. Original
> thread:
> http://lists.cs.uiuc.edu/pipermail/cfe-commits/Week-of-Mon-20130311/075917.html
>
> From Matthew's patch: "Inline functions that are not externally visible
> mustn't be instrumented. They create a named reference to the inlined
> function, as the first parameter to __cyg_profile_* functions, which a
> linker will never be able to resolve."
>
> Bests,
> Gonzalo
>
> --
> Dipl.-Ing. Gonzalo Brito Gadeschi
> Institute of Aerodynamics and Chair of Fluid Mechanics
> RWTH Aachen University
> Wuellnerstraße 5a
> D-52062 Aachen
> Germany
> Phone: ++49-(0)241-80-94821
> Fax: ++49-(0)241-80-92257
> E-mail:  g.brito at aia.rwth-aachen.de
> Internet: www.aia.rwth-aachen.de
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20131113/87a09daa/attachment.html>


More information about the cfe-commits mailing list