Bläddra i källkod

Always allow "#pragma region".

Summary:
Both MS and PS4 targets are capable of recognizing the
existence of:  #pragma region, #pragma endregion.

Since this pragma is only a hint for certain editors, and has no logic,
it seems helpful to permit this pragma in all cases, not just MS compatibility mode.



Reviewers: rnk, rsmith, majnemer

Reviewed By: majnemer

Subscribers: Quuxplusone, probinson, majnemer, cfe-commits

Differential Revision: https://reviews.llvm.org/D42248

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@323577 91177308-0d34-0410-b5e6-96231b3b80d8
Matt Davis 7 år sedan
förälder
incheckning
adf8391217
2 ändrade filer med 9 tillägg och 2 borttagningar
  1. 4 2
      lib/Lex/Pragma.cpp
  2. 5 0
      test/Frontend/region-pragmas.c

+ 4 - 2
lib/Lex/Pragma.cpp

@@ -1776,13 +1776,15 @@ void Preprocessor::RegisterBuiltinPragmas() {
   ModuleHandler->AddPragma(new PragmaModuleEndHandler());
   ModuleHandler->AddPragma(new PragmaModuleEndHandler());
   ModuleHandler->AddPragma(new PragmaModuleBuildHandler());
   ModuleHandler->AddPragma(new PragmaModuleBuildHandler());
   ModuleHandler->AddPragma(new PragmaModuleLoadHandler());
   ModuleHandler->AddPragma(new PragmaModuleLoadHandler());
+    
+  // Add region pragmas.
+  AddPragmaHandler(new PragmaRegionHandler("region"));
+  AddPragmaHandler(new PragmaRegionHandler("endregion"));
 
 
   // MS extensions.
   // MS extensions.
   if (LangOpts.MicrosoftExt) {
   if (LangOpts.MicrosoftExt) {
     AddPragmaHandler(new PragmaWarningHandler());
     AddPragmaHandler(new PragmaWarningHandler());
     AddPragmaHandler(new PragmaIncludeAliasHandler());
     AddPragmaHandler(new PragmaIncludeAliasHandler());
-    AddPragmaHandler(new PragmaRegionHandler("region"));
-    AddPragmaHandler(new PragmaRegionHandler("endregion"));
   }
   }
 
 
   // Pragmas added by plugins
   // Pragmas added by plugins

+ 5 - 0
test/Frontend/region-pragmas.c

@@ -0,0 +1,5 @@
+// RUN: %clang_cc1 -Wall -verify %s
+// expected-no-diagnostics
+
+#pragma region foo
+#pragma endregion foo