GCC Code Coverage Report


Directory: ../
File: src/irgenerator/LLVMExprResult.h
Date: 2025-02-05 01:09:36
Exec Total Coverage
Lines: 1 1 100.0%
Functions: 1 1 100.0%
Branches: 3 4 75.0%

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