diff options
author | Alan Lawrence <alan.lawrence@arm.com> | 2014-12-09 20:08:39 +0000 |
---|---|---|
committer | Alan Lawrence <alalaw01@gcc.gnu.org> | 2014-12-09 20:08:39 +0000 |
commit | fca051af18ffcc9e44763c106e21fe3cf5e0d3ca (patch) | |
tree | 2a6552dbf063942d900e657879d12892db75ca5b /gcc | |
parent | d1e5f2c7e2a800e99509aadb9cdc6d3e76eeb1a9 (diff) | |
download | gcc-fca051af18ffcc9e44763c106e21fe3cf5e0d3ca.zip gcc-fca051af18ffcc9e44763c106e21fe3cf5e0d3ca.tar.gz gcc-fca051af18ffcc9e44763c106e21fe3cf5e0d3ca.tar.bz2 |
[AArch64]Improve error message for non-constant immediates
gcc/:
* gcc/config/aarch64-builtins.c (aarch64_simd_expand_args): Update error
message for SIMD_ARG_CONSTANT.
gcc/testsuite/:
* gcc.target/aarch64/arg-type-diagnostics-1.c: Call intrinsic, update
expected error message.
From-SVN: r218534
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/aarch64/aarch64-builtins.c | 4 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/aarch64/arg-type-diagnostics-1.c | 9 |
4 files changed, 18 insertions, 5 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index d6bb178..4ba5676 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,10 @@ 2014-12-09 Alan Lawrence <alan.lawrence@arm.com> + * gcc/config/aarch64-builtins.c (aarch64_simd_expand_args): Update error + message for SIMD_ARG_CONSTANT. + +2014-12-09 Alan Lawrence <alan.lawrence@arm.com> + * config/aarch64/aarch64-builtins.c (aarch64_types_binopv_qualifiers, TYPES_BINOPV): Delete. (enum aarch64_builtins): Add AARCH64_BUILTIN_SIMD_LANE_CHECK and diff --git a/gcc/config/aarch64/aarch64-builtins.c b/gcc/config/aarch64/aarch64-builtins.c index f52f524..e3779a4 100644 --- a/gcc/config/aarch64/aarch64-builtins.c +++ b/gcc/config/aarch64/aarch64-builtins.c @@ -926,8 +926,8 @@ aarch64_simd_expand_args (rtx target, int icode, int have_retval, if (!(*insn_data[icode].operand[opc].predicate) (op[opc], mode)) { - error_at (EXPR_LOCATION (exp), "incompatible type for argument %d, " - "expected %<const int%>", opc + 1); + error ("%Kargument %d must be a constant immediate", + exp, opc + 1 - have_retval); return const0_rtx; } break; diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 24822fe..8e536a4 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,10 @@ 2014-12-09 Alan Lawrence <alan.lawrence@arm.com> + * gcc.target/aarch64/arg-type-diagnostics-1.c: Call intrinsic, update + expected error message. + +2014-12-09 Alan Lawrence <alan.lawrence@arm.com> + * gcc.target/aarch64/simd/vset_lane_s16_const_1.c: New test. 2014-12-09 Alan Lawrence <alan.lawrence@arm.com> diff --git a/gcc/testsuite/gcc.target/aarch64/arg-type-diagnostics-1.c b/gcc/testsuite/gcc.target/aarch64/arg-type-diagnostics-1.c index 55dd9f6..a7b7cd3 100644 --- a/gcc/testsuite/gcc.target/aarch64/arg-type-diagnostics-1.c +++ b/gcc/testsuite/gcc.target/aarch64/arg-type-diagnostics-1.c @@ -3,13 +3,16 @@ #include "arm_neon.h" -void foo () +void foo (int a) { - int a; int32x2_t arg1; int32x2_t arg2; int32x2_t result; arg1 = vcreate_s32 (UINT64_C (0x0000ffffffffffff)); arg2 = vcreate_s32 (UINT64_C (0x16497fffffffffff)); - result = __builtin_aarch64_srsra_nv2si (arg1, arg2, a); /* { dg-error "incompatible type for argument" } */ + /* The correct line number is in the preamble to the error message, + not in the final line (which is all that dg-error inspects). Hence, + we have to tell dg-error to ignore the line number. */ + result = vrsra_n_s32 (arg1, arg2, a); + /* { dg-error "must be a constant immediate" "" { target *-*-* } 0 } */ } |