Coverage Report

Created: 2023-10-30 17:15

/builds/2mk6rsew/0/parcoach/parcoach/src/aSSA/Warning.cpp
Line
Count
Source
1
#include "parcoach/Warning.h"
2
3
#include "llvm/IR/DebugInfoMetadata.h"
4
#include "llvm/IR/Function.h"
5
#include "llvm/Support/raw_ostream.h"
6
7
using namespace llvm;
8
9
namespace parcoach {
10
11
Location::Location(DebugLoc DL)
12
4.89k
    : Filename(DL ? DL->getFilename() : "?"), Line(DL ? DL->getLine() : 0) {}
13
14
Warning::Warning(Function const &F, DebugLoc DL, ConditionalsContainerTy &&C)
15
2.41k
    : MissedFunction(F), Where(DL), Conditionals(C) {
16
  // Make sure lines are displayed in order.
17
2.41k
  llvm::sort(Conditionals);
18
2.41k
}
19
20
2.42k
std::string Warning::toString() const {
21
22
2.42k
  std::string Res;
23
2.42k
  raw_string_ostream OS(Res);
24
2.42k
  OS << MissedFunction.getName() << " line " << Where.Line;
25
2.42k
  OS << " possibly not called by all processes because of conditional(s) "
26
2.42k
        "line(s) ";
27
28
2.48k
  for (auto const &Loc : Conditionals) {
29
2.48k
    OS << " " << Loc.Line;
30
2.48k
    OS << " (" << Loc.Filename << ")";
31
2.48k
  }
32
2.42k
  OS << " (Call Ordering Error)";
33
2.42k
  return Res;
34
2.42k
}
35
36
} // namespace parcoach