vsk added a comment. In https://reviews.llvm.org/D25199#559797, @kcc wrote:
> >> will just crash without further reporting > > I agree, and we can address that by having special logic in ubsan's segv > handler. > This does not have to be in this patch. @kcc Is it safe to add a handler for segv and continue program execution as normal? I'm asking because I haven't tried that before, and am guessing you have experience with this from working on asan. If there is a safe and portable way to call a ubsan diagnostic handler after hitting this error, then I agree that it would be very valuable. One more thing to consider: how will we support `-fsanitize-trap=value-after-delete`? > CGExprScalar.cpp:413 > + // value of the deleted pointer to an invalid debug constant. > + if (CGF.SanOpts.has(SanitizerKind::ValueAfterDelete)) { > + const Expr *arg = E->getArgument(); This is typically done by placing a call to e.g `CGF.EmitValueAfterDeleteCheck`, and then having an early return in EmitValueAfterDeleteCheck if the sanitizer isn't enabled. > CGExprScalar.cpp:414 > + if (CGF.SanOpts.has(SanitizerKind::ValueAfterDelete)) { > + const Expr *arg = E->getArgument(); > + if (arg->IgnoreImplicit()->isLValue() && Variables are usually capitalized. > CGExprScalar.cpp:418 > + LValue LHS = EmitLValue(arg); > + if (!LHS.isVolatile()) { > + const unsigned width = CGF.getTarget().getMaxPointerWidth(); This is missing a negative test. > sanitize-value-after-delete.cpp:2 > +// Test -fsanitize-value-after-delete > +// RUN: %clang_cc1 -O3 -fsanitize=value-after-delete -disable-llvm-optzns > -std=c++11 -triple=x86_64-pc-linux -emit-llvm -o - %s | FileCheck %s > + Why are the '-O3' and '-disable-llvm-optzns' flags needed here? https://reviews.llvm.org/D25199 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits