rsundahl marked 8 inline comments as done. rsundahl added a comment. The update completes the suggested changes. The generated code is slightly different around initialization of the array cookie due to choosing one implementation over another when I "folded" ARMCXXABI::InitializeArrayCookie() into ItaniumCXXABI::InitializeArrayCookie(). The generated code LGTM but I would appreciate added scrutiny for the ItaniumCXXABI.cpp changes. check-sanitizer and check-asan completed successfully on x86_64, arm64 and arm64e.
================ Comment at: clang/lib/CodeGen/ItaniumCXXABI.cpp:2478 + // run-time deal with it: if the shadow is properly poisoned return the + // cookie, otherwise return 0 to avoid an infinite loop calling DTORs. + // We can't simply ignore this load using nosanitize metadata because ---------------- rsundahl wrote: > delcypher wrote: > > This comment is confusing. What's returning `0`? > > `__asan_load_cxx_array_cookie` doesn't do that and AFAICT neither does this > > code. > (Same answer) It's only there because it's also there in > ItaniumCXXABI::InitializeArrayCookie() method and I have no reason to think > that the ARMCXXABI version would be different. That said, this is the > revision that introduced the notion originally: https://reviews.llvm.org/D5111 I'm not sure where to find a definitive spec for __asan_load_cxx_array_cookie() so I'm conservatively leaving it as it currently is. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D125195/new/ https://reviews.llvm.org/D125195 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits