mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-24 03:33:20 +01:00
12ebcd3338
Reading line tables in llvm-cov was pretty broken, but would happen to work as long as no line in the table was 0. It's not clear to me whether a line of zero *should* show up in these tables, but deciding to read a string in the middle of the line table is certainly the wrong thing to do if it does. I've also added some comments, as trying to figure out what this block of code was doing was fairly unpleasant. llvm-svn: 207866
30 lines
1.1 KiB
C++
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 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
|