rjmccall added a comment.

In D131979#3753358 <https://reviews.llvm.org/D131979#3753358>, @yihanaa wrote:

> In D131979#3752208 <https://reviews.llvm.org/D131979#3752208>, @rjmccall 
> wrote:
>
>> From the test case, it looks like the builtin just ignores pointers to 
>> volatile types, which should be preserved by the conversions you're now 
>> doing in Sema.  That is, you should be able to just check 
>> `Ptr->getType()->castAs<PointerType>()->getPointeeType().isVolatile()`.
>>
>> It would be different if it ignored pointers loaded out of volatile l-values 
>> or something, but that's explicitly not what it's doing.
>
> Thanks for your tips John, form the test case global constants and 
> compiler-rt ubsan class TypeDescriptor, it looks like pass an type 
> description to __ubsan_handle_alignment_assumption, so, we have to use 
> getSubExprAsWritten to get the origin(user written arg type) type description 
> of 1st arg, but not 'const void *', for example,   in 
> catch-alignment-assumption-builtin_assume_aligned-three-params.cpp, the 1st 
> arg type description is 'char **', but if we don't use getSubExprAsWritten, 
> all the type description will be 'const void *'

The version of this patch which changed the builtin to use custom type-checking 
didn't need to worry about this because doing that will stop Sema from 
converting to `const void *`.  You seem to have taken all of that  code out and 
reverted to an earlier approach, though, and I don't see anything in this 
review explaining why.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D131979/new/

https://reviews.llvm.org/D131979

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

Reply via email to