https://llvm.org/bugs/show_bug.cgi?id=27014
Bug ID: 27014 Summary: Clang crashes on simple testcase with syntax and sema errors Product: clang Version: trunk Hardware: All OS: All Status: NEW Severity: normal Priority: P Component: Frontend Assignee: unassignedclangb...@nondot.org Reporter: zinovy....@gmail.com CC: llvm-bugs@lists.llvm.org Classification: Unclassified Clang reports internal error on this (incorrect) code. GCC just prints compilation error as expected: $ clang -v clang version 3.9.0 Target: x86_64-unknown-linux-gnu $ cat test.c typedef double F64; typedef UL unsigned long; // THIS TYPO causes clang to crash void test(UL a, UL b). { UL c = a; for(i = 0; i < c/sizeof(F64); i++) c += 1; // "i" is also undeclared. } $ clang -c test.c test.c:2:9: error: unknown type name 'UL' typedef UL unsigned long; // THIS TYPO causes clang to crash ^ test.c:2:12: error: expected identifier or '(' typedef UL unsigned long; // THIS TYPO causes clang to crash ^ test.c:4:11: error: unknown type name 'UL' void test(UL a, UL b) ^ test.c:4:17: error: unknown type name 'UL' void test(UL a, UL b) ^ test.c:6:5: error: use of undeclared identifier 'UL' UL c = a; ^ test.c:7:13: error: use of undeclared identifier 'i' for(i = 0; i < c/sizeof(F64); i++) c += 1; // "i" is also undeclared. ^ test.c:7:24: error: use of undeclared identifier 'c' for(i = 0; i < c/sizeof(F64); i++) c += 1; // "i" is also undeclared. ^ clang-3.9: llvm/llvm/tools/clang/lib/Sema/SemaLookup.cpp:5032: const clang::Sema::TypoExprState& clang::Sema::getTypoExprState(clang::TypoExpr*) const: Assertion `Entry != DelayedTypos.end() && "Failed to get the state for a TypoExpr!"' failed. 0 clang-3.9 0x000000000131f2f5 llvm::sys::PrintStackTrace(llvm::raw_ostream&) + 37 1 clang-3.9 0x000000000131d0a6 llvm::sys::RunSignalHandlers() + 54 2 clang-3.9 0x000000000131d2d1 3 libpthread.so.0 0x00007f53d7336130 4 libc.so.6 0x00007f53d65665d7 gsignal + 55 5 libc.so.6 0x00007f53d6567cc8 abort + 328 6 libc.so.6 0x00007f53d655f546 7 libc.so.6 0x00007f53d655f5f2 8 clang-3.9 0x00000000022947a9 clang::Sema::getTypoExprState(clang::TypoExpr*) const + 153 9 clang-3.9 0x0000000002229007 10 clang-3.9 0x00000000022298c9 11 clang-3.9 0x000000000222662c clang::Sema::CorrectDelayedTyposInExpr(clang::Expr*, clang::VarDecl*, llvm::function_ref<clang::ActionResult<clang::Expr*, true> (clang::Expr*)>) + 716 12 clang-3.9 0x0000000001e741cc clang::Parser::ParseRHSOfBinaryExpression(clang::ActionResult<clang::Expr*, true>, clang::prec::Level) + 3404 13 clang-3.9 0x0000000001e73902 clang::Parser::ParseRHSOfBinaryExpression(clang::ActionResult<clang::Expr*, true>, clang::prec::Level) + 1154 14 clang-3.9 0x0000000001e733f9 clang::Parser::ParseAssignmentExpression(clang::Parser::TypeCastState) + 57 15 clang-3.9 0x0000000001e73469 clang::Parser::ParseExpression(clang::Parser::TypeCastState) + 9 16 clang-3.9 0x0000000001ea9ab8 clang::Parser::ParseForStatement(clang::SourceLocation*) + 2488 17 clang-3.9 0x0000000001ea6ebb clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::AllowedContsructsKind, clang::SourceLocation*, clang::Parser::ParsedAttributesWithRange&) + 1083 18 clang-3.9 0x0000000001ea766d clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::AllowedContsructsKind, clang::SourceLocation*) + 125 19 clang-3.9 0x0000000001eaa8c9 clang::Parser::ParseCompoundStatementBody(bool) + 1641 20 clang-3.9 0x0000000001ead0a8 clang::Parser::ParseFunctionStatementBody(clang::Decl*, clang::Parser::ParseScope&) + 216 21 clang-3.9 0x0000000001e3bbb5 clang::Parser::ParseFunctionDefinition(clang::ParsingDeclarator&, clang::Parser::ParsedTemplateInfo const&, clang::Parser::LateParsedAttrList*) + 1173 22 clang-3.9 0x0000000001e5d820 clang::Parser::ParseDeclGroup(clang::ParsingDeclSpec&, unsigned int, clang::SourceLocation*, clang::Parser::ForRangeInit*) + 3072 23 clang-3.9 0x0000000001e38e52 clang::Parser::ParseDeclOrFunctionDefInternal(clang::Parser::ParsedAttributesWithRange&, clang::ParsingDeclSpec&, clang::AccessSpecifier) + 274 24 clang-3.9 0x0000000001e394ee clang::Parser::ParseDeclarationOrFunctionDefinition(clang::Parser::ParsedAttributesWithRange&, clang::ParsingDeclSpec*, clang::AccessSpecifier) + 942 25 clang-3.9 0x0000000001e3ceaf clang::Parser::ParseExternalDeclaration(clang::Parser::ParsedAttributesWithRange&, clang::ParsingDeclSpec*) + 255 26 clang-3.9 0x0000000001e3d680 clang::Parser::ParseTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&) + 384 27 clang-3.9 0x0000000001e36583 clang::ParseAST(clang::Sema&, bool, bool) + 371 28 clang-3.9 0x0000000001a2e0eb clang::CodeGenAction::ExecuteAction() + 59 29 clang-3.9 0x000000000176bc26 clang::FrontendAction::Execute() + 534 30 clang-3.9 0x000000000174755e clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) + 318 31 clang-3.9 0x00000000017ff69c clang::ExecuteCompilerInvocation(clang::CompilerInstance*) + 2300 32 clang-3.9 0x0000000000707b28 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) + 2104 33 clang-3.9 0x00000000006d36db main + 6171 34 libc.so.6 0x00007f53d6552af5 __libc_start_main + 245 35 clang-3.9 0x0000000000703b65 ... -- You are receiving this mail because: You are on the CC list for the bug.
_______________________________________________ llvm-bugs mailing list llvm-bugs@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs