cchen updated this revision to Diff 266370.
cchen added a comment.

Add test


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D80590/new/

https://reviews.llvm.org/D80590

Files:
  clang/lib/Sema/SemaOpenMP.cpp
  clang/test/OpenMP/sema_alignas.cpp

Index: clang/test/OpenMP/sema_alignas.cpp
===================================================================
--- /dev/null
+++ clang/test/OpenMP/sema_alignas.cpp
@@ -0,0 +1,86 @@
+// RUN: %clang_cc1 -verify=expected,omp45 -fopenmp -fopenmp-version=45 %s
+// RUN: %clang_cc1 -verify=expected,omp50 -fopenmp -fopenmp-version=50 %s
+
+// RUN: %clang_cc1 -verify=expected,omp45 -fopenmp-simd -fopenmp-version=45 %s
+// RUN: %clang_cc1 -verify=expected,omp50 -fopenmp-simd -fopenmp-version=50 %s
+
+// expected-no-diagnostics
+
+#ifndef HEADER
+#define HEADER
+
+struct FOO {
+  static const int vec_align_bytes = 32;
+
+  void foo() {
+    alignas(vec_align_bytes) double a;
+#pragma omp parallel
+    a++;
+
+#pragma omp master
+    a++;
+
+#pragma omp parallel private(a)
+    a++;
+  }
+};
+
+namespace {
+class FOO {
+public:
+  static const int vec_align_bytes = 32;
+
+  void foo() {
+    alignas(vec_align_bytes) double a;
+#pragma omp parallel
+    a++;
+
+#pragma omp master
+    a++;
+
+#pragma omp parallel private(a)
+    a++;
+  }
+};
+} // namespace
+
+template <typename T>
+struct FOO : public T {
+  static const T vec_align_bytes = 32;
+
+  void foo() {
+    alignas(vec_align_bytes) double a;
+#pragma omp parallel
+    a++;
+
+#pragma omp master
+    a++;
+
+#pragma omp parallel private(a)
+    a++;
+  }
+};
+
+namespace {
+namespace {
+template <typename T>
+class FOO : public T {
+public:
+  static const T vec_align_bytes = 32;
+
+  void foo() {
+    alignas(vec_align_bytes) double a;
+#pragma omp parallel
+    a++;
+
+#pragma omp master
+    a++;
+
+#pragma omp parallel private(a)
+    a++;
+  }
+};
+} // namespace
+} // namespace
+
+#endif
Index: clang/lib/Sema/SemaOpenMP.cpp
===================================================================
--- clang/lib/Sema/SemaOpenMP.cpp
+++ clang/lib/Sema/SemaOpenMP.cpp
@@ -2631,6 +2631,7 @@
   DSAStack->pop();
   DiscardCleanupsInEvaluationContext();
   PopExpressionEvaluationContext();
+  CleanupVarDeclMarking();
 }
 
 static bool FinishOpenMPLinearClause(OMPLinearClause &Clause, DeclRefExpr *IV,
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to