llvm-6502/test/tools/llvm-cov/copy_block_helper.m
Justin Bogner b9e97c799e llvm-cov: Require a subcommand when invoked as llvm-cov
A while ago llvm-cov gained support for clang's instrumentation based
profiling in addition to its gcov support, and subcommands were added
to choose which behaviour to use. When no subcommand was specified, we
fell back to gcov compatibility with a warning that a subcommand would
be required in the future. Now, we require the subcommand.

Note that if the basename of llvm-cov is gcov (via symlink or
hardlink, for example), we still use the gcov compatible behaviour
with no subcommand required.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@233132 91177308-0d34-0410-b5e6-96231b3b80d8
2015-03-24 23:34:36 +00:00

33 lines
1.1 KiB
Matlab

// 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: powerpc64-, s390x, mips-, mips64-, sparc