Fixes the use of macro definitions in OpenMP clauses

It only works when the macro es defined in the same file as it is used.

Conflicts:

	src/frontend/SageIII/ompAstConstruction.cpp
Enhance legibility of OpenMP grammar

This commits standardize how the OpenMP grammar is written
(line breaks, colons, parenthesis, etc) So looking for a token is
now much easier.

Conflicts:

	src/frontend/SageIII/ompparser.yy
Fix the use of complex expressions containing macro definitions in OpenMP clauses

We need an expression traversal to replace any identifier defined in a macro definition
and used in an OpenMP by its value

Conflicts:

	src/frontend/SageIII/ompAstConstruction.cpp
	src/frontend/SageIII/ompAstConstruction.h
Fix use of macros, which are defined in headers with no SgLocatedNode, in OpenMP clauses

It fixes expression replacement implemented in the previous commit as well.
See #a33f305e400fe93a89cba23070dea6eb1d4a12e9

Conflicts:

	src/frontend/SageIII/attachPreprocessingInfoTraversal.C
	src/frontend/SageIII/ompAstConstruction.cpp
Fix cross reference in OpenMP grammar between additive and multiplicative expressions

Also fixes wrong commit about macro values substitution in OpenMP clauses: when fixing
complex expressions, we broke simple expressions solution.
See #a33f305e400fe93a89cba23070dea6eb1d4a12e9

Add compiler tests for this feature

Conflicts:

	src/frontend/SageIII/ompAstConstruction.cpp
Add compiler tests for OpenMP clauses containing macro definitions

See #db95a183b20fac50ea2931072a2c47fd6ba46949
This fixes OpenMP bug when Section contains one statement not wrapped with braces

This bug reported by Allan Porterfield was caused because omp_lowerering assumed
the body of an OpenMP Section to be a Basic Block. This is not the case when
there is only one statement associated with the Section pragma and it is not
wrapped with braces.
Add test for OpenMP sections compilation

See #cdabaa714f6fc7d55b68248df4e2c1dbe1d314bd
This correction ensures a section's block to be attached in the AST
Add checking for GCC version when using GOMP OpenMP runtime library

The GCC version must be at least 4.4 to use OpenMP 3.0 GOMP calls.
Extend IncludeDirective to accept macros with the syntax '#include MACRO_CALL()'
Fix GCC checking when GOMP OpenMP runtime library is defined

The verification is now in the linking phase instead of the compiling phase
We also use the __GNUC__ macro instead of using BACKEND_CXX_COMPILER_NAME
Fix array initialization of outlined function parameter struct

When the struct which is parameter of an outlined function
contains an array, it has to be initialized element by element.

We also fix casting of the outlined struct members when they are arrays.
It was casted to an array, but this is forbidden in C, we have
to cast to pointer.

Example:
struct OUT__1__6165___data {
  int A[2UL];
};

void foo()
{
  int A[2UL] = {(0), (1)};
  struct OUT__1__6165___data __out_argv1__6165__;

  // ****************************************** //
  // Initialize element by element
  int __i0__;
  for (__i0__ = 0; __i0__ < 2UL; __i0__++)
     *(__out_argv1__6165__.A + __i0__) =  *(A + __i0__);
  // ****************************************** //

  XOMP_task(OUT__1__6165__,&__out_argv1__6165__,0,sizeof(struct OUT__1__6165___data ),4,1,0);
}

static void OUT__1__6165__(void *__out_argv)
{
  // ****************************************** //
  // Even though '((struct OUT__1__6165___data *)__out_argv) -> A'
  // is an array, we have to cast to pointer
  int *A = (int *)(((struct OUT__1__6165___data *)__out_argv) -> A);
  int _p_A[2UL];
  {
    int *A_ap = (int *)A;
    int *_p_A_ap = (int *)_p_A;
    int _p_i;
    for (_p_i = 0; _p_i < 2; _p_i++)
       *(_p_A_ap + _p_i) =  *(A_ap + _p_i);
  }
  // ****************************************** //

  ... // The outlined code
}
Add test proving bug fixing
Fix definition of the macro that checks GCC version (only checking when GOMP)
Add more verbose to error message
Add the test to the make-chek list
Add test to the make check list
Fix test
macroIds test requires specific compilation flags

Conflicts:

	tests/CompileTests/OpenMP_tests/Makefile.am