diff options
author | Justin Bogner <mail@justinbogner.com> | 2014-09-08 21:04:00 +0000 |
---|---|---|
committer | Justin Bogner <mail@justinbogner.com> | 2014-09-08 21:04:00 +0000 |
commit | 85b0a03a6972321813ca418f0db236f8707b6ea2 (patch) | |
tree | f19403d25891e4d0b773a9664d69cb4e3a3929c7 /llvm/lib/ProfileData/CoverageMapping.cpp | |
parent | 5f95c8fc5f3cc656d28c3049cf17b8aecd408b7b (diff) | |
download | bcm5719-llvm-85b0a03a6972321813ca418f0db236f8707b6ea2.tar.gz bcm5719-llvm-85b0a03a6972321813ca418f0db236f8707b6ea2.zip |
llvm-cov: Use ErrorOr rather than an error_code* (NFC)
llvm-svn: 217404
Diffstat (limited to 'llvm/lib/ProfileData/CoverageMapping.cpp')
-rw-r--r-- | llvm/lib/ProfileData/CoverageMapping.cpp | 41 |
1 files changed, 17 insertions, 24 deletions
diff --git a/llvm/lib/ProfileData/CoverageMapping.cpp b/llvm/lib/ProfileData/CoverageMapping.cpp index f9becdd5b77..54965fe77d8 100644 --- a/llvm/lib/ProfileData/CoverageMapping.cpp +++ b/llvm/lib/ProfileData/CoverageMapping.cpp @@ -13,6 +13,7 @@ //===----------------------------------------------------------------------===// #include "llvm/ProfileData/CoverageMapping.h" +#include "llvm/Support/ErrorHandling.h" using namespace llvm; using namespace coverage; @@ -110,40 +111,32 @@ void CounterMappingContext::dump(const Counter &C, } if (CounterValues.empty()) return; - std::error_code Error; - auto Value = evaluate(C, Error); - if (Error) + ErrorOr<int64_t> Value = evaluate(C); + if (!Value) return; - OS << '[' << Value << ']'; + OS << '[' << *Value << ']'; } -int64_t CounterMappingContext::evaluate(const Counter &C, - std::error_code *EC) const { +ErrorOr<int64_t> CounterMappingContext::evaluate(const Counter &C) const { switch (C.getKind()) { case Counter::Zero: return 0; case Counter::CounterValueReference: - if (C.getCounterID() >= CounterValues.size()) { - if (EC) - *EC = std::make_error_code(std::errc::argument_out_of_domain); - break; - } + if (C.getCounterID() >= CounterValues.size()) + return std::errc::argument_out_of_domain; return CounterValues[C.getCounterID()]; case Counter::Expression: { - if (C.getExpressionID() >= Expressions.size()) { - if (EC) - *EC = std::make_error_code(std::errc::argument_out_of_domain); - break; - } + if (C.getExpressionID() >= Expressions.size()) + return std::errc::argument_out_of_domain; const auto &E = Expressions[C.getExpressionID()]; - auto LHS = evaluate(E.LHS, EC); - if (EC && *EC) - return 0; - auto RHS = evaluate(E.RHS, EC); - if (EC && *EC) - return 0; - return E.Kind == CounterExpression::Subtract ? LHS - RHS : LHS + RHS; + ErrorOr<int64_t> LHS = evaluate(E.LHS); + if (!LHS) + return LHS; + ErrorOr<int64_t> RHS = evaluate(E.RHS); + if (!RHS) + return RHS; + return E.Kind == CounterExpression::Subtract ? *LHS - *RHS : *LHS + *RHS; } } - return 0; + llvm_unreachable("Unhandled CounterKind"); } |