EricWF added a comment.

In https://reviews.llvm.org/D45015#1119286, @ahatanak wrote:

> In https://reviews.llvm.org/D45015#1105388, @rsmith wrote:
>
> > In https://reviews.llvm.org/D45015#1105372, @vsapsai wrote:
> >
> > > What when compiler has `__builtin_operator_new`, 
> > > `__builtin_operator_delete`? If I build libc++ tests with recent Clang 
> > > which has these builtins and run tests with libc++.dylib from old Darwin, 
> > > there are no linkage errors. Should we define `__cpp_aligned_allocation` 
> > > in this case?
> >
> >
> > I don't see why that should make any difference -- those builtins call the 
> > same functions that the new and delete operator call. Perhaps libc++ isn't 
> > calling the forms of those builtins that take an alignment argument yet?
>
>
> It looks like clang currently doesn't issue a warning when a call to 
> __builtin_operator_new or __builtin_operator_delete calls an aligned 
> allocation function that is not support by the OS version. I suppose we 
> should fix this?
>
>   // no warning issued when triple is "thumbv7-apple-ios5.0.0" even though 
> aligned allocation is unavailable.
>   void *p = __builtin_operator_new(100, std::align_val_t(32));


If we switch to no longer defining `__cpp_aligned_new` when it's unavailable 
that means libc++ shouldn't generate calls to an aligned allocation or 
deallocation function. Do we need the compiler to protect libc++ from itself 
here?


Repository:
  rC Clang

https://reviews.llvm.org/D45015



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

Reply via email to