On Mon, Sep 29, 2014 at 6:05 PM, Alexey Samsonov <samso...@google.com> wrote: > On Mon, Sep 29, 2014 at 5:24 PM, Konstantin Serebryany > <konstantin.s.serebry...@gmail.com> wrote: >> >> On Mon, Sep 29, 2014 at 4:26 PM, Alexey Samsonov <samso...@google.com> wrote: >> > On Mon, Sep 29, 2014 at 4:17 PM, Jakub Jelinek <ja...@redhat.com> wrote: >> >> On Mon, Sep 29, 2014 at 03:36:20PM -0700, Alexey Samsonov wrote: >> >>> -fasan-recover doesn't look like a good idea - for instance, in Clang, we >> >>> never use "?san" >> >>> in flag names, preferring -fsanitize-whatever. What's the rationale >> >>> behind >> >>> splitting >> >>> -fsanitize-recover in two flags (ASan- and UBSan- specific)? >> >>> Is there no way to keep a single -f(no-)sanitize-recover for that >> >>> purpose? >> >>> Now it works >> >>> only for UBSan checks, but we may extend it to another sanitizers as >> >>> well. >> >> >> >> The problem is that if we start using it for ASan, it needs to have a >> >> different default, because ASan wants to abort by default, while UBSan >> >> recover by default. -fsanitize=kernel-address w (KASan) wants to recover >> >> by default. So, the option is either to never support recover for >> >> -fsanitize=address, for ubsan keep -fsanitize-recover (by default) as is >> >> and for kasan use that same switch, or have separate flags. >> >> >> >> Jakub >> > >> > I don't think we ever going to support recovery for regular ASan >> > (Kostya, correct me if I'm wrong). >> >> I hope so too. >> Another point is that with asan-instrumentation-with-call-threshold=0 >> (instrumentation with callbacks) >> we can and probably will allow to recover from errors (glibc demands that), >> but that does not require any compile-time flag. > > > So, if we switch to instrumentation to callbacks (which are not > necessarily noreturn), > -fsanitize-recover is the thing we plan to support?
Yes, but this will not involve any additional compile-time flag > >> >> >> >> > I see no problem in enabling -fsanitize-recover by default for >> > -fsanitize=undefined and >> >> This becomes more interesting when we use asan and ubsan together. >> Which default setting is stronger? :) > > We can preserve the default behavior for each tool (no recovery for > ASan, recovery for UBSan) > unless recovery mode is explicitly specified. > >> >> > -fsanitize=kernel-address. We can, potentially, extend >> > -fsanitize-recover flag to take the same values as -fsanitize= one, >> > so that one can specify which sanitizers are recoverable, and which >> > are not, but I'd try to make this a last resort - this is too complex. >> > >> > -- >> > Alexey Samsonov, Mountain View, CA > > > > > -- > Alexey Samsonov, Mountain View, CA