diff --git a/llvm/lib/MC/MCParser/AsmLexer.cpp b/llvm/lib/MC/MCParser/AsmLexer.cpp --- a/llvm/lib/MC/MCParser/AsmLexer.cpp +++ b/llvm/lib/MC/MCParser/AsmLexer.cpp @@ -251,12 +251,12 @@ } static void SkipIgnoredIntegerSuffix(const char *&CurPtr) { - // Skip ULL, UL, U, L and LL suffices. - if (CurPtr[0] == 'U') + // Skip case-insensitive ULL, UL, U, L and LL suffixes. + if (CurPtr[0] == 'U' || CurPtr[0] == 'u') ++CurPtr; - if (CurPtr[0] == 'L') + if (CurPtr[0] == 'L' || CurPtr[0] == 'l') ++CurPtr; - if (CurPtr[0] == 'L') + if (CurPtr[0] == 'L' || CurPtr[0] == 'l') ++CurPtr; } diff --git a/llvm/test/MC/AsmParser/exprs.s b/llvm/test/MC/AsmParser/exprs.s --- a/llvm/test/MC/AsmParser/exprs.s +++ b/llvm/test/MC/AsmParser/exprs.s @@ -18,6 +18,16 @@ check_expr -1, ~0 check_expr +1, 1 check_expr 1 + 2, 3 + check_expr 1U + 2U, 3U + check_expr 1L + 2L, 3L + check_expr 1UL + 2UL, 3UL + check_expr 1LL + 2L, 3LL + check_expr 1ULL + 2ULL, 3ULL + check_expr 1u + 2u, 3u + check_expr 1l + 2l, 3l + check_expr 1ul + 2ul, 3ul + check_expr 1ll + 2L, 3ll + check_expr 1ull + 2ull, 3ull check_expr 1 & 3, 1 check_expr 4 / 2, 2 check_expr 4 / -2, -2