[all-commits] [llvm/llvm-project] c15122: [C++2b] Implement multidimentional subscript operator
Aaron Ballman via All-commits
all-commits at lists.llvm.org
Tue Feb 8 09:11:07 PST 2022
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: c1512250960bd247519a9f959ad4af202402dcc4
https://github.com/llvm/llvm-project/commit/c1512250960bd247519a9f959ad4af202402dcc4
Author: Corentin Jabot <corentin.jabot at gmail.com>
Date: 2022-02-08 (Tue, 08 Feb 2022)
Changed paths:
M clang-tools-extra/clang-tidy/modernize/LoopConvertUtils.cpp
M clang/docs/ReleaseNotes.rst
M clang/include/clang/Basic/DiagnosticSemaKinds.td
M clang/include/clang/Sema/Sema.h
M clang/lib/AST/StmtPrinter.cpp
M clang/lib/Frontend/InitPreprocessor.cpp
M clang/lib/Parse/ParseExpr.cpp
M clang/lib/Sema/SemaAccess.cpp
M clang/lib/Sema/SemaDeclCXX.cpp
M clang/lib/Sema/SemaExpr.cpp
M clang/lib/Sema/SemaOverload.cpp
M clang/lib/Sema/TreeTransform.h
M clang/test/OpenMP/target_update_messages.cpp
A clang/test/Parser/cxx2b-subscript.cpp
A clang/test/SemaCXX/cxx2b-overloaded-operator.cpp
M clang/test/SemaTemplate/instantiate-subscript.cpp
M clang/www/cxx_status.html
Log Message:
-----------
[C++2b] Implement multidimentional subscript operator
Implement P2128R6 in C++23 mode.
Unlike GCC's implementation, this doesn't try to recover when a user
meant to use a comma expression.
Because the syntax changes meaning in C++23, the patch is *NOT*
implemented as an extension. Instead, declaring an array with not
exactly 1 parameter is an error in older languages modes. There is an
off-by-default extension warning in C++23 mode.
Unlike the standard, we supports default arguments;
Ie, we assume, based on conversations in WG21, that the proposed
resolution to CWG2507 will be accepted.
We allow arrays OpenMP sections and C++23 multidimensional array to
coexist:
[a , b] multi dimensional array
[a : b] open mp section
[a, b: c] // error
The rest of the patch is relatively straight forward: we take care to
support an arbitrary number of arguments everywhere.
More information about the All-commits
mailing list