aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Schwab <schwab@suse.de>2017-03-21 11:10:17 +0000
committerAndreas Schwab <schwab@suse.de>2017-03-21 11:10:17 +0000
commit7c9df3ad7238bc1480d7a78a42dbce60300b4068 (patch)
treec5ce45da3dace2d3a0cd80a3da4b5b1538b54867
parent6947ab68ae19687ec333fb18372ddacd40b07c53 (diff)
Fix search_line_fast for aarch64/ILP32
* lex.c (search_line_fast) [__ARM_NEON && __ARM_64BIT_STATE]: Convert 64-bit value to boolean before passing to __builtin_expect. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@246312 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--libcpp/ChangeLog6
-rw-r--r--libcpp/lex.c2
2 files changed, 7 insertions, 1 deletions
diff --git a/libcpp/ChangeLog b/libcpp/ChangeLog
index 5c4b7a09f09..95200dacbda 100644
--- a/libcpp/ChangeLog
+++ b/libcpp/ChangeLog
@@ -1,3 +1,9 @@
+2017-03-21 Andreas Schwab <schwab@suse.de>
+
+ * lex.c (search_line_fast) [__ARM_NEON && __ARM_64BIT_STATE]:
+ Convert 64-bit value to boolean before passing to
+ __builtin_expect.
+
2017-03-16 Jason Merrill <jason@redhat.com>
* init.c (cpp_init_builtins): Update __cplusplus for C++17.
diff --git a/libcpp/lex.c b/libcpp/lex.c
index 8a8c79cde75..a431ac8e052 100644
--- a/libcpp/lex.c
+++ b/libcpp/lex.c
@@ -821,7 +821,7 @@ search_line_fast (const uchar *s, const uchar *end ATTRIBUTE_UNUSED)
v = vorrq_u8 (t, vceqq_u8 (data, repl_bs));
w = vorrq_u8 (u, vceqq_u8 (data, repl_qm));
t = vorrq_u8 (v, w);
- if (__builtin_expect (vpaddd_u64 ((uint64x2_t)t), 0))
+ if (__builtin_expect (vpaddd_u64 ((uint64x2_t)t) != 0, 0))
goto done;
}