diff options
author | Eric Botcazou <ebotcazou@adacore.com> | 2011-08-30 16:46:12 +0000 |
---|---|---|
committer | Eric Botcazou <ebotcazou@gcc.gnu.org> | 2011-08-30 16:46:12 +0000 |
commit | 4f1a975cc19d5cd5ce2fa7142044a77eeffb5572 (patch) | |
tree | d683a5ca69d1dfd075af708ef9c2fa857e138a37 /gcc | |
parent | f2991b48202740f19566099850048e8718da03b1 (diff) | |
download | gcc-4f1a975cc19d5cd5ce2fa7142044a77eeffb5572.zip gcc-4f1a975cc19d5cd5ce2fa7142044a77eeffb5572.tar.gz gcc-4f1a975cc19d5cd5ce2fa7142044a77eeffb5572.tar.bz2 |
ada-tree.h (TYPE_EXTRA_SUBTYPE_P): Add internal check.
* gcc-interface/ada-tree.h (TYPE_EXTRA_SUBTYPE_P): Add internal check.
* gcc-interface/utils2.c (build_binary_op): Tighten condition.
(build_unary_op): Likewise.
From-SVN: r178335
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ada/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/ada/gcc-interface/ada-tree.h | 2 | ||||
-rw-r--r-- | gcc/ada/gcc-interface/utils2.c | 4 |
3 files changed, 9 insertions, 3 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index ffa5387..7159c35 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,5 +1,11 @@ 2011-08-30 Eric Botcazou <ebotcazou@adacore.com> + * gcc-interface/ada-tree.h (TYPE_EXTRA_SUBTYPE_P): Add internal check. + * gcc-interface/utils2.c (build_binary_op): Tighten condition. + (build_unary_op): Likewise. + +2011-08-30 Eric Botcazou <ebotcazou@adacore.com> + * raise-gcc.c: Do not include coretypes.h and tm.h. (setup_to_install): Remove test for compiler macro. * targext.c: Document use for the library. diff --git a/gcc/ada/gcc-interface/ada-tree.h b/gcc/ada/gcc-interface/ada-tree.h index 588c852..2d0e6e4 100644 --- a/gcc/ada/gcc-interface/ada-tree.h +++ b/gcc/ada/gcc-interface/ada-tree.h @@ -106,7 +106,7 @@ do { \ /* Nonzero in an arithmetic subtype if this is a subtype not known to the front-end. */ -#define TYPE_EXTRA_SUBTYPE_P(NODE) TYPE_LANG_FLAG_2 (NODE) +#define TYPE_EXTRA_SUBTYPE_P(NODE) TYPE_LANG_FLAG_2 (INTEGER_TYPE_CHECK (NODE)) /* For RECORD_TYPE, UNION_TYPE, and QUAL_UNION_TYPE, nonzero if this is the type for an object whose type includes its template in addition to diff --git a/gcc/ada/gcc-interface/utils2.c b/gcc/ada/gcc-interface/utils2.c index 25e293d..897f328 100644 --- a/gcc/ada/gcc-interface/utils2.c +++ b/gcc/ada/gcc-interface/utils2.c @@ -544,7 +544,7 @@ build_binary_op (enum tree_code op_code, tree result_type, operation_type = TREE_TYPE (TYPE_FIELDS (operation_type)); if (operation_type - && !AGGREGATE_TYPE_P (operation_type) + && TREE_CODE (operation_type) == INTEGER_TYPE && TYPE_EXTRA_SUBTYPE_P (operation_type)) operation_type = get_base_type (operation_type); @@ -1002,7 +1002,7 @@ build_unary_op (enum tree_code op_code, tree result_type, tree operand) operation_type = TREE_TYPE (TYPE_FIELDS (operation_type)); if (operation_type - && !AGGREGATE_TYPE_P (operation_type) + && TREE_CODE (operation_type) == INTEGER_TYPE && TYPE_EXTRA_SUBTYPE_P (operation_type)) operation_type = get_base_type (operation_type); |