[LLVMbugs] [Bug 20431] New: `getTok().getIdentifier() == ".rept"` check in AsmParser::parseMacroLikeBody() looks wrong

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Wed Jul 23 21:28:23 PDT 2014


http://llvm.org/bugs/show_bug.cgi?id=20431

            Bug ID: 20431
           Summary: `getTok().getIdentifier() == ".rept"` check in
                    AsmParser::parseMacroLikeBody() looks wrong
           Product: libraries
           Version: trunk
          Hardware: PC
                OS: All
            Status: NEW
          Severity: normal
          Priority: P
         Component: MC
          Assignee: unassignedbugs at nondot.org
          Reporter: nicolasweber at gmx.de
                CC: llvmbugs at cs.uiuc.edu
    Classification: Unclassified

AsmParser::parseMacroLikeBody() contains

    if (Lexer.is(AsmToken::Identifier) &&
        (getTok().getIdentifier() == ".rept")) {
      ++NestLevel;
    }

to support nested .rept blocks. This was added in
http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20120528/143967.html

The function is also used for .irp and .irpc though – since there's no check
for .irp and .irpc in that line, these can't be nested, and the three
directives can't be nested with each other either. Only .rept can be nested
with itself.

>From svn history, this looks like an oversight, not like a conscious decision.

-- 
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20140724/182c078e/attachment.html>


More information about the llvm-bugs mailing list