LLVM 20.0.0git
StringsAndChecksums.cpp
Go to the documentation of this file.
1//===- StringsAndChecksums.cpp --------------------------------------------===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8
14#include "llvm/Support/Error.h"
15#include <cassert>
16
17using namespace llvm;
18using namespace llvm::codeview;
19
21
23 const DebugStringTableSubsectionRef &Strings)
24 : Strings(&Strings) {}
25
27 const DebugStringTableSubsectionRef &Strings,
28 const DebugChecksumsSubsectionRef &Checksums)
29 : Strings(&Strings), Checksums(&Checksums) {}
30
31void StringsAndChecksumsRef::initializeStrings(
32 const DebugSubsectionRecord &SR) {
34 assert(!Strings && "Found a string table even though we already have one!");
35
36 OwnedStrings = std::make_shared<DebugStringTableSubsectionRef>();
37 consumeError(OwnedStrings->initialize(SR.getRecordData()));
38 Strings = OwnedStrings.get();
39}
40
44}
45
47 OwnedStrings.reset();
48 Strings = nullptr;
49}
50
52 OwnedChecksums.reset();
53 Checksums = nullptr;
54}
55
57 const DebugStringTableSubsectionRef &StringsRef) {
58 OwnedStrings = std::make_shared<DebugStringTableSubsectionRef>();
59 *OwnedStrings = StringsRef;
60 Strings = OwnedStrings.get();
61}
62
65 OwnedChecksums = std::make_shared<DebugChecksumsSubsectionRef>();
66 *OwnedChecksums = CS;
67 Checksums = OwnedChecksums.get();
68}
69
70void StringsAndChecksumsRef::initializeChecksums(
71 const DebugSubsectionRecord &FCR) {
73 if (Checksums)
74 return;
75
76 OwnedChecksums = std::make_shared<DebugChecksumsSubsectionRef>();
77 consumeError(OwnedChecksums->initialize(FCR.getRecordData()));
78 Checksums = OwnedChecksums.get();
79}
assert(ImpDefSCC.getReg()==AMDGPU::SCC &&ImpDefSCC.isDef())
Represents a read-only view of a CodeView string table.
void setStrings(const DebugStringTableSubsectionRef &Strings)
void setChecksums(const DebugChecksumsSubsectionRef &CS)
This is an optimization pass for GlobalISel generic memory operations.
Definition: AddressRanges.h:18
void consumeError(Error Err)
Consume a Error without doing anything.
Definition: Error.h:1069