GCC Code Coverage Report


Directory: ../
Coverage: low: ≥ 0% medium: ≥ 75.0% high: ≥ 90.0%
Coverage Exec / Excl / Total
Lines: 100.0% 1 / 0 / 1
Functions: 100.0% 1 / 0 / 1
Branches: 75.0% 3 / 0 / 4

src/irgenerator/LLVMExprResult.h
Line Branch Exec Source
1 // Copyright (c) 2021-2026 ChilliBits. All rights reserved.
2
3 #pragma once
4
5 #include <symboltablebuilder/SymbolTableEntry.h>
6
7 // Forward declarations
8 namespace llvm {
9 class Value;
10 class Constant;
11 } // namespace llvm
12
13 namespace spice::compiler {
14
15 // Forward declarations
16 class ExprNode;
17
18 // For routing through multiple LLVM values at once
19 struct LLVMExprResult {
20 llvm::Value *value = nullptr;
21 llvm::Constant *constant = nullptr;
22 llvm::Value *ptr = nullptr;
23 llvm::Value *refPtr = nullptr;
24 SymbolTableEntry *entry = nullptr;
25 const ExprNode *node = nullptr;
26
27
3/4
✓ Branch 2 → 3 taken 261 times.
✓ Branch 2 → 4 taken 2199 times.
✗ Branch 3 → 4 not taken.
✓ Branch 3 → 5 taken 261 times.
2460 [[nodiscard]] bool isTemporary() const { return entry == nullptr || entry->anonymous; }
28 };
29
30 } // namespace spice::compiler
31