From: Alexey Bataev Date: Mon, 12 May 2014 04:23:46 +0000 (+0000) Subject: [OPENMP] Removed unnecessary enums from OpenMP constructs X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=1a751e402717efb1b1321ab310700ce79a302da8;p=clang [OPENMP] Removed unnecessary enums from OpenMP constructs git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@208516 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/clang/Basic/OpenMPKinds.h b/include/clang/Basic/OpenMPKinds.h index 93ba41e853..2ee246ec96 100644 --- a/include/clang/Basic/OpenMPKinds.h +++ b/include/clang/Basic/OpenMPKinds.h @@ -21,30 +21,27 @@ namespace clang { /// \brief OpenMP directives. enum OpenMPDirectiveKind { - OMPD_unknown = 0, #define OPENMP_DIRECTIVE(Name) \ OMPD_##Name, #include "clang/Basic/OpenMPKinds.def" - NUM_OPENMP_DIRECTIVES + OMPD_unknown }; /// \brief OpenMP clauses. enum OpenMPClauseKind { - OMPC_unknown = 0, #define OPENMP_CLAUSE(Name, Class) \ OMPC_##Name, #include "clang/Basic/OpenMPKinds.def" OMPC_threadprivate, - NUM_OPENMP_CLAUSES + OMPC_unknown }; /// \brief OpenMP attributes for 'default' clause. enum OpenMPDefaultClauseKind { - OMPC_DEFAULT_unknown = 0, #define OPENMP_DEFAULT_KIND(Name) \ OMPC_DEFAULT_##Name, #include "clang/Basic/OpenMPKinds.def" - NUM_OPENMP_DEFAULT_KINDS + OMPC_DEFAULT_unknown }; /// \brief OpenMP attributes for 'proc_bind' clause. diff --git a/lib/Basic/OpenMPKinds.cpp b/lib/Basic/OpenMPKinds.cpp index 90d5630518..f67cac8d40 100644 --- a/lib/Basic/OpenMPKinds.cpp +++ b/lib/Basic/OpenMPKinds.cpp @@ -29,14 +29,13 @@ OpenMPDirectiveKind clang::getOpenMPDirectiveKind(StringRef Str) { } const char *clang::getOpenMPDirectiveName(OpenMPDirectiveKind Kind) { - assert(Kind < NUM_OPENMP_DIRECTIVES); + assert(Kind <= OMPD_unknown); switch (Kind) { case OMPD_unknown: return "unknown"; #define OPENMP_DIRECTIVE(Name) \ case OMPD_##Name : return #Name; #include "clang/Basic/OpenMPKinds.def" - case NUM_OPENMP_DIRECTIVES: break; } llvm_unreachable("Invalid OpenMP directive kind"); @@ -51,7 +50,7 @@ OpenMPClauseKind clang::getOpenMPClauseKind(StringRef Str) { } const char *clang::getOpenMPClauseName(OpenMPClauseKind Kind) { - assert(Kind < NUM_OPENMP_CLAUSES); + assert(Kind <= OMPC_unknown); switch (Kind) { case OMPC_unknown: return "unknown"; @@ -60,8 +59,6 @@ const char *clang::getOpenMPClauseName(OpenMPClauseKind Kind) { #include "clang/Basic/OpenMPKinds.def" case OMPC_threadprivate: return "threadprivate or thread local"; - case NUM_OPENMP_CLAUSES: - break; } llvm_unreachable("Invalid OpenMP clause kind"); } @@ -91,7 +88,6 @@ unsigned clang::getOpenMPSimpleClauseType(OpenMPClauseKind Kind, case OMPC_shared: case OMPC_linear: case OMPC_copyin: - case NUM_OPENMP_CLAUSES: break; } llvm_unreachable("Invalid OpenMP simple clause kind"); @@ -128,7 +124,6 @@ const char *clang::getOpenMPSimpleClauseTypeName(OpenMPClauseKind Kind, case OMPC_shared: case OMPC_linear: case OMPC_copyin: - case NUM_OPENMP_CLAUSES: break; } llvm_unreachable("Invalid OpenMP simple clause kind"); @@ -136,8 +131,8 @@ const char *clang::getOpenMPSimpleClauseTypeName(OpenMPClauseKind Kind, bool clang::isAllowedClauseForDirective(OpenMPDirectiveKind DKind, OpenMPClauseKind CKind) { - assert(DKind < NUM_OPENMP_DIRECTIVES); - assert(CKind < NUM_OPENMP_CLAUSES); + assert(DKind <= OMPD_unknown); + assert(CKind <= OMPC_unknown); switch (DKind) { case OMPD_parallel: switch (CKind) { @@ -160,7 +155,6 @@ bool clang::isAllowedClauseForDirective(OpenMPDirectiveKind DKind, case OMPD_unknown: case OMPD_threadprivate: case OMPD_task: - case NUM_OPENMP_DIRECTIVES: break; } return false; diff --git a/lib/Parse/ParseOpenMP.cpp b/lib/Parse/ParseOpenMP.cpp index a7b7d696aa..d3f02d643b 100644 --- a/lib/Parse/ParseOpenMP.cpp +++ b/lib/Parse/ParseOpenMP.cpp @@ -63,7 +63,6 @@ Parser::DeclGroupPtrTy Parser::ParseOpenMPDeclarativeDirective() { case OMPD_parallel: case OMPD_simd: case OMPD_task: - case NUM_OPENMP_DIRECTIVES: Diag(Tok, diag::err_omp_unexpected_directive) << getOpenMPDirectiveName(DKind); break; @@ -86,8 +85,8 @@ StmtResult Parser::ParseOpenMPDeclarativeOrExecutableDirective() { ParenBraceBracketBalancer BalancerRAIIObj(*this); SmallVector Identifiers; SmallVector Clauses; - SmallVector, NUM_OPENMP_CLAUSES> - FirstClauses(NUM_OPENMP_CLAUSES); + SmallVector, OMPC_unknown + 1> + FirstClauses(OMPC_unknown + 1); const unsigned ScopeFlags = Scope::FnScope | Scope::DeclScope | Scope::OpenMPDirectiveScope; SourceLocation Loc = ConsumeToken(), EndLoc; @@ -177,7 +176,6 @@ StmtResult Parser::ParseOpenMPDeclarativeOrExecutableDirective() { SkipUntil(tok::annot_pragma_openmp_end); break; case OMPD_task: - case NUM_OPENMP_DIRECTIVES: Diag(Tok, diag::err_omp_unexpected_directive) << getOpenMPDirectiveName(DKind); SkipUntil(tok::annot_pragma_openmp_end); @@ -315,7 +313,6 @@ OMPClause *Parser::ParseOpenMPClause(OpenMPDirectiveKind DKind, SkipUntil(tok::annot_pragma_openmp_end, StopBeforeMatch); break; case OMPC_threadprivate: - case NUM_OPENMP_CLAUSES: Diag(Tok, diag::err_omp_unexpected_clause) << getOpenMPClauseName(CKind) << getOpenMPDirectiveName(DKind); SkipUntil(tok::comma, tok::annot_pragma_openmp_end, StopBeforeMatch); diff --git a/lib/Sema/SemaOpenMP.cpp b/lib/Sema/SemaOpenMP.cpp index 219ad074ce..54aef9df4f 100644 --- a/lib/Sema/SemaOpenMP.cpp +++ b/lib/Sema/SemaOpenMP.cpp @@ -696,7 +696,6 @@ void Sema::ActOnOpenMPRegionStart(OpenMPDirectiveKind DKind, SourceLocation Loc, case OMPD_task: llvm_unreachable("OpenMP Directive is not allowed"); case OMPD_unknown: - case NUM_OPENMP_DIRECTIVES: llvm_unreachable("Unknown OpenMP directive"); } } @@ -745,7 +744,6 @@ StmtResult Sema::ActOnOpenMPExecutableDirective(OpenMPDirectiveKind Kind, case OMPD_task: llvm_unreachable("OpenMP Directive is not allowed"); case OMPD_unknown: - case NUM_OPENMP_DIRECTIVES: llvm_unreachable("Unknown OpenMP directive"); } @@ -820,7 +818,6 @@ OMPClause *Sema::ActOnOpenMPSingleExprClause(OpenMPClauseKind Kind, case OMPC_copyin: case OMPC_threadprivate: case OMPC_unknown: - case NUM_OPENMP_CLAUSES: llvm_unreachable("Clause is not allowed."); } return Res; @@ -883,7 +880,7 @@ ExprResult Sema::PerformImplicitIntegerConversion(SourceLocation Loc, << ConvTy->isEnumeralType() << ConvTy; } SemaDiagnosticBuilder diagnoseConversion( - Sema &S, SourceLocation Loc, QualType T, QualType ConvTy) override { + Sema &, SourceLocation, QualType, QualType) override { llvm_unreachable("conversion functions are permitted"); } } ConvertDiagnoser; @@ -981,7 +978,6 @@ OMPClause *Sema::ActOnOpenMPSimpleClause(OpenMPClauseKind Kind, case OMPC_copyin: case OMPC_threadprivate: case OMPC_unknown: - case NUM_OPENMP_CLAUSES: llvm_unreachable("Clause is not allowed."); } return Res; @@ -994,19 +990,18 @@ OMPClause *Sema::ActOnOpenMPDefaultClause(OpenMPDefaultClauseKind Kind, SourceLocation EndLoc) { if (Kind == OMPC_DEFAULT_unknown) { std::string Values; - static_assert(NUM_OPENMP_DEFAULT_KINDS > 1, - "NUM_OPENMP_DEFAULT_KINDS not greater than 1"); + static_assert(OMPC_DEFAULT_unknown > 0, + "OMPC_DEFAULT_unknown not greater than 0"); std::string Sep(", "); - for (unsigned i = OMPC_DEFAULT_unknown + 1; - i < NUM_OPENMP_DEFAULT_KINDS; ++i) { + for (unsigned i = 0; i < OMPC_DEFAULT_unknown; ++i) { Values += "'"; Values += getOpenMPSimpleClauseTypeName(OMPC_default, i); Values += "'"; switch (i) { - case NUM_OPENMP_DEFAULT_KINDS - 2: + case OMPC_DEFAULT_unknown - 2: Values += " or "; break; - case NUM_OPENMP_DEFAULT_KINDS - 1: + case OMPC_DEFAULT_unknown - 1: break; default: Values += Sep; @@ -1025,7 +1020,6 @@ OMPClause *Sema::ActOnOpenMPDefaultClause(OpenMPDefaultClauseKind Kind, DSAStack->setDefaultDSAShared(); break; case OMPC_DEFAULT_unknown: - case NUM_OPENMP_DEFAULT_KINDS: llvm_unreachable("Clause kind is not allowed."); break; } @@ -1096,7 +1090,6 @@ OMPClause *Sema::ActOnOpenMPVarListClause(OpenMPClauseKind Kind, case OMPC_proc_bind: case OMPC_threadprivate: case OMPC_unknown: - case NUM_OPENMP_CLAUSES: llvm_unreachable("Clause is not allowed."); } return Res;