jfb marked an inline comment as done. jfb added inline comments.
================ Comment at: lib/CodeGen/CGDecl.cpp:1640 // Only initialize a __block's storage: we always initialize the header. - if (emission.IsEscapingByRef) + if (emission.IsEscapingByRef && isa<llvm::AllocaInst>(Loc.getPointer())) Loc = emitBlockByrefAddress(Loc, &D, /*follow=*/false); ---------------- rjmccall wrote: > This seems like something we're likely regret eventually. If we've already > drilled down to the storage, we should propagate that information into this > rather than trying to detect it retroactively here. You mean that I should check `!capturedByInit` instead? I initially did that, but I was worried about someone adding other drill-downs and then going out of sync. My rationale was: you always start with `alloca`, so anything else means a drill-down occurred. That being said, this isn't a strongly held belief. Happy to go your way if you think it's better, you know this code more than I do :) Repository: rC Clang CHANGES SINCE LAST ACTION https://reviews.llvm.org/D58218/new/ https://reviews.llvm.org/D58218 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits