> But in that case the pragma shouldn't be ignored, but instead checked > against the various requirements. E.g. that region is followed by a single > optional name (are there any requirements on what name can be, can it be > just a single token, can it be C/C++ keyword, etc.), guess ignore all the > tokens after endregion if it is all a comment, and verify nesting > (all region/endregion are properly paired up).
I cannot speak to the internals of the MSVC compiler, but I can say definitively that clang does not do any of this. The clang handling of #pragma region is a no-op, as can be seen here: https://github.com/llvm/llvm-project/blob/48b510c4bc0fe090e635ee0440e46fc176527d7e/clang/lib/Lex/Pragma.cpp#L1847 Additionally, the MSVC implementation appears to do no validation (or at least doesn't emit warnings that indicate that it does). https://godbolt.org/z/3zTbnn #pragma region is purely designed for editors to assist in code-folding (primarily visual studio and visual studio code, although I am sure others support it). The goal of this patch is to make GCC compatible with both clang and MSVC handling of this pragma, not to introduce novel functionality.