<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>