Quuxplusone / LLVMBugzillaTest

0 stars 0 forks source link

Assertion in inline assembler with multiple input operands to be matched to the same output operand #14503

Open Quuxplusone opened 12 years ago

Quuxplusone commented 12 years ago
Bugzilla Link PR14483
Status NEW
Importance P normal
Reported by Alexey Bataev (a.bataev@hotmail.com)
Reported on 2012-12-02 23:47:30 -0800
Last modified on 2017-11-15 17:26:26 -0800
Version trunk
Hardware Macintosh MacOS X
CC codeman.consulting@gmail.com, echristo@gmail.com, llvm-bugs@lists.llvm.org, pawel@32bitmicro.com
Fixed by commit(s)
Attachments test-Ou6NZo.zip (713 bytes, application/octet-stream)
Blocks
Blocked by
See also
Created attachment 9632
Preprocessed source and associated run script

Assertion failed: (Verify(getFunctionType(), constraints) && "Function type not
legal for constraints!"), function InlineAsm, file
/llvm_trunk/lib/VMCore/InlineAsm.cpp, line 47.
0  clang             0x000000010d934e43 PrintStackTrace(void*) + 51
1  clang             0x000000010d9353fd SignalHandler(int) + 333
2  libsystem_c.dylib 0x00007fff915c292a _sigtramp + 26
3  libsystem_c.dylib 000000000000000000 _sigtramp + 18446603338077427440
4  clang             0x000000010d934d0f raise + 31
5  clang             0x000000010d934d40 abort + 16
6  clang             0x000000010d934e0d __assert_rtn + 189
7  clang             0x000000010d833a66
llvm::InlineAsm::InlineAsm(llvm::PointerType*, std::string const&, std::string
const&, bool, bool, llvm::InlineAsm::AsmDialect) + 332
8  clang             0x000000010d83711e llvm::ConstantCreator<llvm::InlineAsm,
llvm::PointerType, llvm::InlineAsmKeyType>::create(llvm::PointerType*,
llvm::InlineAsmKeyType const&) + 158
9  clang             0x000000010d837cb2
llvm::ConstantUniqueMap<llvm::InlineAsmKeyType, llvm::InlineAsmKeyType const&,
llvm::PointerType, llvm::InlineAsm, false>::Create(llvm::PointerType*,
llvm::InlineAsmKeyType const&,
std::_Rb_tree_iterator<std::pair<std::pair<llvm::PointerType*,
llvm::InlineAsmKeyType> const, llvm::InlineAsm*> >) + 46
10 clang             0x000000010d837edf
llvm::ConstantUniqueMap<llvm::InlineAsmKeyType, llvm::InlineAsmKeyType const&,
llvm::PointerType, llvm::InlineAsm, false>::getOrCreate(llvm::PointerType*,
llvm::InlineAsmKeyType const&) + 227
11 clang             0x000000010d833d97
llvm::InlineAsm::get(llvm::FunctionType*, llvm::StringRef, llvm::StringRef,
bool, bool, llvm::InlineAsm::AsmDialect) + 217
12 clang             0x000000010b490d50
clang::CodeGen::CodeGenFunction::EmitAsmStmt(clang::AsmStmt const&) + 7414
13 clang             0x000000010b4935ce
clang::CodeGen::CodeGenFunction::EmitStmt(clang::Stmt const*) + 1088
14 clang             0x000000010b49676e
clang::CodeGen::CodeGenFunction::EmitCompoundStmt(clang::CompoundStmt const&,
bool, clang::CodeGen::AggValueSlot) + 280
15 clang             0x000000010b49385b
clang::CodeGen::CodeGenFunction::EmitSimpleStmt(clang::Stmt const*) + 239
16 clang             0x000000010b4931f4
clang::CodeGen::CodeGenFunction::EmitStmt(clang::Stmt const*) + 102
17 clang             0x000000010b4b02c3
clang::CodeGen::CodeGenFunction::EmitFunctionBody(clang::CodeGen::FunctionArgList&)
+ 179
18 clang             0x000000010b4b27e9
clang::CodeGen::CodeGenFunction::GenerateCode(clang::GlobalDecl,
llvm::Function*, clang::CodeGen::CGFunctionInfo const&) + 1397
19 clang             0x000000010b4f7153
clang::CodeGen::CodeGenModule::EmitGlobalFunctionDefinition(clang::GlobalDecl)
+ 1171
20 clang             0x000000010b4f92f1
clang::CodeGen::CodeGenModule::EmitGlobalDefinition(clang::GlobalDecl) + 497
21 clang             0x000000010b4f973b
clang::CodeGen::CodeGenModule::EmitGlobal(clang::GlobalDecl) + 989
22 clang             0x000000010b4f9a43
clang::CodeGen::CodeGenModule::EmitTopLevelDecl(clang::Decl*) + 379
23 clang             0x000000010b51f717 (anonymous
namespace)::CodeGeneratorImpl::HandleTopLevelDecl(clang::DeclGroupRef) + 99
24 clang             0x000000010b4aae3c
clang::BackendConsumer::HandleTopLevelDecl(clang::DeclGroupRef) + 204
25 clang             0x000000010b536906 clang::ParseAST(clang::Sema&, bool,
bool) + 678
26 clang             0x000000010b13604c
clang::ASTFrontendAction::ExecuteAction() + 390
27 clang             0x000000010b4a86ce clang::CodeGenAction::ExecuteAction() +
1466
28 clang             0x000000010b13648b clang::FrontendAction::Execute() + 233
29 clang             0x000000010b100a50
clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) + 996
30 clang             0x000000010b05e784
clang::ExecuteCompilerInvocation(clang::CompilerInstance*) + 1332
31 clang             0x000000010b0511f7 cc1_main(char const**, char const**,
char const*, void*) + 919
32 clang             0x000000010b05aca3 main + 643
33 libdyld.dylib     0x00007fff8c1387e1 start + 0
34 libdyld.dylib     0x000000000000002f start + 18446603338166073422
Stack dump:
0.      Program arguments: /llvm_trunk/build/Debug+Asserts/bin/clang -cc1 -
triple x86_64-apple-macosx10.8.0 -emit-obj -mrelax-all -disable-free -main-file-
name test.c -mrelocation-model pic -pic-level 2 -mdisable-fp-elim -masm-verbose
-munwind-tables -target-cpu core2 -target-linker-version 133.3 -coverage-file
/TEST/test.o -resource-dir /llvm_trunk/build/Debug+Asserts/bin/../lib/clang/3.3
-fmodule-cache-path /var/folders/zz/zyxvpxvq6csfxvn_n01bj6140_w9h9/T/clang-
module-cache -fdebug-compilation-dir /TEST -ferror-limit 19 -fmessage-length
157 -stack-protector 1 -mstackrealign -fblocks -fobjc-runtime=macosx-10.8.0 -
fobjc-dispatch-method=mixed -fobjc-default-synthesize-properties -fencode-
extended-block-signature -fdiagnostics-show-option -fcolor-diagnostics -o
test.o -x c test.c
1.      <eof> parser at end of file
2.      test.c:1:5: LLVM IR generation of declaration 'main'
3.      test.c:1:5: Generating code for declaration 'main'
4.      test.c:2:1: LLVM IR generation of compound statement ('{}')
clang: error: unable to execute command: Illegal instruction: 4
clang: error: clang frontend command failed due to signal (use -v to see
invocation)
clang version 3.3 (trunk 168863)
Target: x86_64-apple-darwin12.0.0
Thread model: posix
clang: note: diagnostic msg: PLEASE submit a bug report to
http://llvm.org/bugs/ and include the crash backtrace, preprocessed source, and
associated run script.
clang: note: diagnostic msg:
********************

PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
Preprocessed source(s) and associated run script(s) are located at:
clang: note: diagnostic msg:
/var/folders/zz/zyxvpxvq6csfxvn_n01bj6140_w9h9/T/test-Ou6NZo.c
clang: note: diagnostic msg:
/var/folders/zz/zyxvpxvq6csfxvn_n01bj6140_w9h9/T/test-Ou6NZo.sh
clang: note: diagnostic msg:

********************

Alexey Bataev
Software Engineer
Intel Compiler Team
Intel Corp.
Quuxplusone commented 12 years ago

Attached test-Ou6NZo.zip (713 bytes, application/octet-stream): Preprocessed source and associated run script

Quuxplusone commented 7 years ago
ToT just throws an error, which seems reasonable to me given the code.

jimshinns@ubuntu:~/node_modules/security$ clang clinline.cpp
clinline.cpp:7:29: error: more than one input constraint matches the same
output '0'
           : "0" (r0), "0" (r0));
                            ^
clinline.cpp:7:19: note: constraint '0' is already present here
           : "0" (r0), "0" (r0));
                  ^
1 error generated.