DR330: look through array types when forming the cv-decomposition of a type.
authorRichard Smith <richard-llvm@metafoo.co.uk>
Wed, 11 Jul 2018 00:19:19 +0000 (00:19 +0000)
committerRichard Smith <richard-llvm@metafoo.co.uk>
Wed, 11 Jul 2018 00:19:19 +0000 (00:19 +0000)
commita3405ffcecc6a91efa869812a18866a1c29f6203
tree3a229ee6be5c8baa390f72bec50e6e61455f8bc8
parent18f882c8b84e9e3f25e3a0dc0898a0b25e66f79a
DR330: look through array types when forming the cv-decomposition of a type.

This allows more qualification conversions, eg. conversion from
   'int *(*)[]' -> 'const int *const (*)[]'
is now permitted, along with all the consequences of that: more types
are similar, more cases are permitted by const_cast, and conversely,
fewer "casting away constness" cases are permitted by reinterpret_cast.

llvm-svn: 336745
clang/include/clang/AST/ASTContext.h
clang/lib/AST/ASTContext.cpp
clang/lib/Sema/SemaCast.cpp
clang/lib/Sema/SemaOverload.cpp
clang/lib/StaticAnalyzer/Core/SValBuilder.cpp
clang/test/CXX/drs/dr3xx.cpp
clang/test/SemaCXX/const-cast.cpp
clang/www/cxx_dr_status.html