jbush001 / NyuziToolchain

Port of LLVM/Clang C compiler to Nyuzi parallel processor architecture
Other
62 stars 28 forks source link

Assembler assert with exponent format floating point #93

Closed jbush001 closed 5 years ago

jbush001 commented 7 years ago

This is probably a bug in upstream LLVM. Investigate and file bug in bugs.llvm.org:

The following

.float 1e+2

Will assert:

Assertion failed: (p != end && "Exponent has no digits"), function readExponent, file /Users/jeffbush/src/NyuziToolchain/lib/Support/APFloat.cpp, line 201.
0  clang-6.0                0x000000010d4a937c llvm::sys::PrintStackTrace(llvm::raw_ostream&) + 60
1  clang-6.0                0x000000010d4a98f9 PrintStackTraceSignalHandler(void*) + 25
2  clang-6.0                0x000000010d4a5709 llvm::sys::RunSignalHandlers() + 425
3  clang-6.0                0x000000010d4a9d72 SignalHandler(int) + 354
4  libsystem_platform.dylib 0x00007fffacf54b3a _sigtramp + 26
5  libsystem_platform.dylib 000000000000000000 _sigtramp + 1393210592
6  libsystem_c.dylib        0x00007fffacdd9420 abort + 129
7  libsystem_c.dylib        0x00007fffacda0893 basename_r + 0
8  clang-6.0                0x000000010d3284cf llvm::readExponent(char const*, char const*) + 111
9  clang-6.0                0x000000010d31986b llvm::interpretDecimal(char const*, char const*, llvm::decimalInfo*) + 619
10 clang-6.0                0x000000010d319263 llvm::detail::IEEEFloat::convertFromDecimalString(llvm::StringRef, llvm::APFloatBase::roundingMode) + 83
11 clang-6.0                0x000000010d31aa71 llvm::detail::IEEEFloat::convertFromString(llvm::StringRef, llvm::APFloatBase::roundingMode) + 913
12 clang-6.0                0x000000010d325b58 llvm::APFloat::convertFromString(llvm::StringRef, llvm::APFloatBase::roundingMode) + 104
13 clang-6.0                0x000000010cf2d8b5 (anonymous namespace)::AsmParser::parseRealValue(llvm::fltSemantics const&, llvm::APInt&) + 1557
14 clang-6.0                0x000000010cf2d204 (anonymous namespace)::AsmParser::parseDirectiveRealValue(llvm::StringRef, llvm::fltSemantics const&)::$_4::operator()() const + 84
15 clang-6.0                0x000000010cf2d1a5 bool llvm::function_ref<bool ()>::callback_fn<(anonymous namespace)::AsmParser::parseDirectiveRealValue(llvm::StringRef, llvm::fltSemantics const&)::$_4>(long) + 21
16 clang-6.0                0x000000010cf711a9 llvm::function_ref<bool ()>::operator()() const + 25
17 clang-6.0                0x000000010cf710e6 llvm::MCAsmParser::parseMany(llvm::function_ref<bool ()>, bool) + 86
18 clang-6.0                0x000000010cf0fee1 (anonymous namespace)::AsmParser::parseDirectiveRealValue(llvm::StringRef, llvm::fltSemantics const&) + 113
19 clang-6.0                0x000000010cf06d69 (anonymous namespace)::AsmParser::parseStatement((anonymous namespace)::ParseStatementInfo&, llvm::MCAsmParserSemaCallback*) + 8521
20 clang-6.0                0x000000010cefa99c (anonymous namespace)::AsmParser::Run(bool, bool) + 1484
21 clang-6.0                0x000000010bd58d12 ExecuteAssembler((anonymous namespace)::AssemblerInvocation&, clang::DiagnosticsEngine&) + 23922
22 clang-6.0                0x000000010bd4e5ac cc1as_main(llvm::ArrayRef<char const*>, char const*, void*) + 2524
23 clang-6.0                0x000000010bd35ed6 ExecuteCC1Tool(llvm::ArrayRef<char const*>, llvm::StringRef) + 1094
24 clang-6.0                0x000000010bd32f09 main + 4457
25 libdyld.dylib            0x00007fffacd45235 start + 1
jbush001 commented 5 years ago

Confirmed on stock upstream build. Filed https://bugs.llvm.org/show_bug.cgi?id=39887.