[PATCH] D138782: [include-cleaner] Implement IWYU begin_keep/end_keep pragma support.
Viktoriia Bakalova via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Mon Nov 28 04:23:38 PST 2022
VitaNuo added inline comments.
================
Comment at: clang-tools-extra/include-cleaner/lib/Record.cpp:299
+ } else if (Pragma->starts_with("end_keep")) {
+ InsidePragmaKeepBlock = false;
+ }
----------------
hokein wrote:
> using a simple variable is not enough to handle the nested case like
>
> ```
> // IWYU pragma: begin_keep
> #include "keep1.h"
> // IWYU pragma: begin_keep
> #include "keep2.h"
> #include "keep3.h"
> // IWYU pragma: end_keep
> #include "keep4.h"
> // IWYU pragma: end_keep
> ```
>
> now `keep4.h` is marked as unkeeped. I think we need to maintain a stack for `Keep` here (we already have a similar pattern for `export`)
Ok, I had no idea this was valid usage :(
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D138782/new/
https://reviews.llvm.org/D138782
More information about the cfe-commits
mailing list