[PATCH] D105201: [hwasan] Detect use after scope within function.

Evgenii Stepanov via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Jul 16 09:33:03 PDT 2021


eugenis added inline comments.


================
Comment at: compiler-rt/test/hwasan/TestCases/stack-uas.c:10
+
+// RUN: %clang_hwasan -fexperimental-new-pass-manager -mllvm -hwasan-use-after-scope -g %s -o %t && not %run %t 2>&1 | FileCheck %s
+// RUN: %clang_hwasan -fno-experimental-new-pass-manager -mllvm -hwasan-use-after-scope -g %s -o %t && not %run %t 2>&1 | FileCheck %s
----------------
fmayer wrote:
> vitalybuka wrote:
> > vitalybuka wrote:
> > > It looks all these test ported version of asan
> > > it would be nice if in a separate patch you commit them as exact copy (with XFAIL: *)
> > > 
> > > so in D105201 we can see only change you need to make for HWASAN
> > Actually compiler-rt should not be in this patch. Ideally two additional patches
> > 1. D105201 only llvm/
> > 2. I guess we  will add proper clang fronted flag to avoid "-mllvm -hwasan-use-after-scope" ? similar -fsanitize-address-use-after-scope. Doing this before 4 will save one patch to replace them "-mllvm -hwasan-use-after-scope" -> -fsanitize-hwaddress-use-after-scope
> > 3. Clone compiler-rt tests with XFAIL:*
> > 4. Update and enable -hwasan-use-after-scope
> > 
> > D105201 changes llvm/lib/Transforms/Instrumentation/, so we need tests in llvm/test/Instrumentation/, similar to AddressSanitizer/lifetime.ll
> > 
> > if you move AArch64StackTagging.cpp into a separate refactoring NFC patch, it does not need new tests
> >  
> Ad 2. I will let eugenis comment on that, but to me it seems a lot of the HWAsan feature flags are passed via -mllvm without any intention to make them first-class clang options. Especially given we want to make this the default soon (see the other comment thread between eugenis and me).
Let's look at performance and code size impact first, but I'd like that to just be on all the time, and the -mllvm option can be used to opt out if something goes wrong.

Note that memtag does not have a frontend flag for use-after-scope, either.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D105201



More information about the llvm-commits mailing list