llvm-project/clang/lib/Frontend
Corentin Jabot c151225096 [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.
2022-02-08 12:10:47 -05:00
..
Rewrite [ADT] [NFC] Add StringRef::detectEOL 2022-01-21 09:47:02 -06:00
ASTConsumers.cpp [clang] Fix JSON AST output when a filter is used 2021-10-10 07:46:17 +05:30
ASTMerge.cpp
ASTUnit.cpp [clang] Fix bugprone argument comments (NFC) 2022-01-09 00:19:49 -08:00
CMakeLists.txt [clang] Add an extract-api driver option 2022-01-26 11:31:12 -08:00
ChainedDiagnosticConsumer.cpp
ChainedIncludesSource.cpp [ASTReader] Allow controlling separately whether validation should be disabled for a PCH vs a module file 2021-01-21 20:45:54 -08:00
CompilerInstance.cpp [clang] Fix serialized diagnostics edge-cases 2022-01-26 11:21:51 +01:00
CompilerInvocation.cpp [OpenMP] Completely remove old device runtime 2022-02-04 15:31:33 -05:00
CreateInvocationFromCommandLine.cpp [clangd] Bail-out when an empty compile flag is encountered 2021-09-20 16:51:56 +02:00
DependencyFile.cpp [clang] In DependencyCollector on Windows, ignore case and separators when discarding duplicate dependency file paths. 2021-05-17 10:32:52 -04:00
DependencyGraph.cpp [SystemZ][z/OS][Windows] Add new OF_TextWithCRLF flag and use this flag instead of OF_Text 2021-04-06 07:23:31 -04:00
DiagnosticRenderer.cpp [clang][Frontend] Fix a crash in DiagnosticRenderer. 2021-02-17 09:02:49 +01:00
ExtractAPIConsumer.cpp [FIX][clang] Fix unused private field in ExtractAPIVisitor 2022-01-26 16:24:04 -08:00
FrontendAction.cpp [clang] Don't clear AST if we have consumers running after the main action 2021-10-21 09:03:57 -07:00
FrontendActions.cpp [Templight] Don't display empty strings for names of unnamed template parameters 2022-01-24 16:37:11 +01:00
FrontendOptions.cpp [OpenCL] Added distinct file extension for C++ for OpenCL. 2021-03-24 13:07:04 +00:00
HeaderIncludeGen.cpp [clang] Inclusive language: change instances of blacklist/whitelist to allowlist/ignorelist 2021-11-12 15:46:16 +00:00
InitPreprocessor.cpp [C++2b] Implement multidimentional subscript operator 2022-02-08 12:10:47 -05:00
InterfaceStubFunctionsConsumer.cpp [ifs] Prepare llvm-ifs for elfabi/ifs merging. 2021-07-19 11:23:00 -07:00
LayoutOverrideSource.cpp [Driver, Frontend] Use StringRef::contains (NFC) 2021-10-19 08:54:02 -07:00
LogDiagnosticPrinter.cpp Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
ModuleDependencyCollector.cpp [SystemZ][z/OS][Windows] Add new OF_TextWithCRLF flag and use this flag instead of OF_Text 2021-04-06 07:23:31 -04:00
MultiplexConsumer.cpp [clang] Remove redundant member initialization (NFC) 2022-01-02 10:20:23 -08:00
PrecompiledPreamble.cpp [clang] Change ordering of PreableCallbacks to make sure PP can be referenced in them 2021-11-26 10:10:52 +01:00
PrintPreprocessedOutput.cpp [clang] fix out of bounds access in an empty string when lexing a _Pragma with missing string token 2022-02-02 11:16:11 -08:00
SerializedDiagnosticPrinter.cpp [clang] Remove redundant member initialization (NFC) 2022-01-02 10:20:23 -08:00
SerializedDiagnosticReader.cpp
TestModuleFileExtension.cpp [NFC][clang] Return underlying strings directly instead of OS.str() 2021-12-09 16:05:46 -08:00
TestModuleFileExtension.h [modules] Use `HashBuilder` and `MD5` for the module hash. 2021-09-03 11:13:36 -07:00
TextDiagnostic.cpp [clang] Use true/false instead of 1/0 (NFC) 2022-01-09 00:19:47 -08:00
TextDiagnosticBuffer.cpp Fix more implicit conversions. Getting closer to having clang working with gcc 5 again 2020-01-29 02:57:59 +01:00
TextDiagnosticPrinter.cpp [clang-cl] Remove the /fallback option 2021-02-04 10:33:16 +01:00
VerifyDiagnosticConsumer.cpp [clang][lex] NFC: Simplify calls to `LookupFile` 2022-01-18 16:02:18 +01:00