summaryrefslogtreecommitdiffstats
path: root/llvm/lib/AsmParser/LLParser.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/lib/AsmParser/LLParser.cpp')
-rw-r--r--llvm/lib/AsmParser/LLParser.cpp52
1 files changed, 3 insertions, 49 deletions
diff --git a/llvm/lib/AsmParser/LLParser.cpp b/llvm/lib/AsmParser/LLParser.cpp
index 209a834fed1..2833ef44fe9 100644
--- a/llvm/lib/AsmParser/LLParser.cpp
+++ b/llvm/lib/AsmParser/LLParser.cpp
@@ -3636,22 +3636,6 @@ struct MDSignedOrMDField : MDEitherFieldImpl<MDSignedField, MDField> {
}
};
-struct MDSignedOrUnsignedField
- : MDEitherFieldImpl<MDSignedField, MDUnsignedField> {
- MDSignedOrUnsignedField() : ImplTy(MDSignedField(0), MDUnsignedField(0)) {}
-
- bool isMDSignedField() const { return WhatIs == IsTypeA; }
- bool isMDUnsignedField() const { return WhatIs == IsTypeB; }
- int64_t getMDSignedValue() const {
- assert(isMDSignedField() && "Wrong field type");
- return A.Val;
- }
- uint64_t getMDUnsignedValue() const {
- assert(isMDUnsignedField() && "Wrong field type");
- return B.Val;
- }
-};
-
} // end anonymous namespace
namespace llvm {
@@ -3929,27 +3913,6 @@ bool LLParser::ParseMDField(LocTy Loc, StringRef Name,
}
template <>
-bool LLParser::ParseMDField(LocTy Loc, StringRef Name,
- MDSignedOrUnsignedField &Result) {
- if (Lex.getKind() != lltok::APSInt)
- return false;
-
- if (Lex.getAPSIntVal().isSigned()) {
- MDSignedField Res = Result.A;
- if (ParseMDField(Loc, Name, Res))
- return true;
- Result.assign(Res);
- return false;
- }
-
- MDUnsignedField Res = Result.B;
- if (ParseMDField(Loc, Name, Res))
- return true;
- Result.assign(Res);
- return false;
-}
-
-template <>
bool LLParser::ParseMDField(LocTy Loc, StringRef Name, MDStringField &Result) {
LocTy ValueLoc = Lex.getLoc();
std::string S;
@@ -4114,24 +4077,15 @@ bool LLParser::ParseDISubrange(MDNode *&Result, bool IsDistinct) {
}
/// ParseDIEnumerator:
-/// ::= !DIEnumerator(value: 30, isUnsigned: true, name: "SomeKind")
+/// ::= !DIEnumerator(value: 30, name: "SomeKind")
bool LLParser::ParseDIEnumerator(MDNode *&Result, bool IsDistinct) {
#define VISIT_MD_FIELDS(OPTIONAL, REQUIRED) \
REQUIRED(name, MDStringField, ); \
- REQUIRED(value, MDSignedOrUnsignedField, ); \
- OPTIONAL(isUnsigned, MDBoolField, (false));
+ REQUIRED(value, MDSignedField, );
PARSE_MD_FIELDS();
#undef VISIT_MD_FIELDS
- if (isUnsigned.Val && value.isMDSignedField())
- return TokError("unsigned enumerator with negative value");
-
- int64_t Value = value.isMDSignedField()
- ? value.getMDSignedValue()
- : static_cast<int64_t>(value.getMDUnsignedValue());
- Result =
- GET_OR_DISTINCT(DIEnumerator, (Context, Value, isUnsigned.Val, name.Val));
-
+ Result = GET_OR_DISTINCT(DIEnumerator, (Context, value.Val, name.Val));
return false;
}
OpenPOWER on IntegriCloud