Open Quuxplusone opened 4 years ago
Bugzilla Link | PR46557 |
Status | CONFIRMED |
Importance | P enhancement |
Reported by | Dimitry Andric (dimitry@andric.com) |
Reported on | 2020-07-02 06:50:13 -0700 |
Last modified on | 2021-11-08 04:58:49 -0800 |
Version | trunk |
Hardware | PC All |
CC | htmldeveloper@gmail.com, llvm-bugs@lists.llvm.org, neeilans@live.com, richard-llvm@metafoo.co.uk, spatel+llvm@rotateright.com |
Fixed by commit(s) | |
Attachments | |
Blocks | |
Blocked by | |
See also |
This is coming from clang (front-end) codegen; backtrace:
9 clang 0x00000001133734d3
llvm::PHINode::addIncoming(llvm::Value*, llvm::BasicBlock*) (.cold.6) + 35
10 clang 0x000000010fe079bb
llvm::PHINode::addIncoming(llvm::Value*, llvm::BasicBlock*) + 315
11 clang 0x00000001106e8a57 (anonymous
namespace)::ScalarExprEmitter::VisitAbstractConditionalOperator(clang::AbstractConditionalOperator
const*) + 3079
12 clang 0x00000001106d560b
clang::CodeGen::CodeGenFunction::EmitScalarExpr(clang::Expr const*, bool) + 107
13 clang 0x000000011068f6c2
clang::CodeGen::CodeGenFunction::EmitAnyExpr(clang::Expr const*,
clang::CodeGen::AggValueSlot, bool) + 66
14 clang 0x000000011068f66c
clang::CodeGen::CodeGenFunction::EmitIgnoredExpr(clang::Expr const*) + 92
15 clang 0x00000001107d4c56
clang::CodeGen::CodeGenFunction::EmitStmt(clang::Stmt const*,
llvm::ArrayRef<clang::Attr const*>) + 294
16 clang 0x00000001107de261
clang::CodeGen::CodeGenFunction::EmitCompoundStmtWithoutScope(clang::CompoundStmt
const&, bool, clang::CodeGen::AggValueSlot) + 593
17 clang 0x00000001107dd54a
clang::CodeGen::CodeGenFunction::EmitCompoundStmt(clang::CompoundStmt const&,
bool, clang::CodeGen::AggValueSlot) + 330
18 clang 0x00000001107d56da
clang::CodeGen::CodeGenFunction::EmitSimpleStmt(clang::Stmt const*) + 154
19 clang 0x00000001107d4b82
clang::CodeGen::CodeGenFunction::EmitStmt(clang::Stmt const*,
llvm::ArrayRef<clang::Attr const*>) + 82
20 clang 0x00000001106402f2
clang::CodeGen::CodeGenFunction::EmitConstructorBody(clang::CodeGen::FunctionArgList&)
+ 610
21 clang 0x000000011082e5da
clang::CodeGen::CodeGenFunction::GenerateCode(clang::GlobalDecl,
llvm::Function*, clang::CodeGen::CGFunctionInfo const&) + 1002
Note that in the mean time, the assertion changed to:
Assertion failed: (!areInvalidOperands(C, S1, S2) && "Invalid operands for
select"), function init, file /home/dim/src/llvm/llvm-
project/llvm/include/llvm/IR/Instructions.h, line 1768.
Program received signal SIGABRT, Aborted.
Sent by thr_kill() from pid 66194 and user 1236.
thr_kill () at thr_kill.S:4
4 thr_kill.S: No such file or directory.
(gdb) bt
#0 thr_kill () at thr_kill.S:4
#1 0x0000000806309544 in __raise (s=s@entry=6) at
/usr/src/lib/libc/gen/raise.c:52
#2 0x00000008063be6a9 in abort () at /usr/src/lib/libc/stdlib/abort.c:67
#3 0x00000008062ec461 in __assert (func=<optimized out>, file=<optimized out>,
line=<optimized out>, failedexpr=<optimized out>) at
/usr/src/lib/libc/gen/assert.c:51
#4 0x0000000001fdb7a5 in llvm::SelectInst::init(llvm::Value*, llvm::Value*,
llvm::Value*) ()
#5 0x0000000002e4b43d in llvm::IRBuilderBase::CreateSelect(llvm::Value*,
llvm::Value*, llvm::Value*, llvm::Twine const&, llvm::Instruction*) ()
#6 0x0000000003bdecd8 in (anonymous
namespace)::ScalarExprEmitter::VisitAbstractConditionalOperator(clang::AbstractConditionalOperator
const*) ()
#7 0x0000000003bcaeeb in
clang::CodeGen::CodeGenFunction::EmitScalarExpr(clang::Expr const*, bool) ()
#8 0x0000000003b1b692 in
clang::CodeGen::CodeGenFunction::EmitAnyExpr(clang::Expr const*,
clang::CodeGen::AggValueSlot, bool) ()
#9 0x0000000003b1b639 in
clang::CodeGen::CodeGenFunction::EmitIgnoredExpr(clang::Expr const*) ()
#10 0x0000000003beb9fa in clang::CodeGen::CodeGenFunction::EmitStmt(clang::Stmt
const*, llvm::ArrayRef<clang::Attr const*>) ()
#11 0x0000000003bf6911 in
clang::CodeGen::CodeGenFunction::EmitCompoundStmtWithoutScope(clang::CompoundStmt
const&, bool, clang::CodeGen::AggValueSlot) ()
#12 0x0000000003bf5951 in
clang::CodeGen::CodeGenFunction::EmitCompoundStmt(clang::CompoundStmt const&,
bool, clang::CodeGen::AggValueSlot) ()
#13 0x0000000003bec16d in
clang::CodeGen::CodeGenFunction::EmitSimpleStmt(clang::Stmt const*,
llvm::ArrayRef<clang::Attr const*>) ()
#14 0x0000000003beb91e in clang::CodeGen::CodeGenFunction::EmitStmt(clang::Stmt
const*, llvm::ArrayRef<clang::Attr const*>) ()
#15 0x0000000003c56c05 in
clang::CodeGen::CodeGenFunction::EmitConstructorBody(clang::CodeGen::FunctionArgList&)
()
#16 0x0000000003b0b337 in
clang::CodeGen::CodeGenFunction::GenerateCode(clang::GlobalDecl,
llvm::Function*, clang::CodeGen::CGFunctionInfo const&) ()
#17 0x0000000003bb46f0 in
clang::CodeGen::CodeGenModule::codegenCXXStructor(clang::GlobalDecl) ()
#18 0x0000000003dd4a51 in (anonymous
namespace)::ItaniumCXXABI::emitCXXStructor(clang::GlobalDecl) ()
#19 0x0000000003a93fd0 in
clang::CodeGen::CodeGenModule::EmitGlobalDefinition(clang::GlobalDecl,
llvm::GlobalValue*) ()
#20 0x0000000003a874c0 in clang::CodeGen::CodeGenModule::EmitDeferred() ()
#21 0x0000000003a874ec in clang::CodeGen::CodeGenModule::EmitDeferred() ()
#22 0x0000000003a85dbc in clang::CodeGen::CodeGenModule::Release() ()
#23 0x0000000004151424 in (anonymous
namespace)::CodeGeneratorImpl::HandleTranslationUnit(clang::ASTContext&) ()
#24 0x000000000414e769 in
clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) ()
#25 0x00000000049a8d03 in clang::ParseAST(clang::Sema&, bool, bool) ()
#26 0x0000000004094563 in clang::FrontendAction::Execute() ()
#27 0x000000000401ffe9 in
clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) ()
#28 0x00000000041481a1 in
clang::ExecuteCompilerInvocation(clang::CompilerInstance*) ()
#29 0x0000000001bf9b62 in cc1_main(llvm::ArrayRef<char const*>, char const*,
void*) ()
#30 0x0000000001bf7407 in ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&) ()
#31 0x0000000001bf719a in main ()
It changed between clang 11 and 12, with commit https://github.com/llvm/llvm-
project/commit/038edf6029bafe70b1f7165abe2b0e61ddf506b3 ("Don't reject uses of
void-returning consteval functions").