As reported in https://bugs.freebsd.org/199450, clang crashes with the following assertion failure in SpiderMonkey's FoldConstants.cpp file, when compiled for the armv6--freebsd11.0-gnueabihf target: Assertion failed: ((PartVT.isInteger() || PartVT == MVT::x86mmx) && ValueVT.isInteger() && "Unknown mismatch!"), function getCopyToParts, file /share/dim/src/llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp, line 399. This also reproduces with clang trunk r234702. Reduced test case is: ====================================================================== a, b, c, d; double e; fn1() { asm("" : "=r"(a), "=&r"(b), "=&r"(c), "=&r"(d), "=&r"(e) : "4"(e)); } ====================================================================== Compile with: clang -cc1 -triple armv6 -emit-obj -target-cpu arm1176jzf-s testcase.c Note: the target-cpu setting is essential to trigger this assert.
Mark this as a dupe of 23244, which has a nicer description. *** This bug has been marked as a duplicate of bug 23244 ***