vsk added a comment.

In https://reviews.llvm.org/D21695#513723, @filcab wrote:
> In https://reviews.llvm.org/D21695#510788, @vsk wrote:
>
> > After reading through the discussion in https://reviews.llvm.org/D19668, I 
> > don't think I understood the pros/cons of using a single ABI check (like 
> > asan does) versus adding version numbers to each handler routine. With the 
> > latter approach, wouldn't users only be able to link old object files with 
> > new runtimes if we never delete old checks? If that's the case, and 
> > assuming that we'd like to delete old checks, a single version symbol check 
> > would accomplish the same thing.
>
>
> With ASan it's very easy to add a single symbol for all of it, since it's a 
> single pass, and when it runs, instrumentation is added. For UBSan it depends 
> on it being enabled and you hitting a place where it checks for it. We can 
> emit the version check symbol in emitCheckHandlerCall, though.


Ah, yeah, I can see how this might be cumbersome.

> With split versioning, as long as the checks you enable don't get different 
> versions (it's rare that we change checks, too), they'll still work (arguably 
> this is not as valuable as I think it is, but things like Android frameworks 
> enabling UBSan checks in production might make it more valuable).


Running sanitized programs in production sounds strange to me. But, if there 
isn't really a cost to supporting this, I suppose it's fine.


================
Comment at: lib/CodeGen/CGExpr.cpp:2473
@@ +2472,3 @@
+      ("__ubsan_handle_" + CheckName +
+       (CheckInfo.Version ? "_v" + std::to_string(CheckInfo.Version) : "") +
+       (NeedsAbortSuffix ? "_abort" : ""))
----------------
filcab wrote:
> vsk wrote:
> > Wdyt of dropping the "_vN" component if the version is 0? That's one less 
> > compiler-rt change that we'd need.
> That's what it's doing:
>   (CheckInfo.Version ? "_v" + std::to_string(CheckInfo.Version) : "")
> 
Of course! My mistake.


https://reviews.llvm.org/D21695



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to