mirror of
				https://github.com/c64scene-ar/llvm-6502.git
				synced 2025-11-04 05:17:07 +00:00 
			
		
		
		
	Until now, when a path in a gcno file included a directory, we would emit our .gcov file in that directory, whereas gcov always emits the file in the current directory. In doing so, this implements gcov's strange name-mangling -p flag, which is needed to avoid clobbering files when two with the same name exist in different directories. The path mangling is a bit ugly and only handles unix-like paths, but it's simple, and it doesn't make any guesses as to how it should behave outside of what gcov documents. If we decide this should be cross platform later, we can consider the compatibility implications then. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@200754 91177308-0d34-0410-b5e6-96231b3b80d8
		
			
				
	
	
		
			80 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			80 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
        -:    0:Source:srcdir/./nested_dir/../test.cpp
 | 
						|
        -:    0:Graph:test_paths.gcno
 | 
						|
        -:    0:Data:test_paths.gcda
 | 
						|
        -:    0:Runs:3
 | 
						|
        -:    0:Programs:1
 | 
						|
        -:    1:#include "test.h"
 | 
						|
        -:    2:#include <cstdlib>
 | 
						|
        -:    3:
 | 
						|
        -:    4:bool on = false;
 | 
						|
        -:    5:int len = 42;
 | 
						|
        -:    6:double grid[10][10] = {0};
 | 
						|
        -:    7:const char * hello = "world";
 | 
						|
        -:    8:const char * world = "hello";
 | 
						|
        -:    9:
 | 
						|
12884901888:   10:void A::B() {}
 | 
						|
        -:   11:
 | 
						|
    #####:   12:void useless() {}
 | 
						|
        -:   13:
 | 
						|
        -:   14:double more_useless() {
 | 
						|
    #####:   15:  return 0;
 | 
						|
        -:   16:}
 | 
						|
        -:   17:
 | 
						|
        -:   18:int foo() {
 | 
						|
        3:   19:  on = true;
 | 
						|
        3:   20:  return 3;
 | 
						|
        -:   21:}
 | 
						|
        -:   22:
 | 
						|
        -:   23:int bar() {
 | 
						|
    #####:   24:  len--;
 | 
						|
    #####:   25:  return foo() + 45;
 | 
						|
        -:   26:}
 | 
						|
        -:   27:
 | 
						|
       12:   28:void assign(int ii, int jj) {
 | 
						|
       12:   29:  grid[ii][jj] = (ii+1) * (jj+1);
 | 
						|
       12:   30:}
 | 
						|
        -:   31:
 | 
						|
        -:   32:void initialize_grid() {
 | 
						|
       21:   33:  for (int ii = 0; ii < 2; ii++)
 | 
						|
       36:   34:    for (int jj = 0; jj < 2; jj++)
 | 
						|
       18:   35:      assign(ii, jj);
 | 
						|
        3:   36:}
 | 
						|
        -:   37:
 | 
						|
        -:   38:int main() {
 | 
						|
        3:   39:  initialize_grid();
 | 
						|
        -:   40:
 | 
						|
        3:   41:  int a = 2;
 | 
						|
        3:   42:  on = rand() % 2;
 | 
						|
        3:   43:  if (on) {
 | 
						|
        3:   44:    foo();
 | 
						|
        3:   45:    ++a;
 | 
						|
        3:   46:  } else {
 | 
						|
    #####:   47:    bar();
 | 
						|
    #####:   48:    a += rand();
 | 
						|
        -:   49:  }
 | 
						|
        -:   50:
 | 
						|
       66:   51:  for (int ii = 0; ii < 10; ++ii) {
 | 
						|
       30:   52:    switch (rand() % 5) {
 | 
						|
        -:   53:      case 0:
 | 
						|
        6:   54:        a += rand();
 | 
						|
        6:   55:        break;
 | 
						|
        -:   56:      case 1:
 | 
						|
        -:   57:      case 2:
 | 
						|
        3:   58:        a += rand() / rand();
 | 
						|
        3:   59:        break;
 | 
						|
        -:   60:      case 3:
 | 
						|
        9:   61:        a -= rand();
 | 
						|
        9:   62:        break;
 | 
						|
        -:   63:      default:
 | 
						|
       12:   64:        a = -1;
 | 
						|
       12:   65:    }
 | 
						|
       30:   66:  }
 | 
						|
        -:   67:
 | 
						|
        3:   68:  A thing;
 | 
						|
25769803782:   69:  for (uint64_t ii = 0; ii < 4294967296; ++ii)
 | 
						|
12884901888:   70:    thing.B();
 | 
						|
        -:   71:
 | 
						|
        3:   72:  return a + 8 + grid[2][3] + len;
 | 
						|
        -:   73:  return more_useless();
 | 
						|
        -:   74:}
 |