summaryrefslogtreecommitdiff
path: root/lib/MC/MCParser
diff options
context:
space:
mode:
authorDavid Majnemer <david.majnemer@gmail.com>2014-01-27 17:20:25 +0000
committerDavid Majnemer <david.majnemer@gmail.com>2014-01-27 17:20:25 +0000
commit0fd23cd6c240999baa6d34f48b8dce45bb2f3cc6 (patch)
treeb25dec392a84f045a48e0d1d78c511cc7f0fa908 /lib/MC/MCParser
parentbb0bb73da142c765506e2bcd18d68edbfb4e98e0 (diff)
downloadllvm-0fd23cd6c240999baa6d34f48b8dce45bb2f3cc6.tar.gz
llvm-0fd23cd6c240999baa6d34f48b8dce45bb2f3cc6.tar.bz2
llvm-0fd23cd6c240999baa6d34f48b8dce45bb2f3cc6.tar.xz
MC: Add support for .cfi_startproc simple
This commit allows LLVM MC to process .cfi_startproc directives when they are followed by an additional `simple' identifier. This signals to elide the emission of target specific CFI instructions that would normally occur initially. This fixes PR16587. Differential Revision: http://llvm-reviews.chandlerc.com/D2624 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@200227 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/MC/MCParser')
-rw-r--r--lib/MC/MCParser/AsmParser.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/lib/MC/MCParser/AsmParser.cpp b/lib/MC/MCParser/AsmParser.cpp
index a1d016261f..10f4fbb04e 100644
--- a/lib/MC/MCParser/AsmParser.cpp
+++ b/lib/MC/MCParser/AsmParser.cpp
@@ -2796,9 +2796,14 @@ bool AsmParser::parseDirectiveCFISections() {
}
/// parseDirectiveCFIStartProc
-/// ::= .cfi_startproc
+/// ::= .cfi_startproc [simple]
bool AsmParser::parseDirectiveCFIStartProc() {
- getStreamer().EmitCFIStartProc();
+ StringRef Simple;
+ if (getLexer().isNot(AsmToken::EndOfStatement))
+ if (parseIdentifier(Simple) || Simple != "simple")
+ return TokError("unexpected token in .cfi_startproc directive");
+
+ getStreamer().EmitCFIStartProc(!Simple.empty());
return false;
}