r190806 - Add some missing ProhibitAttributes calls to some declaration-like #pragmas.

Richard Smith richard-llvm at metafoo.co.uk
Mon Sep 16 14:17:45 PDT 2013


Author: rsmith
Date: Mon Sep 16 16:17:44 2013
New Revision: 190806

URL: http://llvm.org/viewvc/llvm-project?rev=190806&view=rev
Log:
Add some missing ProhibitAttributes calls to some declaration-like #pragmas.

Modified:
    cfe/trunk/lib/Parse/ParseStmt.cpp
    cfe/trunk/test/OpenMP/parallel_messages.cpp
    cfe/trunk/test/SemaCXX/captured-statements.cpp

Modified: cfe/trunk/lib/Parse/ParseStmt.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Parse/ParseStmt.cpp?rev=190806&r1=190805&r2=190806&view=diff
==============================================================================
--- cfe/trunk/lib/Parse/ParseStmt.cpp (original)
+++ cfe/trunk/lib/Parse/ParseStmt.cpp Mon Sep 16 16:17:44 2013
@@ -303,9 +303,11 @@ Retry:
     return StmtEmpty();
 
   case tok::annot_pragma_captured:
+    ProhibitAttributes(Attrs);
     return HandlePragmaCaptured();
 
   case tok::annot_pragma_openmp:
+    ProhibitAttributes(Attrs);
     return ParseOpenMPDeclarativeOrExecutableDirective();
 
   }

Modified: cfe/trunk/test/OpenMP/parallel_messages.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/OpenMP/parallel_messages.cpp?rev=190806&r1=190805&r2=190806&view=diff
==============================================================================
--- cfe/trunk/test/OpenMP/parallel_messages.cpp (original)
+++ cfe/trunk/test/OpenMP/parallel_messages.cpp Mon Sep 16 16:17:44 2013
@@ -1,4 +1,4 @@
-// RUN: %clang_cc1 -verify -fopenmp -ferror-limit 100 -o - %s
+// RUN: %clang_cc1 -verify -fopenmp -ferror-limit 100 -std=c++11 -o - %s
 
 void foo() {
 }
@@ -44,6 +44,10 @@ int main(int argc, char **argv) {
     return 1; // expected-error {{cannot return from OpenMP region}}
   }
 
+  [[]] // expected-error {{an attribute list cannot appear here}}
+  #pragma omp parallel
+  for (int n = 0; n < 100; ++n) {}
+
   return 0;
 }
 

Modified: cfe/trunk/test/SemaCXX/captured-statements.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaCXX/captured-statements.cpp?rev=190806&r1=190805&r2=190806&view=diff
==============================================================================
--- cfe/trunk/test/SemaCXX/captured-statements.cpp (original)
+++ cfe/trunk/test/SemaCXX/captured-statements.cpp Mon Sep 16 16:17:44 2013
@@ -164,3 +164,10 @@ void test_capture_variadic() {
   (void)captured_sum(1, 2, 3); // OK
   (void)captured_sum(1, 2, 3, 4, 5); // OK
 }
+
+void test_capture_with_attributes() {
+  [[]] // expected-error {{an attribute list cannot appear here}}
+  #pragma clang __debug captured
+  {
+  }
+}





More information about the cfe-commits mailing list