forked from OSchip/llvm-project
Fix LLVMContext to match what MDKind names that the LL parser permits. Fixes PR21799!
llvm-svn: 223995
This commit is contained in:
parent
1e30897497
commit
dde76ff09c
|
@ -229,28 +229,10 @@ void LLVMContext::emitError(unsigned LocCookie, const Twine &ErrorStr) {
|
|||
// Metadata Kind Uniquing
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#ifndef NDEBUG
|
||||
/// isValidName - Return true if Name is a valid custom metadata handler name.
|
||||
static bool isValidName(StringRef MDName) {
|
||||
if (MDName.empty())
|
||||
return false;
|
||||
|
||||
if (!std::isalpha(static_cast<unsigned char>(MDName[0])))
|
||||
return false;
|
||||
|
||||
for (StringRef::iterator I = MDName.begin() + 1, E = MDName.end(); I != E;
|
||||
++I) {
|
||||
if (!std::isalnum(static_cast<unsigned char>(*I)) && *I != '_' &&
|
||||
*I != '-' && *I != '.')
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
#endif
|
||||
|
||||
/// getMDKindID - Return a unique non-zero ID for the specified metadata kind.
|
||||
unsigned LLVMContext::getMDKindID(StringRef Name) const {
|
||||
assert(isValidName(Name) && "Invalid MDNode name");
|
||||
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(
|
||||
|
|
|
@ -5,7 +5,7 @@ define void @foo(i32 %x) {
|
|||
call void @llvm.zonk(metadata !{i32 %x}, i64 0, metadata !1)
|
||||
store i32 0, i32* null, !whatever !0, !whatever_else !{}, !more !{metadata !"hello"}
|
||||
store i32 0, i32* null, !whatever !{metadata !"hello", metadata !1, metadata !{}, metadata !2}
|
||||
ret void
|
||||
ret void, !_1 !0
|
||||
}
|
||||
|
||||
declare void @llvm.zonk(metadata, i64, metadata) nounwind readnone
|
||||
|
|
Loading…
Reference in New Issue