diff options
author | Richard Sandiford <richard.sandiford@arm.com> | 2019-12-04 09:18:13 +0000 |
---|---|---|
committer | Richard Sandiford <rsandifo@gcc.gnu.org> | 2019-12-04 09:18:13 +0000 |
commit | 6f1e966874de23d7e47cbaebfb5a9de6759cb089 (patch) | |
tree | beca6737116bc2ac5c28e4a0d8e95cbb7b85e652 /gcc/fold-const.c | |
parent | a8a5f4cc04c802d74176f6935509b8a4303de399 (diff) | |
download | gcc-6f1e966874de23d7e47cbaebfb5a9de6759cb089.zip gcc-6f1e966874de23d7e47cbaebfb5a9de6759cb089.tar.gz gcc-6f1e966874de23d7e47cbaebfb5a9de6759cb089.tar.bz2 |
[C++] Opt out of GNU vector extensions for built-in SVE types
This is the C++ equivalent of r277950. The changes are very similar
to there. Perhaps the only noteworthy thing (that I know of) is that
the patch continues to treat !gnu_vector_type_p vector types as literal
types/potential constexprs. Disabling the GNU vector extensions
shouldn't in itself stop the types from being literal types, since
whatever the target provides instead might be constexpr material.
2019-12-04 Richard Sandiford <richard.sandiford@arm.com>
gcc/cp/
* cp-tree.h (CP_AGGREGATE_TYPE_P): Check for gnu_vector_type_p
instead of VECTOR_TYPE.
* call.c (build_conditional_expr_1): Restrict vector handling
to vectors that satisfy gnu_vector_type_p.
* cvt.c (ocp_convert): Only allow vectors to be converted
to bool if they satisfy gnu_vector_type_p.
(build_expr_type_conversion): Only allow conversions from
vectors if they satisfy gnu_vector_type_p.
* typeck.c (cp_build_binary_op): Only allow binary operators to be
applied to vectors if they satisfy gnu_vector_type_p.
(cp_build_unary_op): Likewise unary operators.
(build_reinterpret_cast_1):
gcc/testsuite/
* g++.target/aarch64/sve/acle/general-c++/gnu_vectors_1.C: New test.
* g++.target/aarch64/sve/acle/general-c++/gnu_vectors_2.C: New test.
From-SVN: r278957
Diffstat (limited to 'gcc/fold-const.c')
0 files changed, 0 insertions, 0 deletions