Where is OMP_CLAUSE_CHECK defined?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]


I am trying understand more about how GCC compiles OpenMP directives and clauses by studying gcc/gcc/omp-low.c .  I've run across the macro OMP_CLAUSE_DECL, which is tree.h defines:

#define OMP_CLAUSE_DECL(NODE)                                           \
  OMP_CLAUSE_OPERAND (OMP_CLAUSE_RANGE_CHECK (OMP_CLAUSE_CHECK (NODE),  \
                                              OMP_CLAUSE_PRIVATE,       \
                                              OMP_CLAUSE_COPYPRIVATE), 0)

Now, for OMP_CLAUSE_OPERAND, tree.h has

#define OMP_CLAUSE_OPERAND(NODE, I)                             \
        OMP_CLAUSE_ELT_CHECK (NODE, I)

And for OMP_CLAUSE_ELT_CHECK, it has

#define OMP_CLAUSE_ELT_CHECK(T, I) __extension__                        \
(*({__typeof (T) const __t = (T);                                       \
    const int __i = (I);                                                \
    if (TREE_CODE (__t) != OMP_CLAUSE)                                  \
      tree_check_failed (__t, __FILE__, __LINE__, __FUNCTION__,         \
                         OMP_CLAUSE, 0);                                \
    if (__i < 0 || __i >= omp_clause_num_ops [__t->omp_clause.code])    \
      omp_clause_operand_check_failed (__i, __t, __FILE__, __LINE__,    \
                                       __FUNCTION__);                   \
    &__t->omp_clause.ops[__i]; }))


Similarly, tree.h defines OMP_CLAUSE_RANGE_CHECK:

#define OMP_CLAUSE_RANGE_CHECK(T, CODE1, CODE2) __extension__           \
({  __typeof (T) const __t = (T);                                       \
    if (TREE_CODE (__t) != OMP_CLAUSE)                                  \
      tree_check_failed (__t, __FILE__, __LINE__, __FUNCTION__,         \
                         OMP_CLAUSE, 0);                                \
    if ((int) __t->omp_clause.code < (int) (CODE1)                      \
        || (int) __t->omp_clause.code > (int) (CODE2))                  \
      omp_clause_range_check_failed (__t, __FILE__, __LINE__,           \
                                     __FUNCTION__, (CODE1), (CODE2));   \
    __t; })


But I cannot find any definition for OMP_CLAUSE_CHECK.  Where does GCC define this macro?  Thanks.

Amittai

Amittai Aviram
PhD Student in Computer Science
Yale University
646 483 2639
amittai.aviram@xxxxxxxx
http://www.amittai.com




[Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

Add to Google