| // Make sure that compiler-added functions (whose line number is zero) don't | |
| // crash llvm-cov. | |
| // We need shell for cd | |
| // REQUIRES: shell | |
| // RUN: rm -rf %t | |
| // RUN: mkdir %t | |
| // RUN: cd %t | |
| // RUN: cp %s %p/Inputs/copy_block_helper.gc* . | |
| // RUN: llvm-cov gcov copy_block_helper.m | FileCheck %s --check-prefix=STDOUT | |
| // STDOUT: File 'copy_block_helper.m' | |
| // STDOUT: Lines executed:100.00% of 5 | |
| // STDOUT: copy_block_helper.m:creating 'copy_block_helper.m.gcov' | |
| // RUN: FileCheck %s --check-prefix=GCOV < %t/copy_block_helper.m.gcov | |
| // GCOV: -: 0:Runs:1 | |
| // GCOV: -: 0:Programs:1 | |
| id test_helper(id (^foo)(void)) { return foo(); } // GCOV: 1: [[@LINE]]:id | |
| void test(id x) { // GCOV: -: [[@LINE]]:void test | |
| test_helper(^{ // GCOV: 2: [[@LINE]]: test_helper | |
| return x; // GCOV: 1: [[@LINE]]: return | |
| }); // GCOV: -: [[@LINE]]: | |
| } // GCOV: 1: [[@LINE]]:} | |
| // GCOV: 1: [[@LINE+1]]:int main | |
| int main(int argc, const char *argv[]) { test(0); } | |
| // llvm-cov doesn't work on big endian yet | |
| // XFAIL: powerpc-, powerpc64-, s390x, mips-, mips64-, sparc |