diff options
author | James E Wilson <wilson@specifixinc.com> | 2004-08-17 00:00:50 +0000 |
---|---|---|
committer | Jim Wilson <wilson@gcc.gnu.org> | 2004-08-16 17:00:50 -0700 |
commit | d97c633306d2f90198577afc5ead6ad4f8fb06ef (patch) | |
tree | c420f74d10fc4b348591d6a21ce1ec384cfa199d /gcc/tree.h | |
parent | 16d85b639cd5abc3662f49b02e28c4fe7136587f (diff) | |
download | gcc-d97c633306d2f90198577afc5ead6ad4f8fb06ef.zip gcc-d97c633306d2f90198577afc5ead6ad4f8fb06ef.tar.gz gcc-d97c633306d2f90198577afc5ead6ad4f8fb06ef.tar.bz2 |
Make unsafe vector float optimizations dependent on -ffast-math.
* tree.h (VECTOR_FLOAT_TYPE_P): New.
(FLOAT_TYPE_P): Use it.
* c-typeck.c (build_binary_op): After convert calls, check for
check for ERROR_MARK operands.
From-SVN: r86088
Diffstat (limited to 'gcc/tree.h')
-rw-r--r-- | gcc/tree.h | 11 |
1 files changed, 9 insertions, 2 deletions
@@ -668,11 +668,18 @@ extern void tree_operand_check_failed (int, enum tree_code, (TREE_CODE (TYPE) == COMPLEX_TYPE \ && TREE_CODE (TREE_TYPE (TYPE)) == REAL_TYPE) +/* Nonzero if TYPE represents a vector floating-point type. */ + +#define VECTOR_FLOAT_TYPE_P(TYPE) \ + (TREE_CODE (TYPE) == VECTOR_TYPE \ + && TREE_CODE (TREE_TYPE (TYPE)) == REAL_TYPE) + /* Nonzero if TYPE represents a floating-point type, including complex - floating-point types. */ + and vector floating-point types. */ #define FLOAT_TYPE_P(TYPE) \ - (SCALAR_FLOAT_TYPE_P (TYPE) || COMPLEX_FLOAT_TYPE_P (TYPE)) + (SCALAR_FLOAT_TYPE_P (TYPE) || COMPLEX_FLOAT_TYPE_P (TYPE) \ + || VECTOR_FLOAT_TYPE_P (TYPE)) /* Nonzero if TYPE represents an aggregate (multi-component) type. */ |