{"push_id":3155817482,"size":4,"distinct_size":4,"ref":"refs/heads/master","head":"45bd08f3632bfde89fb260c3ae44f2f839541b33","before":"0d2ec4e73c778aaa6776889e5159040faf34eb2c","commits":[{"sha":"6cbefbb5310964eb830eaf35ed1b993bb685f9ec","author":{"name":"Volodymyr Sapsai","email":"96bd0c2df6a109067a023203e45b9542ed83f609@apple.com"},"message":"[CodeGen] Fix assertion on emitting cleanup for object with inlined inherited constructor and non-trivial destructor.\n\nFixes assertion\n> Assertion failed: (isa<X>(Val) && \"cast<Ty>() argument of incompatible type!\"), function cast, file llvm/Support/Casting.h, line 255.\n\nIt was triggered by trying to cast `FunctionDecl` to `CXXMethodDecl` as\n`CGF.CurCodeDecl` in `CallBaseDtor::Emit`. It was happening because\ncleanups were emitted in `ScalarExprEmitter::VisitExprWithCleanups`\nafter destroying `InlinedInheritingConstructorScope`, so\n`CodeGenFunction.CurCodeDecl` didn't correspond to expected cleanup decl.\n\nFix the assertion by emitting cleanups before leaving\n`InlinedInheritingConstructorScope` and changing `CurCodeDecl`.\n\nTest cases based on a patch by Shoaib Meenai.\n\nFixes PR36748.\n\nrdar://problem/45805151\n\nReviewers: rsmith, rjmccall\n\nReviewed By: rjmccall\n\nSubscribers: jkorous, dexonsmith, cfe-commits, smeenai, compnerd\n\nDifferential Revision: https://reviews.llvm.org/D55543\n\n\n\ngit-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@349848 91177308-0d34-0410-b5e6-96231b3b80d8","distinct":true,"url":"https://api.github.com/repos/bogner/llvm-zipper-prototype/commits/6cbefbb5310964eb830eaf35ed1b993bb685f9ec"},{"sha":"dadb7b9b0d45132af0894482e36695ebc14efff5","author":{"name":"LLVM Monorepo conversion","email":"cd21cd76f101be56d104584fc5a716fe3b563fb7@llvm.org"},"message":"Merging r349848: \"[CodeGen] Fix assertion on emitting cleanup for object with inlined inherited constructor and non-trivial destructor.\"\n\ngit-crossrepo-prefix: clang/","distinct":true,"url":"https://api.github.com/repos/bogner/llvm-zipper-prototype/commits/dadb7b9b0d45132af0894482e36695ebc14efff5"},{"sha":"00781d8096cfd74574cbe0f08f2618beae9ef84e","author":{"name":"Fangrui Song","email":"89e54f19065b0b047a91fe0cbcb78b61efd4358f@google.com"},"message":"[ELF] Move IsNeeded logic from SymbolTable::addShared to MarkLive, and check IsUsedInRegularObj\n\nSummary:\nIn glibc, libc.so is a linker script with an as-needed dependency on ld-linux-x86-64.so.2\n\n    GROUP ( /lib/x86_64-linux-gnu/libc.so.6 /usr/lib/x86_64-linux-gnu/libc_nonshared.a  AS_NEEDED ( /lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 ) )\n\nld-linux-x86-64.so.2 (as-needed) defines some symbols which resolve undefined references in libc.so.6, it will therefore be added as a DT_NEEDED entry, which isn't necessary.\n\nThe test case as-needed-not-in-regular.s emulates the libc.so scenario, where ld.bfd and gold don't add DT_NEEDED for a.so\n\nThe relevant code in gold/resolve.cc:\n\n  // If we have a non-WEAK reference from a regular object to a\n  // dynamic object, mark the dynamic object as needed.\n  if (to->is_from_dynobj() && to->in_reg() && !to->is_undef_binding_weak())\n    to->object()->set_is_needed();\n\nin_reg() appears to do something similar to IsUsedInRegularObj.\n\nThis patch makes lld do the similar thing, but moves the check from\naddShared to a later stage MarkLive where all symbols are scanned.\n\nReviewers: ruiu, pcc, espindola\n\nReviewed By: ruiu\n\nSubscribers: emaste, arichardson, llvm-commits\n\nDifferential Revision: https://reviews.llvm.org/D55902\n\ngit-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@349849 91177308-0d34-0410-b5e6-96231b3b80d8","distinct":true,"url":"https://api.github.com/repos/bogner/llvm-zipper-prototype/commits/00781d8096cfd74574cbe0f08f2618beae9ef84e"},{"sha":"45bd08f3632bfde89fb260c3ae44f2f839541b33","author":{"name":"LLVM Monorepo conversion","email":"cd21cd76f101be56d104584fc5a716fe3b563fb7@llvm.org"},"message":"Merging r349849: \"[ELF] Move IsNeeded logic from SymbolTable::addShared to MarkLive, and check IsUsedInRegularObj\"\n\ngit-crossrepo-prefix: lld/","distinct":true,"url":"https://api.github.com/repos/bogner/llvm-zipper-prototype/commits/45bd08f3632bfde89fb260c3ae44f2f839541b33"}]}
{"actor":{"display_login":"bogner"}}