The API verification tool tapi has difficulty processing frameworks
which enable code coverage, but which have no code. The profile lowering
pass does not emit its usual set of symbols in this case because no
counters are lowered.
While the symbols are not needed for program correctness, they are
needed to allow tapi to validate the exported symbol set of instrumented
binaries.
It was not possible to add a workaround in tapi for empty binaries due
to an architectural issue: tapi generates its expected symbol set before
it inspects a binary. Changing that model has a higher cost than simply
forcing llvm to emit the usual set of profiling-related symbols even
when there no counters are present.
rdar://36076904