llvm-project/llvm/test/Instrumentation/InstrProfiling
Vedant Kumar 9c056c9e1b [InstrProf] Don't take the address of alwaysinline available_externally functions
Doing so breaks compilation of the following C program
(under -fprofile-instr-generate):

 __attribute__((always_inline)) inline int foo() { return 0; }

 int main() { return foo(); }

At link time, we fail because taking the address of an
available_externally function creates an undefined external reference,
which the TU cannot provide.

Emitting the function definition into the object file at all appears to
be a violation of the langref: "Globals with 'available_externally'
linkage are never emitted into the object file corresponding to the LLVM
module."

Differential Revision: https://reviews.llvm.org/D34134

llvm-svn: 305327
2017-06-13 22:12:35 +00:00
..
X86
PR23499.ll [Profile] PE binary coverage bug fix 2017-04-13 23:37:12 +00:00
always_inline.ll [InstrProf] Don't take the address of alwaysinline available_externally functions 2017-06-13 22:12:35 +00:00
icall.ll Resubmit r297897: [PGO] Value profile for size of memory intrinsic calls 2017-03-16 21:15:48 +00:00
linkage.ll [profile] Fix runtime hook linkage bug for COFF 2016-05-24 18:47:38 +00:00
no-counters.ll Port InstrProfiling pass to the new pass manager 2016-04-18 17:47:38 +00:00
noruntime.ll Port InstrProfiling pass to the new pass manager 2016-04-18 17:47:38 +00:00
platform.ll Re-apply "[profiling] Remove dead profile name vars after emitting name data" 2017-02-14 20:03:48 +00:00
profiling.ll Re-apply "[profiling] Remove dead profile name vars after emitting name data" 2017-02-14 20:03:48 +00:00