OSDN Git Service

Fix coverage check for full post-dominator basic blocks.
authorGeorge Karpenkov <ekarpenkov@apple.com>
Thu, 25 May 2017 01:41:46 +0000 (01:41 +0000)
committerGeorge Karpenkov <ekarpenkov@apple.com>
Thu, 25 May 2017 01:41:46 +0000 (01:41 +0000)
commitf6cb5093853722a6d9f059f4e86435aa89e7491b
treed819efd9d1e4238e523b5907cf185912c4a894e6
parentfa4cbdddf8edf16d4574b5436b1cfd8d0042935b
Fix coverage check for full post-dominator basic blocks.

Coverage instrumentation which does not instrument full post-dominators
and full-dominators may skip valid paths, as the reasoning for skipping
blocks may become circular.
This patch fixes that, by only skipping
full post-dominators with multiple predecessors, as such predecessors by
definition can not be full-dominators.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@303827 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Transforms/Instrumentation/SanitizerCoverage.cpp
test/Instrumentation/SanitizerCoverage/chains.ll [new file with mode: 0644]
test/Instrumentation/SanitizerCoverage/postdominator_check.ll [new file with mode: 0644]