llvm/test/tools/llvm-cov/range_based_for.cpp
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

30 lines
1.1 KiB
C++

// Make sure that compiler-added local variables (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/range_based_for.gc* .
// RUN: llvm-cov gcov range_based_for.cpp | FileCheck %s --check-prefix=STDOUT
// STDOUT: File 'range_based_for.cpp'
// STDOUT: Lines executed:100.00% of 5
// STDOUT: range_based_for.cpp:creating 'range_based_for.cpp.gcov'
// RUN: FileCheck %s --check-prefix=GCOV < %t/range_based_for.cpp.gcov
// GCOV: -: 0:Runs:1
// GCOV: -: 0:Programs:1
int main(int argc, const char *argv[]) { // GCOV: 1: [[@LINE]]:int main(
int V[] = {1, 2}; // GCOV: 1: [[@LINE]]: int V[]
for (int &I : V) { // GCOV: 10: [[@LINE]]: for (
} // GCOV: 2: [[@LINE]]: }
return 0; // GCOV: 1: [[@LINE]]: return
} // GCOV: -: [[@LINE]]:}
// llvm-cov doesn't work on big endian yet
// XFAIL: powerpc64-, s390x, mips-, mips64-, sparc