.. title:: clang-tidy - openmp-use-default-none

openmp-use-default-none
=======================

Finds OpenMP directives that are allowed to contain a ``default`` clause,
but either don't specify it or the clause is specified but with the kind
other than ``none``, and suggests to use the ``default(none)`` clause.

Using ``default(none)`` clause forces developers to explicitly specify data
sharing attributes for the variables referenced in the construct,
thus making it obvious which variables are referenced, and what is their
data sharing attribute, thus increasing readability and possibly making errors
easier to spot.

Example
-------

.. code-block:: c++

  // ``for`` directive cannot have ``default`` clause, no diagnostics.
  void n0(const int a) {
  #pragma omp for
    for (int b = 0; b < a; b++)
      ;
  }

  // ``parallel`` directive.

  // ``parallel`` directive can have ``default`` clause, but said clause is not
  // specified, diagnosed.
  void p0_0() {
  #pragma omp parallel
    ;
    // WARNING: OpenMP directive ``parallel`` does not specify ``default``
    //          clause. Consider specifying ``default(none)`` clause.
  }

  // ``parallel`` directive can have ``default`` clause, and said clause is
  // specified, with ``none`` kind, all good.
  void p0_1() {
  #pragma omp parallel default(none)
    ;
  }

  // ``parallel`` directive can have ``default`` clause, and said clause is
  // specified, but with ``shared`` kind, which is not ``none``, diagnose.
  void p0_2() {
  #pragma omp parallel default(shared)
    ;
    // WARNING: OpenMP directive ``parallel`` specifies ``default(shared)``
    //          clause. Consider using ``default(none)`` clause instead.
  }

  // ``parallel`` directive can have ``default`` clause, and said clause is
  // specified, but with ``firstprivate`` kind, which is not ``none``, diagnose.
  void p0_3() {
  #pragma omp parallel default(firstprivate)
    ;
    // WARNING: OpenMP directive ``parallel`` specifies ``default(firstprivate)``
    //          clause. Consider using ``default(none)`` clause instead.
  }
