diff options
Diffstat (limited to 'llvm/lib/AsmParser/LLParser.cpp')
-rw-r--r-- | llvm/lib/AsmParser/LLParser.cpp | 52 |
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; } |