diff options
author | Filipe Cabecinhas <me@filcab.net> | 2015-06-02 21:25:08 +0000 |
---|---|---|
committer | Filipe Cabecinhas <me@filcab.net> | 2015-06-02 21:25:08 +0000 |
commit | 62431b1d71e20025129f260da0a15a2f55768cc9 (patch) | |
tree | 450df6cb6e26a3ecc684f59a51216dfff24e5805 /llvm/lib/IR/LLVMContext.cpp | |
parent | 436923ce35d669eb462c378f330e878708c8aae0 (diff) | |
download | llvm-62431b1d71e20025129f260da0a15a2f55768cc9.zip llvm-62431b1d71e20025129f260da0a15a2f55768cc9.tar.gz llvm-62431b1d71e20025129f260da0a15a2f55768cc9.tar.bz2 |
[IR/AsmWriter] Output escape sequences if the first character isdigit()
If the first character in a metadata attachment's name is a digit, it has
to be output using an escape sequence, otherwise it's not valid text IR.
Removed an over-zealous assert from LLVMContext which didn't allow this.
The rule should only apply to text IR. Actual names can have any sequence
of non-NUL bytes.
Also added some documentation on accepted names.
Bug found with AFL fuzz.
llvm-svn: 238867
Diffstat (limited to 'llvm/lib/IR/LLVMContext.cpp')
-rw-r--r-- | llvm/lib/IR/LLVMContext.cpp | 3 |
1 files changed, 0 insertions, 3 deletions
diff --git a/llvm/lib/IR/LLVMContext.cpp b/llvm/lib/IR/LLVMContext.cpp index e8bf442b..7bcd829 100644 --- a/llvm/lib/IR/LLVMContext.cpp +++ b/llvm/lib/IR/LLVMContext.cpp @@ -242,9 +242,6 @@ void LLVMContext::emitError(unsigned LocCookie, const Twine &ErrorStr) { /// Return a unique non-zero ID for the specified metadata kind. unsigned LLVMContext::getMDKindID(StringRef Name) const { - assert(!std::isdigit(Name.front()) && - "Named metadata may not start with a digit"); - // If this is new, assign it its ID. return pImpl->CustomMDKindNames.insert( std::make_pair( |