diff options
-rw-r--r-- | lib/AsmParser/LLParser.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/lib/AsmParser/LLParser.cpp b/lib/AsmParser/LLParser.cpp index e44e65057c..1f08ca34ff 100644 --- a/lib/AsmParser/LLParser.cpp +++ b/lib/AsmParser/LLParser.cpp @@ -793,7 +793,11 @@ bool LLParser::ParseOptionalAlignment(unsigned &Alignment) { Alignment = 0; if (!EatIfPresent(lltok::kw_align)) return false; - return ParseUInt32(Alignment); + LocTy AlignLoc = Lex.getLoc(); + if (ParseUInt32(Alignment)) return true; + if (!isPowerOf2_32(Alignment)) + return Error(AlignLoc, "alignment is not a power of two"); + return false; } /// ParseOptionalCommaAlignment |