{"action":"closed","issue":{"url":"https://api.github.com/repos/Ericsson/clang/issues/282","repository_url":"https://api.github.com/repos/Ericsson/clang","labels_url":"https://api.github.com/repos/Ericsson/clang/issues/282/labels{/name}","comments_url":"https://api.github.com/repos/Ericsson/clang/issues/282/comments","events_url":"https://api.github.com/repos/Ericsson/clang/issues/282/events","html_url":"https://github.com/Ericsson/clang/issues/282","id":294423199,"number":282,"title":"AST merge of recursive function","user":{"login":"balazske","id":35729694,"avatar_url":"https://avatars0.githubusercontent.com/u/35729694?v=4","gravatar_id":"","url":"https://api.github.com/users/balazske","html_url":"https://github.com/balazske","followers_url":"https://api.github.com/users/balazske/followers","following_url":"https://api.github.com/users/balazske/following{/other_user}","gists_url":"https://api.github.com/users/balazske/gists{/gist_id}","starred_url":"https://api.github.com/users/balazske/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/balazske/subscriptions","organizations_url":"https://api.github.com/users/balazske/orgs","repos_url":"https://api.github.com/users/balazske/repos","events_url":"https://api.github.com/users/balazske/events{/privacy}","received_events_url":"https://api.github.com/users/balazske/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":{"login":"martong","id":5887427,"avatar_url":"https://avatars0.githubusercontent.com/u/5887427?v=4","gravatar_id":"","url":"https://api.github.com/users/martong","html_url":"https://github.com/martong","followers_url":"https://api.github.com/users/martong/followers","following_url":"https://api.github.com/users/martong/following{/other_user}","gists_url":"https://api.github.com/users/martong/gists{/gist_id}","starred_url":"https://api.github.com/users/martong/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/martong/subscriptions","organizations_url":"https://api.github.com/users/martong/orgs","repos_url":"https://api.github.com/users/martong/repos","events_url":"https://api.github.com/users/martong/events{/privacy}","received_events_url":"https://api.github.com/users/martong/received_events","type":"User","site_admin":false},"assignees":[{"login":"martong","id":5887427,"avatar_url":"https://avatars0.githubusercontent.com/u/5887427?v=4","gravatar_id":"","url":"https://api.github.com/users/martong","html_url":"https://github.com/martong","followers_url":"https://api.github.com/users/martong/followers","following_url":"https://api.github.com/users/martong/following{/other_user}","gists_url":"https://api.github.com/users/martong/gists{/gist_id}","starred_url":"https://api.github.com/users/martong/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/martong/subscriptions","organizations_url":"https://api.github.com/users/martong/orgs","repos_url":"https://api.github.com/users/martong/repos","events_url":"https://api.github.com/users/martong/events{/privacy}","received_events_url":"https://api.github.com/users/martong/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/Ericsson/clang/milestones/45","html_url":"https://github.com/Ericsson/clang/milestone/45","labels_url":"https://api.github.com/repos/Ericsson/clang/milestones/45/labels","id":3143130,"number":45,"title":"March 5","description":null,"creator":{"login":"dkrupp","id":8030953,"avatar_url":"https://avatars3.githubusercontent.com/u/8030953?v=4","gravatar_id":"","url":"https://api.github.com/users/dkrupp","html_url":"https://github.com/dkrupp","followers_url":"https://api.github.com/users/dkrupp/followers","following_url":"https://api.github.com/users/dkrupp/following{/other_user}","gists_url":"https://api.github.com/users/dkrupp/gists{/gist_id}","starred_url":"https://api.github.com/users/dkrupp/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dkrupp/subscriptions","organizations_url":"https://api.github.com/users/dkrupp/orgs","repos_url":"https://api.github.com/users/dkrupp/repos","events_url":"https://api.github.com/users/dkrupp/events{/privacy}","received_events_url":"https://api.github.com/users/dkrupp/received_events","type":"User","site_admin":false},"open_issues":11,"closed_issues":2,"state":"open","created_at":"2018-02-26T10:16:35Z","updated_at":"2018-03-01T14:47:05Z","due_on":null,"closed_at":null},"comments":3,"created_at":"2018-02-05T15:01:48Z","updated_at":"2018-03-01T14:47:05Z","closed_at":"2018-03-01T14:47:05Z","author_association":"COLLABORATOR","body":"file `recursive.h`:\r\n```\r\n#pragma once\r\nvoid recursive_function();\r\n```\r\n\r\nfile `recursive.cpp`:\r\n```\r\n#include \"recursive.h\"\r\nvoid recursive_function() {\r\n\trecursive_function();\r\n}\r\n```\r\n\r\nfile `root.cpp`:\r\n```\r\n#include \"recursive.h\"\r\nvoid root() {\r\n\trecursive_function();\r\n}\r\n\r\n```\r\nfollowing commands produce the crash below:\r\n\r\n`clang -cc1 -emit-pch -o recursive.ast recursive.cpp`\r\n`clang -cc1 -ast-merge recursive.ast -fsyntax-only root.cpp`\r\n```\r\nUnsortable locations found\r\nUNREACHABLE executed at llvm/tools/clang/lib/Basic/SourceManager.cpp:2057!\r\n#0 0x00007f7753a64fd9 llvm::sys::PrintStackTrace(llvm::raw_ostream&) llvm/lib/Support/Unix/Signals.inc:398:0\r\n#1 0x00007f7753a6506a PrintStackTraceSignalHandler(void*) llvm/lib/Support/Unix/Signals.inc:462:0\r\n#2 0x00007f7753a634b0 llvm::sys::RunSignalHandlers() llvm/lib/Support/Signals.cpp:49:0\r\n#3 0x00007f7753a64971 SignalHandler(int) llvm/lib/Support/Unix/Signals.inc:252:0\r\n#4 0x00007f775037dcb0 (/lib/x86_64-linux-gnu/libc.so.6+0x36cb0)\r\n#5 0x00007f775037dc37 gsignal /build/eglibc-ripdx6/eglibc-2.19/signal/../nptl/sysdeps/unix/sysv/linux/raise.c:56:0\r\n#6 0x00007f7750381028 abort /build/eglibc-ripdx6/eglibc-2.19/stdlib/abort.c:91:0\r\n#7 0x00007f77539a9331 bindingsErrorHandler(void*, std::string const&, bool) llvm/lib/Support/ErrorHandling.cpp:198:0\r\n#8 0x00007f77528fd24e clang::SourceManager::isBeforeInTranslationUnit(clang::SourceLocation, clang::SourceLocation) const llvm/tools/clang/lib/Basic/SourceManager.cpp:2058:0\r\n#9 0x00007f774924bd4e (anonymous namespace)::CompareOverloadCandidatesForDisplay::operator()(clang::OverloadCandidate const*, clang::OverloadCandidate const*) llvm/tools/clang/lib/Sema/SemaOverload.cpp:10340:0\r\n#10 0x00007f774925dd2c void std::__insertion_sort<clang::OverloadCandidate**, (anonymous namespace)::CompareOverloadCandidatesForDisplay>(clang::OverloadCandidate**, clang::OverloadCandidate**, (anonymous namespace)::CompareOverloadCandidatesForDisplay) /usr/include/c++/4.8/bits/stl_algo.h:2159:0\r\n#11 0x00007f774925cf16 void std::__final_insertion_sort<clang::OverloadCandidate**, (anonymous namespace)::CompareOverloadCandidatesForDisplay>(clang::OverloadCandidate**, clang::OverloadCandidate**, (anonymous namespace)::CompareOverloadCandidatesForDisplay) /usr/include/c++/4.8/bits/stl_algo.h:2232:0\r\n#12 0x00007f774925c448 void std::sort<clang::OverloadCandidate**, (anonymous namespace)::CompareOverloadCandidatesForDisplay>(clang::OverloadCandidate**, clang::OverloadCandidate**, (anonymous namespace)::CompareOverloadCandidatesForDisplay) /usr/include/c++/4.8/bits/stl_algo.h:5502:0\r\n#13 0x00007f774924c54d clang::OverloadCandidateSet::NoteCandidates(clang::Sema&, clang::OverloadCandidateDisplayKind, llvm::ArrayRef<clang::Expr*>, llvm::StringRef, clang::SourceLocation, llvm::function_ref<bool (clang::OverloadCandidate&)>) llvm/tools/clang/lib/Sema/SemaOverload.cpp:10452:0\r\n#14 0x00007f7749251bfa FinishOverloadedCallExpr(clang::Sema&, clang::Scope*, clang::Expr*, clang::UnresolvedLookupExpr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::Expr*, clang::OverloadCandidateSet*, clang::OverloadCandidate**, clang::OverloadingResult, bool) llvm/tools/clang/lib/Sema/SemaOverload.cpp:11787:0\r\n#15 0x00007f77492520a6 clang::Sema::BuildOverloadedCallExpr(clang::Scope*, clang::Expr*, clang::UnresolvedLookupExpr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::Expr*, bool, bool) llvm/tools/clang/lib/Sema/SemaOverload.cpp:11855:0\r\n#16 0x00007f7748f5eb86 clang::Sema::ActOnCallExpr(clang::Scope*, clang::Expr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::Expr*, bool) llvm/tools/clang/lib/Sema/SemaExpr.cpp:5190:0\r\n#17 0x00007f7749f4568b clang::Parser::ParsePostfixExpressionSuffix(clang::ActionResult<clang::Expr*, true>) llvm/tools/clang/lib/Parse/ParseExpr.cpp:1664:0\r\n#18 0x00007f7749f442d8 clang::Parser::ParseCastExpression(bool, bool, bool&, clang::Parser::TypeCastState, bool) llvm/tools/clang/lib/Parse/ParseExpr.cpp:1429:0\r\n#19 0x00007f7749f3ff8a clang::Parser::ParseCastExpression(bool, bool, clang::Parser::TypeCastState, bool) llvm/tools/clang/lib/Parse/ParseExpr.cpp:525:0\r\n#20 0x00007f7749f3ea88 clang::Parser::ParseAssignmentExpression(clang::Parser::TypeCastState) llvm/tools/clang/lib/Parse/ParseExpr.cpp:170:0\r\n#21 0x00007f7749f3e880 clang::Parser::ParseExpression(clang::Parser::TypeCastState) llvm/tools/clang/lib/Parse/ParseExpr.cpp:120:0\r\n#22 0x00007f7749f99d58 clang::Parser::ParseExprStatement() llvm/tools/clang/lib/Parse/ParseStmt.cpp:413:0\r\n#23 0x00007f7749f9954d clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::AllowedConstructsKind, clang::SourceLocation*, clang::Parser::ParsedAttributesWithRange&) llvm/tools/clang/lib/Parse/ParseStmt.cpp:224:0\r\n#24 0x00007f7749f98f06 clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::AllowedConstructsKind, clang::SourceLocation*) llvm/tools/clang/lib/Parse/ParseStmt.cpp:111:0\r\n#25 0x00007f7749f9bfc9 clang::Parser::ParseCompoundStatementBody(bool) llvm/tools/clang/lib/Parse/ParseStmt.cpp:1001:0\r\n#26 0x00007f7749f9f6f6 clang::Parser::ParseFunctionStatementBody(clang::Decl*, clang::Parser::ParseScope&) llvm/tools/clang/lib/Parse/ParseStmt.cpp:1967:0\r\n#27 0x00007f7749fbd28b clang::Parser::ParseFunctionDefinition(clang::ParsingDeclarator&, clang::Parser::ParsedTemplateInfo const&, clang::Parser::LateParsedAttrList*) llvm/tools/clang/lib/Parse/Parser.cpp:1212:0\r\n#28 0x00007f7749ef7db1 clang::Parser::ParseDeclGroup(clang::ParsingDeclSpec&, unsigned int, clang::SourceLocation*, clang::Parser::ForRangeInit*) llvm/tools/clang/lib/Parse/ParseDecl.cpp:1953:0\r\n#29 0x00007f7749fbc288 clang::Parser::ParseDeclOrFunctionDefInternal(clang::Parser::ParsedAttributesWithRange&, clang::ParsingDeclSpec&, clang::AccessSpecifier) llvm/tools/clang/lib/Parse/Parser.cpp:980:0\r\n#30 0x00007f7749fbc34d clang::Parser::ParseDeclarationOrFunctionDefinition(clang::Parser::ParsedAttributesWithRange&, clang::ParsingDeclSpec*, clang::AccessSpecifier) llvm/tools/clang/lib/Parse/Parser.cpp:995:0\r\n#31 0x00007f7749fbbaa4 clang::Parser::ParseExternalDeclaration(clang::Parser::ParsedAttributesWithRange&, clang::ParsingDeclSpec*) llvm/tools/clang/lib/Parse/Parser.cpp:845:0\r\n#32 0x00007f7749fbae49 clang::Parser::ParseTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&) llvm/tools/clang/lib/Parse/Parser.cpp:613:0\r\n#33 0x00007f7749edef30 clang::ParseAST(clang::Sema&, bool, bool) llvm/tools/clang/lib/Parse/ParseAST.cpp:146:0\r\n#34 0x00007f7751009866 clang::ASTFrontendAction::ExecuteAction() llvm/tools/clang/lib/Frontend/FrontendAction.cpp:1005:0\r\n#35 0x00007f7750f3da29 clang::ASTMergeAction::ExecuteAction() llvm/tools/clang/lib/Frontend/ASTMerge.cpp:78:0\r\n#36 0x00007f77510092d7 clang::FrontendAction::Execute() llvm/tools/clang/lib/Frontend/FrontendAction.cpp:906:0\r\n#37 0x00007f7750f99361 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) llvm/tools/clang/lib/Frontend/CompilerInstance.cpp:981:0\r\n#38 0x00007f7750a95d32 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) llvm/tools/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp:251:0\r\n#39 0x000000000044a4b8 (clang+0x44a4b8)\r\n#40 0x0000000000440254 (clang+0x440254)\r\n#41 0x0000000000440e52 (clang+0x440e52)\r\n#42 0x00007f7750368f45 __libc_start_main /build/eglibc-ripdx6/eglibc-2.19/csu/libc-start.c:321:0\r\n#43 0x000000000043dae9 (clang+0x43dae9)\r\nStack dump:\r\n0.\tProgram arguments: clang -cc1 -ast-merge rf.ast -fsyntax-only root.cpp \r\n1.\troot.cpp:3:21: current parser token ')'\r\n2.\troot.cpp:2:13: parsing function body 'root'\r\n3.\troot.cpp:2:13: in compound statement ('{}')\r\nAborted\r\n```"}}
{"actor":{"display_login":"martong"}}