diff options
Diffstat (limited to 'gcc/tree.h')
-rw-r--r-- | gcc/tree.h | 11 |
1 files changed, 10 insertions, 1 deletions
@@ -439,6 +439,8 @@ extern void omp_clause_range_check_failed (const_tree, const char *, int, TREE_CHECK3 (T, RECORD_TYPE, UNION_TYPE, QUAL_UNION_TYPE) #define NOT_RECORD_OR_UNION_CHECK(T) \ TREE_NOT_CHECK3 (T, RECORD_TYPE, UNION_TYPE, QUAL_UNION_TYPE) +#define ARRAY_OR_INTEGER_TYPE_CHECK(T) \ + TREE_CHECK2 (T, ARRAY_TYPE, INTEGER_TYPE) #define NUMERICAL_TYPE_CHECK(T) \ TREE_CHECK5 (T, INTEGER_TYPE, ENUMERAL_TYPE, BOOLEAN_TYPE, REAL_TYPE, \ @@ -2118,7 +2120,14 @@ extern machine_mode vector_type_mode (const_tree); /* If set in an ARRAY_TYPE, indicates a string type (for languages that distinguish string from array of char). If set in a INTEGER_TYPE, indicates a character type. */ -#define TYPE_STRING_FLAG(NODE) (TYPE_CHECK (NODE)->type_common.string_flag) +#define TYPE_STRING_FLAG(NODE) \ + (ARRAY_OR_INTEGER_TYPE_CHECK (NODE)->type_common.string_flag) + +/* If set for RECORD_TYPE or UNION_TYPE it indicates that the type conforms + to the C++ one definition rule. This is used for LTO canonical type + computation. */ +#define TYPE_CXX_ODR_P(NODE) \ + (RECORD_OR_UNION_CHECK (NODE)->type_common.string_flag) /* Nonzero in a VECTOR_TYPE if the frontends should not emit warnings about missing conversions to other vector types of the same size. */ |