mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-01-31 17:32:36 +00:00
[LLVMDebugInfoPDB] - Use cantFail() instead of assert().
Currently injected-sources-native.test fails with "Expected<T> value was in success state. (Note: Expected<T> values in success mode must still be checked prior to being destroyed)" when llvm is compiled with LLVM_ENABLE_ABI_BREAKING_CHECKS in Release. The problem is that getStringForID returns Expected<StringRef> and Expected value must always be checked, even if it is in success state. Checking with assert only helps in Debug and is wrong. Differential revision: https://reviews.llvm.org/D69251 llvm-svn: 375492
This commit is contained in:
parent
bd7255cbc4
commit
5f98407da5
@ -46,30 +46,31 @@ public:
|
||||
uint64_t getCodeByteSize() const override { return Entry.FileSize; }
|
||||
|
||||
std::string getFileName() const override {
|
||||
auto Name = Strings.getStringForID(Entry.FileNI);
|
||||
assert(Name && "InjectedSourceStream should have rejected this");
|
||||
return *Name;
|
||||
StringRef Ret = cantFail(Strings.getStringForID(Entry.FileNI),
|
||||
"InjectedSourceStream should have rejected this");
|
||||
return Ret;
|
||||
}
|
||||
|
||||
std::string getObjectFileName() const override {
|
||||
auto ObjName = Strings.getStringForID(Entry.ObjNI);
|
||||
assert(ObjName && "InjectedSourceStream should have rejected this");
|
||||
return *ObjName;
|
||||
StringRef Ret = cantFail(Strings.getStringForID(Entry.ObjNI),
|
||||
"InjectedSourceStream should have rejected this");
|
||||
return Ret;
|
||||
}
|
||||
|
||||
std::string getVirtualFileName() const override {
|
||||
auto VName = Strings.getStringForID(Entry.VFileNI);
|
||||
assert(VName && "InjectedSourceStream should have rejected this");
|
||||
return *VName;
|
||||
StringRef Ret = cantFail(Strings.getStringForID(Entry.VFileNI),
|
||||
"InjectedSourceStream should have rejected this");
|
||||
return Ret;
|
||||
}
|
||||
|
||||
uint32_t getCompression() const override { return Entry.Compression; }
|
||||
|
||||
std::string getCode() const override {
|
||||
// Get name of stream storing the data.
|
||||
auto VName = Strings.getStringForID(Entry.VFileNI);
|
||||
assert(VName && "InjectedSourceStream should have rejected this");
|
||||
std::string StreamName = ("/src/files/" + *VName).str();
|
||||
StringRef VName =
|
||||
cantFail(Strings.getStringForID(Entry.VFileNI),
|
||||
"InjectedSourceStream should have rejected this");
|
||||
std::string StreamName = ("/src/files/" + VName).str();
|
||||
|
||||
// Find stream with that name and read its data.
|
||||
// FIXME: Consider validating (or even loading) all this in
|
||||
|
Loading…
x
Reference in New Issue
Block a user