[llvm-bugs] [Bug 48528] New: __builtin_va_start assumes it can pass SSE registers when using -Xclang -msoft-float -Xclang -no-implicit-float, causing assertion errors
via llvm-bugs
llvm-bugs at lists.llvm.org
Tue Dec 15 16:42:40 PST 2020
https://bugs.llvm.org/show_bug.cgi?id=48528
Bug ID: 48528
Summary: __builtin_va_start assumes it can pass SSE registers
when using -Xclang -msoft-float -Xclang
-no-implicit-float, causing assertion errors
Product: new-bugs
Version: 11.0
Hardware: PC
OS: Linux
Status: NEW
Severity: enhancement
Priority: P
Component: new bugs
Assignee: unassignedbugs at nondot.org
Reporter: bero at lindev.ch
CC: htmldeveloper at gmail.com, llvm-bugs at lists.llvm.org
$ cat test.c
a(*b, ...) { __builtin_va_start(a, b); }
$ clang -Xclang -msoft-float -Xclang -no-implicit-float -o test.o -c test.c
[ ... a few obvious warnings ... ]
clang:
/builddir/build/BUILD/llvm-project-release-11.x/llvm/lib/Target/X86/X86ISelLowering.cpp:3398:
void (anonymous
namespace)::VarArgsLoweringHelper::createVarArgAreaAndStoreRegisters(llvm::SDValue
&, unsigned int): Assertion `!(Subtarget.useSoftFloat() &&
TheFunction.hasFnAttribute(Attribute::NoImplicitFloat)) && "SSE register cannot
be used when SSE is disabled!"' failed.
PLEASE submit a bug report to https://bugs.llvm.org/ and include the crash
backtrace, preprocessed source, and associated run script.
Stack dump:
0. Program arguments: clang -Xclang -msoft-float -Xclang
-no-implicit-float -o test.o -c test.c
1. <eof> parser at end of file
2. Code generation
3. Running pass 'Function Pass Manager' on module 'test.c'.
4. Running pass 'X86 DAG->DAG Instruction Selection' on function '@a'
#0 0x00007f72625be6e2 (/usr/lib64/libLLVMSupport.so.11.0+0x2406e2)
#1 0x00007f72625bc03a llvm::sys::RunSignalHandlers()
(/usr/lib64/libLLVMSupport.so.11.0+0x23e03a)
#2 0x00007f72625bd680 llvm::sys::CleanupOnSignal(unsigned long)
(/usr/lib64/libLLVMSupport.so.11.0+0x23f680)
#3 0x00007f72624c22f5 (/usr/lib64/libLLVMSupport.so.11.0+0x1442f5)
#4 0x00007f72624c24b3 (/usr/lib64/libLLVMSupport.so.11.0+0x1444b3)
#5 0x00007f7261fef0f0 __restore_rt (/lib64/libc.so.6+0x410f0)
#6 0x00007f7261fef06f raise (/lib64/libc.so.6+0x4106f)
#7 0x00007f7261fd4538 abort (/lib64/libc.so.6+0x26538)
#8 0x00007f7261fd4421 _nl_load_domain.cold (/lib64/libc.so.6+0x26421)
#9 0x00007f7261fe63b2 (/lib64/libc.so.6+0x383b2)
#10 0x00007f7266fa90d4
llvm::X86TargetLowering::LowerFormalArguments(llvm::SDValue, unsigned int,
bool, llvm::SmallVectorImpl<llvm::ISD::InputArg> const&, llvm::SDLoc const&,
llvm::SelectionDAG&, llvm::SmallVectorImpl<llvm::SDValue>&) const
(/usr/lib64/libLLVMX86CodeGen.so.11.0+0x31b0d4)
#11 0x00007f7261c2a8e4 llvm::SelectionDAGISel::LowerArguments(llvm::Function
const&) (/usr/lib64/libLLVMSelectionDAG.so.11.0+0x2f78e4)
#12 0x00007f7261c913f3
llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&)
(/usr/lib64/libLLVMSelectionDAG.so.11.0+0x35e3f3)
#13 0x00007f7261c8f371
llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&)
(/usr/lib64/libLLVMSelectionDAG.so.11.0+0x35c371)
#14 0x00007f7266f78757 (/usr/lib64/libLLVMX86CodeGen.so.11.0+0x2ea757)
#15 0x00007f726538197c
llvm::MachineFunctionPass::runOnFunction(llvm::Function&)
(/usr/lib64/libLLVMCodeGen.so.11.0+0x4cf97c)
#16 0x00007f7262aca22d llvm::FPPassManager::runOnFunction(llvm::Function&)
(/usr/lib64/libLLVMCore.so.11.0+0x3cc22d)
#17 0x00007f7262ad28f3 llvm::FPPassManager::runOnModule(llvm::Module&)
(/usr/lib64/libLLVMCore.so.11.0+0x3d48f3)
#18 0x00007f7262acaec6 llvm::legacy::PassManagerImpl::run(llvm::Module&)
(/usr/lib64/libLLVMCore.so.11.0+0x3ccec6)
#19 0x00007f7262ad2e17 llvm::legacy::PassManager::run(llvm::Module&)
(/usr/lib64/libLLVMCore.so.11.0+0x3d4e17)
#20 0x00007f7265a53424 (/usr/lib64/libclangCodeGen.so.11.0+0x2cc424)
#21 0x00007f7265a4a7cd clang::EmitBackendOutput(clang::DiagnosticsEngine&,
clang::HeaderSearchOptions const&, clang::CodeGenOptions const&,
clang::TargetOptions const&, clang::LangOptions const&, llvm::DataLayout
const&, llvm::Module*, clang::BackendAction,
std::unique_ptr<llvm::raw_pwrite_stream,
std::default_delete<llvm::raw_pwrite_stream> >)
(/usr/lib64/libclangCodeGen.so.11.0+0x2c37cd)
#22 0x00007f7265db4a92 (/usr/lib64/libclangCodeGen.so.11.0+0x62da92)
#23 0x00007f725feb5b16 clang::ParseAST(clang::Sema&, bool, bool)
(/usr/lib64/libclangParse.so.11.0+0x70b16)
#24 0x00007f726411e09f clang::ASTFrontendAction::ExecuteAction()
(/usr/lib64/libclangFrontend.so.11.0+0x18709f)
#25 0x00007f7265dafcf5 clang::CodeGenAction::ExecuteAction()
(/usr/lib64/libclangCodeGen.so.11.0+0x628cf5)
#26 0x00007f726411d786 clang::FrontendAction::Execute()
(/usr/lib64/libclangFrontend.so.11.0+0x186786)
#27 0x00007f72640a3e8a
clang::CompilerInstance::ExecuteAction(clang::FrontendAction&)
(/usr/lib64/libclangFrontend.so.11.0+0x10ce8a)
#28 0x00007f726684b87d
clang::ExecuteCompilerInvocation(clang::CompilerInstance*)
(/usr/lib64/libclangFrontendTool.so.11.0+0x587d)
#29 0x0000000000218bc9 cc1_main(llvm::ArrayRef<char const*>, char const*,
void*) (/usr/bin/clang-11+0x218bc9)
#30 0x00000000002169bf (/usr/bin/clang-11+0x2169bf)
#31 0x00007f7263e03dd4 (/usr/lib64/libclangDriver.so.11.0+0x105dd4)
#32 0x00007f72624c21da
llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>)
(/usr/lib64/libLLVMSupport.so.11.0+0x1441da)
#33 0x00007f7263e02fc6
clang::driver::CC1Command::Execute(llvm::ArrayRef<llvm::Optional<llvm::StringRef>
>, std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char> >*, bool*) const
(/usr/lib64/libclangDriver.so.11.0+0x104fc6)
#34 0x00007f7263dcbf1c
clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&,
clang::driver::Command const*&) const
(/usr/lib64/libclangDriver.so.11.0+0xcdf1c)
#35 0x00007f7263dcc3ea
clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&,
llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*> >&) const
(/usr/lib64/libclangDriver.so.11.0+0xce3ea)
#36 0x00007f7263de65b7
clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&,
llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*> >&)
(/usr/lib64/libclangDriver.so.11.0+0xe85b7)
#37 0x0000000000215c0c main (/usr/bin/clang-11+0x215c0c)
#38 0x00007f7261fd6d7a __libc_start_main (/lib64/libc.so.6+0x28d7a)
#39 0x00000000002125da _start (/usr/bin/clang-11+0x2125da)
clang-11: error: clang frontend command failed due to signal (use -v to see
invocation)
OpenMandriva 11.0.1-0.20201127.1 clang version 11.0.1
(/builddir/build/BUILD/llvm-project-release-11.x/clang
00c5bcdb26c8723dd17c9abcab84d1a9256de7cc)
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
--
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20201216/e1f435fb/attachment-0001.html>
More information about the llvm-bugs
mailing list