summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGeorge Rimar <grimar@accesssoftek.com>2019-10-22 08:52:45 +0000
committerGeorge Rimar <grimar@accesssoftek.com>2019-10-22 08:52:45 +0000
commit78d632d1055467dd2880dc9ff6dfdc554505eda7 (patch)
tree2fe971d63d55994acba7cc0f25622f3ca6093819
parentecc999101aadc8dc7d4af9fd88be10fe42674aa0 (diff)
downloadbcm5719-llvm-78d632d1055467dd2880dc9ff6dfdc554505eda7.tar.gz
bcm5719-llvm-78d632d1055467dd2880dc9ff6dfdc554505eda7.zip
[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
-rw-r--r--llvm/lib/DebugInfo/PDB/Native/NativeEnumInjectedSources.cpp25
1 files changed, 13 insertions, 12 deletions
diff --git a/llvm/lib/DebugInfo/PDB/Native/NativeEnumInjectedSources.cpp b/llvm/lib/DebugInfo/PDB/Native/NativeEnumInjectedSources.cpp
index 065bb2c401e..2f6a5bc3d57 100644
--- a/llvm/lib/DebugInfo/PDB/Native/NativeEnumInjectedSources.cpp
+++ b/llvm/lib/DebugInfo/PDB/Native/NativeEnumInjectedSources.cpp
@@ -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
OpenPOWER on IntegriCloud