<html>
<head>
<base href="https://llvm.org/bugs/" />
</head>
<body><table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Bug ID</th>
<td><a class="bz_bug_link
bz_status_NEW "
title="NEW --- - Malformed (e.g. "1e") FP immediate in assembly triggers an assert"
href="https://llvm.org/bugs/show_bug.cgi?id=24454">24454</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>Malformed (e.g. "1e") FP immediate in assembly triggers an assert
</td>
</tr>
<tr>
<th>Product</th>
<td>libraries
</td>
</tr>
<tr>
<th>Version</th>
<td>trunk
</td>
</tr>
<tr>
<th>Hardware</th>
<td>PC
</td>
</tr>
<tr>
<th>OS</th>
<td>All
</td>
</tr>
<tr>
<th>Status</th>
<td>NEW
</td>
</tr>
<tr>
<th>Severity</th>
<td>normal
</td>
</tr>
<tr>
<th>Priority</th>
<td>P
</td>
</tr>
<tr>
<th>Component</th>
<td>Backend: AArch64
</td>
</tr>
<tr>
<th>Assignee</th>
<td>unassignedbugs@nondot.org
</td>
</tr>
<tr>
<th>Reporter</th>
<td>ahmed.bougacha@gmail.com
</td>
</tr>
<tr>
<th>CC</th>
<td>llvm-bugs@lists.llvm.org
</td>
</tr>
<tr>
<th>Classification</th>
<td>Unclassified
</td>
</tr></table>
<p>
<div>
<pre>Consider:
echo "fmov v0.4s, #1e" | ./bin/llvm-mc -triple aarch64
I get:
Assertion failed: (p != end && "Exponent has no digits"), function
readExponent, file ../lib/Support/APFloat.cpp, line 123.
0 llvm-mc 0x000000010623514e
llvm::sys::PrintStackTrace(llvm::raw_ostream&) + 46
1 llvm-mc 0x00000001062369f9
PrintStackTraceSignalHandler(void*) + 25
2 llvm-mc 0x0000000106236e07 SignalHandler(int) + 551
3 libsystem_platform.dylib 0x00007fff9139ceaa _sigtramp + 26
4 llvm-mc 0x0000000106e1620d PassRegistryObj + 38653
5 llvm-mc 0x0000000106236a1b raise + 27
6 llvm-mc 0x0000000106236ad2 abort + 18
7 llvm-mc 0x0000000106236ab1 __assert_rtn + 129
8 llvm-mc 0x00000001061763af readExponent(char const*, char
const*) + 111
9 llvm-mc 0x000000010617162f interpretDecimal(char const*,
char const*, decimalInfo*) + 639
10 llvm-mc 0x0000000106170fe3
llvm::APFloat::convertFromDecimalString(llvm::StringRef,
llvm::APFloat::roundingMode) + 83
11 llvm-mc 0x000000010616ba93
llvm::APFloat::convertFromString(llvm::StringRef, llvm::APFloat::roundingMode)
+ 691
12 llvm-mc 0x000000010616b7cf
llvm::APFloat::APFloat(llvm::fltSemantics const&, llvm::StringRef) + 79
13 llvm-mc 0x000000010616badd
llvm::APFloat::APFloat(llvm::fltSemantics const&, llvm::StringRef) + 45
14 llvm-mc 0x0000000105f49e54 (anonymous
namespace)::AArch64AsmParser::tryParseFPImm(llvm::SmallVectorImpl<std::__1::unique_ptr<llvm::MCParsedAsmOperand,
std::__1::default_delete<llvm::MCParsedAsmOperand> > >&) + 340
15 llvm-mc 0x0000000105f46b1a (anonymous
namespace)::AArch64AsmParser::tryCustomParseOperand(llvm::SmallVectorImpl<std::__1::unique_ptr<llvm::MCParsedAsmOperand,
std::__1::default_delete<llvm::MCParsedAsmOperand> > >&, unsigned int) + 378
16 llvm-mc 0x0000000105f43546 (anonymous
namespace)::AArch64AsmParser::MatchOperandParserImpl(llvm::SmallVectorImpl<std::__1::unique_ptr<llvm::MCParsedAsmOperand,
std::__1::default_delete<llvm::MCParsedAsmOperand> > >&, llvm::StringRef) + 454
17 llvm-mc 0x0000000105f3ad3d (anonymous
namespace)::AArch64AsmParser::parseOperand(llvm::SmallVectorImpl<std::__1::unique_ptr<llvm::MCParsedAsmOperand,
std::__1::default_delete<llvm::MCParsedAsmOperand> > >&, bool, bool) + 141
18 llvm-mc 0x0000000105ee419c (anonymous
namespace)::AArch64AsmParser::ParseInstruction(llvm::ParseInstructionInfo&,
llvm::StringRef, llvm::SMLoc,
llvm::SmallVectorImpl<std::__1::unique_ptr<llvm::MCParsedAsmOperand,
std::__1::default_delete<llvm::MCParsedAsmOperand> > >&) + 9564
19 llvm-mc 0x00000001061219ca (anonymous
namespace)::AsmParser::parseStatement((anonymous
namespace)::ParseStatementInfo&, llvm::MCAsmParserSemaCallback*) + 9082
20 llvm-mc 0x0000000106118c3b (anonymous
namespace)::AsmParser::Run(bool, bool) + 779
21 llvm-mc 0x0000000105d8f9d1 AssembleInput(char const*,
llvm::Target const*, llvm::SourceMgr&, llvm::MCContext&, llvm::MCStreamer&,
llvm::MCAsmInfo&, llvm::MCSubtargetInfo&, llvm::MCInstrInfo&,
llvm::MCTargetOptions&) + 961
22 llvm-mc 0x0000000105d8d97a main + 11722
The assert is in APFloat, but tentatively filing against AArch64, since
AsmLexer::LexFloatLiteral explicitly mentions this kind of checking as being
the responsibility of the client.</pre>
</div>
</p>
<hr>
<span>You are receiving this mail because:</span>
<ul>
<li>You are on the CC list for the bug.</li>
</ul>
</body>
</html>