vsk added inline comments.

================
Comment at: clang/lib/Driver/ToolChains/Darwin.cpp:2254
   Res |= SanitizerKind::Function;
+  if (!isTargetMacOS() || !isMacosxVersionLT(10, 9))
+    Res |= SanitizerKind::Vptr;
----------------
delcypher wrote:
> Could we apply De'Morgan's rule here and write that as
> 
> ```
> if (!(isTargetMacOS() && isMacosxVersionLT(10, 9)) {
>   Res |= SanitizerKind::Vptr
> }
> ```
> 
> I find that a bit easier to read.
> 
> Is there any particular reason why vptr isn't supported for old macOS 
> versions? There's no mention of ios here which suggests that it's supported 
> on all ios versions which seems like an odd disparity. Perhaps a comment 
> briefly explaining why this is the case would be helpful?
Sure.

MacOS versions older than 10.8 shipped a version of the C++ standard library 
which is incompatible with the vptr check's implementation (see: 
https://trac.macports.org/wiki/LibcxxOnOlderSystems). I'll add a comment to 
that effect.

As far as I know, all currently-supported versions of iOS ship libc++. I'll ask 
around and double-check, just to be safe.


https://reviews.llvm.org/D51239



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

Reply via email to