GCC Code Coverage Report


Directory: ../
Coverage: low: ≥ 0% medium: ≥ 75.0% high: ≥ 90.0%
Coverage Exec / Excl / Total
Lines: 100.0% 6 / 0 / 6
Functions: 100.0% 2 / 0 / 2
Branches: 58.3% 7 / 0 / 12

src/linker/BitcodeLinker.cpp
Line Branch Exec Source
1 // Copyright (c) 2021-2026 ChilliBits. All rights reserved.
2
3 #include "BitcodeLinker.h"
4
5 #include <ranges>
6
7 #include <SourceFile.h>
8 #include <global/GlobalResourceManager.h>
9
10 #include <llvm/IR/Module.h> // IWYU pragma: keep
11
12 namespace spice::compiler {
13
14 1 BitcodeLinker::BitcodeLinker(GlobalResourceManager &resourceManager)
15
1/2
✓ Branch 4 → 5 taken 1 time.
✗ Branch 4 → 6 not taken.
1 : CompilerPass(resourceManager), linker(*resourceManager.ltoModule) {}
16
17 1 void BitcodeLinker::link() {
18 // Link all source file modules in
19
5/8
✓ Branch 2 → 3 taken 1 time.
✗ Branch 2 → 24 not taken.
✓ Branch 3 → 4 taken 1 time.
✗ Branch 3 → 24 not taken.
✓ Branch 4 → 5 taken 1 time.
✗ Branch 4 → 24 not taken.
✓ Branch 16 → 6 taken 2 times.
✓ Branch 16 → 17 taken 1 time.
3 for (const auto &sourceFile : resourceManager.sourceFiles | std::views::values)
20
1/2
✓ Branch 11 → 12 taken 2 times.
✗ Branch 11 → 18 not taken.
2 linker.linkInModule(std::move(sourceFile->llvmModule), llvm::Linker::None);
21 1 }
22
23 } // namespace spice::compiler
24