[PATCH] D118311: [Clang][ModuleMap] Add conditional parsing via requires block declaration
Michael Spencer via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Jan 26 20:32:08 PST 2022
Bigcheese created this revision.
Bigcheese added reviewers: bruno, dexonsmith, vsapsai.
Bigcheese added a project: clang-modules.
Bigcheese requested review of this revision.
Herald added a project: clang.
Herald added a subscriber: cfe-commits.
Add a new form of requires called a requires block declaration.
A requires block declaration allows conditional inclusion of other
declarations within a module map.
The syntax is the same as a requires-declaration, except that it is
followed by a block. If the feature-list isn’t satisfied, then the
contents of the block is ignored and skipped over. If the feature-list
is satisfied, then the contents of the requires block are parsed as if
the requires block was not present.
This differs from a requires-declaration in that it is not an error to
import a module from within an unsatisfied requires-block-declaration
as long as another declaration of the module exists.
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D118311
Files:
clang/docs/Modules.rst
clang/include/clang/Basic/DiagnosticLexKinds.td
clang/include/clang/Basic/Module.h
clang/lib/Basic/Module.cpp
clang/lib/Lex/ModuleMap.cpp
clang/test/Modules/requires-block-errors.m
clang/test/Modules/requires-block.m
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D118311.403484.patch
Type: text/x-patch
Size: 15247 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20220127/2ad9756e/attachment.bin>
More information about the llvm-commits
mailing list