Open MaximPavlenko opened 11 months ago
@llvm/issue-subscribers-clang-codegen
Assertion is:
bool clang::Expr::EvaluateAsRValue(EvalResult &, const ASTContext &, bool) const: Assertion `!isValueDependent() && "Expression evaluator can't be called on a dependent expression."' failed.
Backtrace:
#5: ExprConstant.cpp:15369 clang::Expr::EvaluateAsRValue(this=0x0000621000073c88, Result=0x00007fff6e012880, Ctx=0x000062a000000200, InConstantContext=false) const
#6: CGExpr.cpp:1517 clang::CodeGen::CodeGenFunction::tryEmitAsConstant(this=0x00007fff6e3940c0, refExpr=0x0000621000073c88)
#7: CGExprScalar.cpp:506 (anonymous namespace)::ScalarExprEmitter::VisitDeclRefExpr(this=0x00007fff6dd6d240, E=0x0000621000073c88)
#8: StmtNodes.inc:1116 clang::StmtVisitorBase<std::add_pointer, (anonymous namespace)::ScalarExprEmitter, llvm::Value*>::Visit(this=0x00007fff6dd6d240, S=0x0000621000073c88)
#9: CGExprScalar.cpp:407 (anonymous namespace)::ScalarExprEmitter::Visit(this=0x00007fff6dd6d240, E=0x0000621000073c88)
#10: CGExprScalar.cpp:5099 clang::CodeGen::CodeGenFunction::EmitScalarExpr(this=0x00007fff6e3940c0, E=0x0000621000073c88, IgnoreResultAssign=true)
#11: CGExpr.cpp:208 clang::CodeGen::CodeGenFunction::EmitAnyExpr(this=0x00007fff6e3940c0, E=0x0000621000073c88, aggSlot=AggValueSlot @ 0x00007fff6df43820, ignoreResult=true)
#12: CGExpr.cpp:183 clang::CodeGen::CodeGenFunction::EmitIgnoredExpr(this=0x00007fff6e3940c0, E=0x0000621000073c88)
#13: CGStmt.cpp:124 clang::CodeGen::CodeGenFunction::EmitStmt(this=0x00007fff6e3940c0, S=0x0000621000073c88, Attrs=ArrayRef<const clang::Attr *> @ 0x00007fff6de8a320)
#14: CGStmt.cpp:542 clang::CodeGen::CodeGenFunction::EmitCompoundStmtWithoutScope(this=0x00007fff6e3940c0, S=0x0000621000073cb0, GetLast=false, AggSlot=AggValueSlot @ 0x00007fff6e012420)
#15: CodeGenFunction.cpp:1262 clang::CodeGen::CodeGenFunction::EmitFunctionBody(this=0x00007fff6e3940c0, Body=0x0000621000073cb0)
#16: CodeGenFunction.cpp:1481 clang::CodeGen::CodeGenFunction::GenerateCode(this=0x00007fff6e3940c0, GD=GlobalDecl @ 0x00007fff6e1ae020, Fn=0x000060c000000c48, FnInfo=0x0000607000003cf0)
#17: CodeGenModule.cpp:5668 clang::CodeGen::CodeGenModule::EmitGlobalFunctionDefinition(this=0x0000621000020900, GD=GlobalDecl @ 0x00007fff6e394020, GV=0x000060c000000c48)
#18: CodeGenModule.cpp:3933 clang::CodeGen::CodeGenModule::EmitGlobalDefinition(this=0x0000621000020900, GD=GlobalDecl @ 0x00007fff6e009c20, GV=0x0000000000000000)
#19: CodeGenModule.cpp:3673 clang::CodeGen::CodeGenModule::EmitGlobal(this=0x0000621000020900, GD=GlobalDecl @ 0x00007fff6e009820)
#20: CodeGenModule.cpp:6569 clang::CodeGen::CodeGenModule::EmitTopLevelDecl(this=0x0000621000020900, D=0x0000621000073b88)
#21: ModuleBuilder.cpp:190 (anonymous namespace)::CodeGeneratorImpl::HandleTopLevelDecl(this=0x000060f000000220, DG=DeclGroupRef @ 0x00007fff6dd4f020)
#22: CodeGenAction.cpp:235 clang::BackendConsumer::HandleTopLevelDecl(this=0x0000614000002840, D=DeclGroupRef @ 0x00007fff6de79020)
#23: ParseAST.cpp:167 clang::ParseAST(S=0x0000629000005200, PrintStats=false, SkipFunctionBodies=false)
#24: FrontendAction.cpp:1184 clang::ASTFrontendAction::ExecuteAction(this=0x0000611000002ac0)
#25: CodeGenAction.cpp:1207 clang::CodeGenAction::ExecuteAction(this=0x0000611000002ac0)
#26: FrontendAction.cpp:1070 clang::FrontendAction::Execute(this=0x0000611000002ac0)
#27: CompilerInstance.cpp:1051 clang::CompilerInstance::ExecuteAction(this=0x0000614000000e40, Act=0x0000611000002ac0)
#28: ExecuteCompilerInvocation.cpp:272 clang::ExecuteCompilerInvocation(Clang=0x0000614000000e40)
LLVM 17 compiler crashes with this reduced piece of code from ACE SuperTest. I also tried with older versions and it looks like it always was an issue. Compiler should generate an error, but LLVM just crashes.
Reduced testcase:
Error:
GCC produces an error, but does not crash: