summaryrefslogtreecommitdiffstats
path: root/llvm
diff options
context:
space:
mode:
authorNirav Dave <niravd@google.com>2018-07-18 16:17:03 +0000
committerNirav Dave <niravd@google.com>2018-07-18 16:17:03 +0000
commite24fcd5382f2f445192b1824dda5a6b032bbe663 (patch)
tree72c7580c33417eac15e1b6f09f97dbbb8507d525 /llvm
parenta633e9dbdefda14d405a47d0a6f0450d5768f4ad (diff)
downloadbcm5719-llvm-e24fcd5382f2f445192b1824dda5a6b032bbe663.tar.gz
bcm5719-llvm-e24fcd5382f2f445192b1824dda5a6b032bbe663.zip
[MC] Fix nested macro body parsing
Add missing .rep case in nestlevel checking for macro body parsing. llvm-svn: 337398
Diffstat (limited to 'llvm')
-rw-r--r--llvm/lib/MC/MCParser/AsmParser.cpp3
-rw-r--r--llvm/test/MC/AsmParser/directive_rept.s13
2 files changed, 15 insertions, 1 deletions
diff --git a/llvm/lib/MC/MCParser/AsmParser.cpp b/llvm/lib/MC/MCParser/AsmParser.cpp
index 68e6e94a492..39a760826d9 100644
--- a/llvm/lib/MC/MCParser/AsmParser.cpp
+++ b/llvm/lib/MC/MCParser/AsmParser.cpp
@@ -5317,7 +5317,8 @@ MCAsmMacro *AsmParser::parseMacroLikeBody(SMLoc DirectiveLoc) {
}
if (Lexer.is(AsmToken::Identifier) &&
- (getTok().getIdentifier() == ".rept" ||
+ (getTok().getIdentifier() == ".rep" ||
+ getTok().getIdentifier() == ".rept" ||
getTok().getIdentifier() == ".irp" ||
getTok().getIdentifier() == ".irpc")) {
++NestLevel;
diff --git a/llvm/test/MC/AsmParser/directive_rept.s b/llvm/test/MC/AsmParser/directive_rept.s
index 4f8ed7c0b80..7bc20f7ea15 100644
--- a/llvm/test/MC/AsmParser/directive_rept.s
+++ b/llvm/test/MC/AsmParser/directive_rept.s
@@ -28,3 +28,16 @@ half_a_dozen_daffodils:
# CHECK: .long 3674148113
# CHECK: .long 3674148113
+
+nested_reps:
+ .rep 2
+ .rep 2
+ .long 0xdeadbeef
+ .endr
+ .endr
+
+# CHECK-LABEL: nested_reps
+# CHECK: .long 3735928559
+# CHECK: .long 3735928559
+# CHECK: .long 3735928559
+# CHECK: .long 3735928559
OpenPOWER on IntegriCloud