diff options
author | Vedant Kumar <vsk@apple.com> | 2017-06-20 01:38:56 +0000 |
---|---|---|
committer | Vedant Kumar <vsk@apple.com> | 2017-06-20 01:38:56 +0000 |
commit | b5794ca90c4e1e236eb98bf84b3e3be5e31edc32 (patch) | |
tree | 7d7fb893a3a2378d6547b904546f449d7f346fe5 /llvm/lib/ProfileData/Coverage/CoverageMappingReader.cpp | |
parent | 4f05b362855cd10b35608a36b18a04647920309c (diff) | |
download | bcm5719-llvm-b5794ca90c4e1e236eb98bf84b3e3be5e31edc32.tar.gz bcm5719-llvm-b5794ca90c4e1e236eb98bf84b3e3be5e31edc32.zip |
[ProfileData] PR33517: Check for failure of symtab creation
With PR33517, it became apparent that symbol table creation can fail
when presented with malformed inputs. This patch makes that sort of
error detectable, so llvm-cov etc. can fail more gracefully.
Specifically, we now check that function names within the symbol table
aren't empty.
Testing: check-{llvm,clang,profile}, some unit test updates.
llvm-svn: 305765
Diffstat (limited to 'llvm/lib/ProfileData/Coverage/CoverageMappingReader.cpp')
-rw-r--r-- | llvm/lib/ProfileData/Coverage/CoverageMappingReader.cpp | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/llvm/lib/ProfileData/Coverage/CoverageMappingReader.cpp b/llvm/lib/ProfileData/Coverage/CoverageMappingReader.cpp index a34f359cd54..fa42fce4751 100644 --- a/llvm/lib/ProfileData/Coverage/CoverageMappingReader.cpp +++ b/llvm/lib/ProfileData/Coverage/CoverageMappingReader.cpp @@ -419,6 +419,8 @@ class VersionedCovMapFuncRecordReader : public CovMapFuncRecordReader { StringRef FuncName; if (Error Err = CFR->template getFuncName<Endian>(ProfileNames, FuncName)) return Err; + if (FuncName.empty()) + return make_error<InstrProfError>(instrprof_error::malformed); Records.emplace_back(Version, FuncName, FuncHash, Mapping, FilenamesBegin, Filenames.size() - FilenamesBegin); return Error::success(); |