[c++20] Implement most of P1152R4.
authorRichard Smith <richard-llvm@metafoo.co.uk>
Wed, 9 Oct 2019 00:49:40 +0000 (00:49 +0000)
committerRichard Smith <richard-llvm@metafoo.co.uk>
Wed, 9 Oct 2019 00:49:40 +0000 (00:49 +0000)
commit84ef9c64937dd5d6d2acde1af88220739d819e5f
treeddef7cd6f77172dec20eb4c087563b5d6d492c7f
parentad6690afa3e6e9bae6d8338016c4931e084ff380
[c++20] Implement most of P1152R4.

Diagnose some now-deprecated uses of volatile types:
 * as function parameter types and return types
 * as the type of a structured binding declaration
 * as the type of the lvalue operand of an increment / decrement /
   compound assignment operator

This does not implement a check for the deprecation of simple
assignments whose results are used; that check requires somewhat
more complexity and will be addressed separately.

llvm-svn: 374133
clang/include/clang/Basic/DiagnosticGroups.td
clang/include/clang/Basic/DiagnosticSemaKinds.td
clang/lib/Sema/SemaDeclCXX.cpp
clang/lib/Sema/SemaExpr.cpp
clang/lib/Sema/SemaType.cpp
clang/test/SemaCXX/deprecated.cpp
clang/www/cxx_status.html