In http://reviews.llvm.org/D9673#170543, @samsonov wrote:

> In http://reviews.llvm.org/D9673#170474, @nlopes wrote:
>
> > > Wait a second, won't UBSan handle this automatically if memcpy/memmove 
> > > are 
> >
> > >  declared with __attribute__((nonnull)) in the header? Otherwise, is 
> > > there 
> >
> > >  a change to the standard that imposes these additional constraints on 
> >
> > >  memcpy/memmove?
> >
> >
> > Not really. memcpy/memmove calls are handled by CGBultin and not CGCall. 
> >  It's a different code path.
> > Nuno
>
>
> Interesting. I think that if we decide to implement such a check, we 
> shouldn't depend on
>  attributes specified in the headers, so `nonnull-attribute` is no longer 
> relevant. There are another
>  kind of compiler builtins which worth extra checks, and which don't even 
> require headers - e.g. behavior of __builtin_ctz(0)
>  is undefined. I think we should implement another check kind 
> `-fsanitize=builtin` that would verify arguments of
>  various builtin functions.


Well, I think in the end they are all in the UB category, so I think they fall 
in the scope of -fsanitize=undefined.
Nuno


REPOSITORY
  rL LLVM

http://reviews.llvm.org/D9673

EMAIL PREFERENCES
  http://reviews.llvm.org/settings/panel/emailpreferences/



_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to