mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-20 10:24:12 +00:00
Fix LLVMContext to match what MDKind names that the LL parser permits. Fixes PR21799!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@223995 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -229,28 +229,10 @@ void LLVMContext::emitError(unsigned LocCookie, const Twine &ErrorStr) {
|
|||||||
// Metadata Kind Uniquing
|
// 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.
|
/// getMDKindID - Return a unique non-zero ID for the specified metadata kind.
|
||||||
unsigned LLVMContext::getMDKindID(StringRef Name) const {
|
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.
|
// If this is new, assign it its ID.
|
||||||
return pImpl->CustomMDKindNames.insert(std::make_pair(
|
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)
|
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 !0, !whatever_else !{}, !more !{metadata !"hello"}
|
||||||
store i32 0, i32* null, !whatever !{metadata !"hello", metadata !1, metadata !{}, metadata !2}
|
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
|
declare void @llvm.zonk(metadata, i64, metadata) nounwind readnone
|
||||||
|
Reference in New Issue
Block a user