[PATCH] D104076: [clang-cl][sanitizer] Add -fsanitize-address-use-after-return to clang.

Kevin Athey via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Fri Jun 11 11:06:30 PDT 2021


kda added inline comments.


================
Comment at: llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp:2973
   IRBuilder<> IRB(*C);
-  switch (ClUseAfterReturn) {
-  case AsanDetectStackUseAfterReturnMode::Always:
-    for (int i = 0; i <= kMaxAsanStackMallocSizeClass; i++) {
-      std::string Suffix = itostr(i);
-      AsanStackMallocFunc[i] = M.getOrInsertFunction(
-          kAsanStackMallocAlwaysNameTemplate + Suffix, IntptrTy, IntptrTy);
-      AsanStackFreeFunc[i] =
-          M.getOrInsertFunction(kAsanStackFreeNameTemplate + Suffix,
-                                IRB.getVoidTy(), IntptrTy, IntptrTy);
-    }
-    break;
-  case AsanDetectStackUseAfterReturnMode::Runtime:
-    for (int i = 0; i <= kMaxAsanStackMallocSizeClass; i++) {
-      std::string Suffix = itostr(i);
-      AsanStackMallocFunc[i] = M.getOrInsertFunction(
-          kAsanStackMallocNameTemplate + Suffix, IntptrTy, IntptrTy);
-      AsanStackFreeFunc[i] =
-          M.getOrInsertFunction(kAsanStackFreeNameTemplate + Suffix,
-                                IRB.getVoidTy(), IntptrTy, IntptrTy);
-    }
-    break;
-  case AsanDetectStackUseAfterReturnMode::Never:
-    // Do Nothing
-    break;
-  case AsanDetectStackUseAfterReturnMode::Invalid:
-    // Do Nothing
-    break;
+  const char *kMallocNameTemplate = kAsanStackMallocNameTemplate;
+  if (ASan.UseAfterReturn == AsanDetectStackUseAfterReturnMode::Always) {
----------------
vitalybuka wrote:
> vitalybuka wrote:
> > vitalybuka wrote:
> > > it looks like unrelated patch
> > could you please fix clang-tidy: warnings
> now we insert functions also for Never and Invalid?
I was trying to only have one loop, since only one thing changes between the two.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D104076/new/

https://reviews.llvm.org/D104076



More information about the cfe-commits mailing list