Coverage Report

Created: 2017-04-30 07:14

/Users/buildslave/jenkins/sharedspace/clang-stage2-coverage-R@2/llvm/lib/Object/ELF.cpp
Line
Count
Source (jump to first uncovered line)
1
//===- ELF.cpp - ELF object file implementation ---------------------------===//
2
//
3
//                     The LLVM Compiler Infrastructure
4
//
5
// This file is distributed under the University of Illinois Open Source
6
// License. See LICENSE.TXT for details.
7
//
8
//===----------------------------------------------------------------------===//
9
10
#include "llvm/Object/ELF.h"
11
#include "llvm/Support/ELF.h"
12
13
using namespace llvm;
14
using namespace object;
15
16
#define ELF_RELOC(name, value)                                          \
17
3.45k
  case ELF::name:                                                       \
18
3.45k
    return #name;                                                       \
19
20
StringRef llvm::object::getELFRelocationTypeName(uint32_t Machine,
21
3.69k
                                                 uint32_t Type) {
22
3.69k
  switch (Machine) {
23
713
  case ELF::EM_X86_64:
24
713
    switch (Type) {
25
713
#include "llvm/Support/ELFRelocs/x86_64.def"
26
2
    default:
27
2
      break;
28
713
    }
29
2
    break;
30
260
  case ELF::EM_386:
31
260
  case ELF::EM_IAMCU:
32
260
    switch (Type) {
33
260
#include "llvm/Support/ELFRelocs/i386.def"
34
0
    default:
35
0
      break;
36
260
    }
37
0
    break;
38
883
  case ELF::EM_MIPS:
39
883
    switch (Type) {
40
883
#include "llvm/Support/ELFRelocs/Mips.def"
41
0
    default:
42
0
      break;
43
883
    }
44
0
    break;
45
634
  case ELF::EM_AARCH64:
46
634
    switch (Type) {
47
634
#include "llvm/Support/ELFRelocs/AArch64.def"
48
0
    default:
49
0
      break;
50
634
    }
51
0
    break;
52
449
  case ELF::EM_ARM:
53
449
    switch (Type) {
54
449
#include "llvm/Support/ELFRelocs/ARM.def"
55
0
    default:
56
0
      break;
57
449
    }
58
0
    break;
59
0
  case ELF::EM_AVR:
60
0
    switch (Type) {
61
0
#include "llvm/Support/ELFRelocs/AVR.def"
62
0
    default:
63
0
      break;
64
0
    }
65
0
    break;
66
107
  case ELF::EM_HEXAGON:
67
107
    switch (Type) {
68
107
#include "llvm/Support/ELFRelocs/Hexagon.def"
69
0
    default:
70
0
      break;
71
107
    }
72
0
    break;
73
14
  case ELF::EM_LANAI:
74
14
    switch (Type) {
75
14
#include "llvm/Support/ELFRelocs/Lanai.def"
76
0
    default:
77
0
      break;
78
14
    }
79
0
    break;
80
2
  case ELF::EM_PPC:
81
2
    switch (Type) {
82
2
#include "llvm/Support/ELFRelocs/PowerPC.def"
83
0
    default:
84
0
      break;
85
2
    }
86
0
    break;
87
458
  case ELF::EM_PPC64:
88
458
    switch (Type) {
89
458
#include "llvm/Support/ELFRelocs/PowerPC64.def"
90
0
    default:
91
0
      break;
92
458
    }
93
0
    break;
94
0
  case ELF::EM_RISCV:
95
0
    switch (Type) {
96
0
#include "llvm/Support/ELFRelocs/RISCV.def"
97
0
    default:
98
0
      break;
99
0
    }
100
0
    break;
101
31
  case ELF::EM_S390:
102
31
    switch (Type) {
103
31
#include "llvm/Support/ELFRelocs/SystemZ.def"
104
0
    default:
105
0
      break;
106
31
    }
107
0
    break;
108
103
  case ELF::EM_SPARC:
109
103
  case ELF::EM_SPARC32PLUS:
110
103
  case ELF::EM_SPARCV9:
111
103
    switch (Type) {
112
103
#include "llvm/Support/ELFRelocs/Sparc.def"
113
0
    default:
114
0
      break;
115
103
    }
116
0
    break;
117
0
  case ELF::EM_WEBASSEMBLY:
118
0
    switch (Type) {
119
0
#include "llvm/Support/ELFRelocs/WebAssembly.def"
120
0
    default:
121
0
      break;
122
0
    }
123
0
    break;
124
42
  case ELF::EM_AMDGPU:
125
42
    switch (Type) {
126
42
#include "llvm/Support/ELFRelocs/AMDGPU.def"
127
0
    default:
128
0
      break;
129
42
    }
130
0
  case ELF::EM_BPF:
131
0
    switch (Type) {
132
0
#include "llvm/Support/ELFRelocs/BPF.def"
133
0
    default:
134
0
      break;
135
0
    }
136
0
    break;
137
0
  default:
138
0
    break;
139
3.69k
  }
140
2
  return "Unknown";
141
3.69k
}
142
143
#undef ELF_RELOC