Hi Chad, The assert is gone in r143360.
Richard On Mon, October 31, 2011 19:39, Chad Rosier wrote: > This is blocking some number gathering for the upcoming LLVM Developers > Meeting. Do you have an ETA on this fix? If not soon (~1 hour), would you > mind reverting this and any other associated patches? > > Regards, > Chad > > > On Oct 31, 2011, at 10:36 AM, Chad Rosier wrote: > > >> Hey Richard, >> I have another one for you. I'm seeing the following assert: >> >> >> Assertion failed: ((E->isGLValue() || E->getType()->isFunctionType() || >> E->getType()->isVoidType() || isa<CXXTemporaryObjectExpr>(E)) && "can't >> evaluate expression as an lvalue"), function EvaluateLValue, file >> /Users/mcrosier/llvm-clean/llvm/tools/clang/lib/AST/ExprConstant.cpp, >> line 913. 0 clang 0x000000010a8fe222 _ZL15PrintStackTracePv + 34 >> 1 clang 0x000000010a8fe749 _ZL13SignalHandleri + 697 >> 2 libsystem_c.dylib 0x00007fff8d815cfa _sigtramp + 26 >> 3 libsystem_c.dylib 0x00007fff0000a63d _sigtramp + 18446744071335528797 >> 4 clang 0x000000010a8fe476 abort + 22 >> 5 clang 0x000000010a8fe435 __assert_rtn + 53 >> 6 clang 0x0000000109e331b4 >> _ZL14EvaluateLValuePKN5clang4ExprERN12_GLOBAL__N_16LValueERNS3_8EvalInfoE + >> 132 >> 7 clang 0x0000000109e37028 (anonymous >> namespace)::PointerExprEvaluator::VisitCastExpr(clang::CastExpr const*) + >> 968 >> 8 clang 0x0000000109e363c5 >> clang::StmtVisitorBase<clang::make_const_ptr, (anonymous >> namespace)::PointerExprEvaluator, bool>::Visit(clang::Stmt const*) + 1013 >> 9 clang 0x0000000109e3505c >> clang::StmtVisitorBase<clang::make_const_ptr, (anonymous >> namespace)::LValueExprEvaluator, bool>::Visit(clang::Stmt const*) + 1180 >> 10 clang 0x0000000109e331ef >> _ZL14EvaluateLValuePKN5clang4ExprERN12_GLOBAL__N_16LValueERNS3_8EvalInfoE + >> 191 >> 11 clang 0x0000000109e32400 >> _ZL8EvaluateRN12_GLOBAL__N_17CCValueERNS_8EvalInfoEPKN5clang4ExprE + 128 >> 12 clang 0x0000000109e321eb >> clang::Expr::EvaluateAsRValue(clang::Expr::EvalResult&, clang::ASTContext >> const&) const + 107 13 clang 0x000000010990010f (anonymous >> namespace)::GetExprRange(clang::ASTContext&, clang::Expr*, unsigned int) + >> 79 >> 14 clang 0x00000001098fe93e (anonymous >> namespace)::CheckImplicitConversion(clang::Sema&, clang::Expr*, >> clang::QualType, clang::SourceLocation, bool*) + 3758 >> 15 clang 0x00000001098fa78a (anonymous >> namespace)::AnalyzeImplicitConversions(clang::Sema&, clang::Expr*, >> clang::SourceLocation) + 106 >> 16 clang 0x00000001098fadf0 (anonymous >> namespace)::AnalyzeImplicitConversions(clang::Sema&, clang::Expr*, >> clang::SourceLocation) + 1744 >> 17 clang 0x0000000109a26e06 >> clang::Sema::ActOnFinishFullExpr(clang::Expr*) + 134 >> 18 clang 0x00000001098a75e8 >> clang::Parser::ParseExprStatement(clang::ParsedAttributes&) + 296 >> 19 clang 0x00000001098a6dce >> clang::Parser::ParseStatementOrDeclaration(clang::ASTOwningVector<clang::St >> mt*, 32u>&, bool) + 2142 20 clang 0x00000001098aa2f6 >> clang::Parser::ParseForStatement(clang::ParsedAttributes&) + 2982 >> 21 clang 0x00000001098a6ec6 >> clang::Parser::ParseStatementOrDeclaration(clang::ASTOwningVector<clang::St >> mt*, 32u>&, bool) + 2390 22 clang 0x00000001098ac950 >> clang::Parser::ParseCompoundStatementBody(bool) + 1344 >> 23 clang 0x00000001098a69b0 >> clang::Parser::ParseStatementOrDeclaration(clang::ASTOwningVector<clang::St >> mt*, 32u>&, bool) + 1088 24 clang 0x00000001098a8915 >> clang::Parser::ParseIfStatement(clang::ParsedAttributes&) + 533 >> 25 clang 0x00000001098a6e84 >> clang::Parser::ParseStatementOrDeclaration(clang::ASTOwningVector<clang::St >> mt*, 32u>&, bool) + 2324 26 clang 0x00000001098ac950 >> clang::Parser::ParseCompoundStatementBody(bool) + 1344 >> 27 clang 0x00000001098a69b0 >> clang::Parser::ParseStatementOrDeclaration(clang::ASTOwningVector<clang::St >> mt*, 32u>&, bool) + 1088 28 clang 0x00000001098aa2f6 >> clang::Parser::ParseForStatement(clang::ParsedAttributes&) + 2982 >> 29 clang 0x00000001098a6ec6 >> clang::Parser::ParseStatementOrDeclaration(clang::ASTOwningVector<clang::St >> mt*, 32u>&, bool) + 2390 30 clang 0x00000001098ac950 >> clang::Parser::ParseCompoundStatementBody(bool) + 1344 >> 31 clang 0x00000001098a69b0 >> clang::Parser::ParseStatementOrDeclaration(clang::ASTOwningVector<clang::St >> mt*, 32u>&, bool) + 1088 32 clang 0x00000001098aa2f6 >> clang::Parser::ParseForStatement(clang::ParsedAttributes&) + 2982 >> 33 clang 0x00000001098a6ec6 >> clang::Parser::ParseStatementOrDeclaration(clang::ASTOwningVector<clang::St >> mt*, 32u>&, bool) + 2390 34 clang 0x00000001098ac950 >> clang::Parser::ParseCompoundStatementBody(bool) + 1344 >> 35 clang 0x00000001098adfbb >> clang::Parser::ParseFunctionStatementBody(clang::Decl*, >> clang::Parser::ParseScope&) + 171 >> 36 clang 0x00000001098bb9b1 >> clang::Parser::ParseFunctionDefinition(clang::Parser::ParsingDeclarator&, >> clang::Parser::ParsedTemplateInfo const&) + 2241 >> 37 clang 0x000000010986db0c >> clang::Parser::ParseDeclGroup(clang::Parser::ParsingDeclSpec&, unsigned >> int, bool, clang::SourceLocation*, clang::Parser::ForRangeInit*) + 1020 38 >> clang 0x00000001098bab6a >> clang::Parser::ParseDeclarationOrFunctionDefinition(clang::Parser::ParsingD >> eclSpec&, clang::AccessSpecifier) + 858 39 clang >> 0x00000001098bad69 >> clang::Parser::ParseDeclarationOrFunctionDefinition(clang::ParsedAttributes >> &, clang::AccessSpecifier) + 393 >> 40 clang 0x00000001098b9d1f >> clang::Parser::ParseExternalDeclaration(clang::Parser::ParsedAttributesWith >> Range&, clang::Parser::ParsingDeclSpec*) + 3295 >> 41 clang 0x00000001098b8fc7 >> clang::Parser::ParseTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&) + >> 247 >> 42 clang 0x0000000109863abd clang::ParseAST(clang::Sema&, bool) >> + 317 >> 43 clang 0x0000000109832180 >> clang::CodeGenAction::ExecuteAction() + 1040 >> 44 clang 0x000000010963f42b >> clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) + 955 >> 45 clang 0x00000001096296a5 >> clang::ExecuteCompilerInvocation(clang::CompilerInstance*) + 2789 >> 46 clang 0x0000000109621dd3 cc1_main(char const**, char const**, >> char const*, void*) + 5267 47 clang 0x0000000109625adf main + >> 687 >> 48 clang 0x0000000109620934 start + 52 >> 49 clang 0x0000000000000045 start + 18446744069257164613 >> >> >> Here's a reduced test case: >> <joe.i> >> >> >> Reproduce with: >> clang -Os -arch i386 -c joe.i -o /dev/null >> >> Please take a moment to investigate. >> >> >> Regards, >> Chad >> >> >> >> On Oct 28, 2011, at 4:37 PM, Chad Rosier wrote: >> >> >>> No problem. Thanks for fixing promptly. >>> >>> >>> Chad >>> >>> >>> On Oct 28, 2011, at 4:30 PM, Richard Smith wrote: >>> >>> >>>> Hi Chad, >>>> >>>> >>>> Thanks for the excellent testcase! Fixed in r143250. >>>> >>> >>> _______________________________________________ >>> cfe-commits mailing list [email protected] >>> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits >>> >> > > _______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
