diff --git a/clang/include/clang/Basic/OpenMPKinds.def b/clang/include/clang/Basic/OpenMPKinds.def index 166b80314f687..da0cbafd05a5b 100644 --- a/clang/include/clang/Basic/OpenMPKinds.def +++ b/clang/include/clang/Basic/OpenMPKinds.def @@ -127,7 +127,6 @@ OPENMP_DEVICE_MODIFIER(device_num) // Variable-category attributes for 'default' clause. OPENMP_DEFAULT_VARIABLE_CATEGORY(aggregate) OPENMP_DEFAULT_VARIABLE_CATEGORY(all) -OPENMP_DEFAULT_VARIABLE_CATEGORY(allocatable) OPENMP_DEFAULT_VARIABLE_CATEGORY(pointer) OPENMP_DEFAULT_VARIABLE_CATEGORY(scalar) diff --git a/clang/lib/Sema/SemaOpenMP.cpp b/clang/lib/Sema/SemaOpenMP.cpp index 2ab2fd10a942e..81c591a00cfc6 100644 --- a/clang/lib/Sema/SemaOpenMP.cpp +++ b/clang/lib/Sema/SemaOpenMP.cpp @@ -78,11 +78,10 @@ enum DefaultDataSharingAttributes { /// Not mentioning any Variable category attribute indicates /// the modifier (DefaultDataSharingAttributes) is for all variables. enum DefaultDataSharingVCAttributes { - DSA_VC_all = 0, /// for all variables. - DSA_VC_aggregate, /// for aggregate variables. - DSA_VC_allocatable, /// for allocatable variables. - DSA_VC_pointer, /// for pointer variables. - DSA_VC_scalar, /// for scalar variables. + DSA_VC_all = 0, /// for all variables. + DSA_VC_aggregate, /// for aggregate variables. + DSA_VC_pointer, /// for pointer variables. + DSA_VC_scalar, /// for scalar variables. }; /// Stack for tracking declarations used in OpenMP directives and @@ -760,11 +759,6 @@ class DSAStackTy { getTopOfStack().DefaultVCAttr = DSA_VC_all; getTopOfStack().DefaultAttrVCLoc = VCLoc; } - /// Set default data sharing variable category attribute to allocatable. - void setDefaultDSAVCAllocatable(SourceLocation VCLoc) { - getTopOfStack().DefaultVCAttr = DSA_VC_allocatable; - getTopOfStack().DefaultAttrVCLoc = VCLoc; - } /// Set default data sharing variable category attribute to pointer. void setDefaultDSAVCPointer(SourceLocation VCLoc) { getTopOfStack().DefaultVCAttr = DSA_VC_pointer; @@ -1373,11 +1367,6 @@ DSAStackTy::DSAVarData DSAStackTy::getDSA(const_iterator &Iter, if (!VD->getType()->isAggregateType()) IterDA = DSA_none; break; - case DSA_VC_allocatable: - if (!(VD->getType()->isPointerType() || - VD->getType()->isVariableArrayType())) - IterDA = DSA_none; - break; case DSA_VC_pointer: if (!VD->getType()->isPointerType()) IterDA = DSA_none; diff --git a/clang/test/OpenMP/parallel_default_messages.cpp b/clang/test/OpenMP/parallel_default_messages.cpp index 842b1ac5a96b8..b1d62118e0440 100644 --- a/clang/test/OpenMP/parallel_default_messages.cpp +++ b/clang/test/OpenMP/parallel_default_messages.cpp @@ -64,6 +64,11 @@ int main(int argc, char **argv) { ++x; ++y; } +#pragma omp parallel default(private: allocatable) private(x,y) // expected-error {{wrong variable category specified with modifier private in the default clause}} + { + ++x; + ++y; + } #endif return 0; }