diff options
author | Markus Trippelsdorf <markus@trippelsdorf.de> | 2015-03-04 17:28:56 +0000 |
---|---|---|
committer | Markus Trippelsdorf <trippels@gcc.gnu.org> | 2015-03-04 17:28:56 +0000 |
commit | 44d952440e2c353b61f0d9d377c0c4832167c475 (patch) | |
tree | 7ce90b82daec105b46dc60b65c6c3e744d05dd89 /libcpp | |
parent | b6584a72ac8d305731e1771a05c117dc11a3d553 (diff) | |
download | gcc-44d952440e2c353b61f0d9d377c0c4832167c475.tar.gz |
re PR target/65261 (bootstrap-ubsan ppc64le: gcc/libcpp/lex.c:552:30: runtime error: load of misaligned address 0x01002172dfc6 for type 'const uchar', which requires 16 byte alignment)
Fix PR65261
Running bootstrap-ubsan on ppc64le shows many instances of:
libcpp/lex.c:552:30: runtime error: load of misaligned address
0x01001f31d37a for type 'const uchar', which requires 16 byte alignment
But the unaligned vector loads are intended in this case, because they
are preferable to forced-alignment on POWER8. So just silence the ubsan
errors.
2015-03-02 Markus Trippelsdorf <markus@trippelsdorf.de>
include/
PR target/65261
* ansidecl.h (ATTRIBUTE_NO_SANITIZE_UNDEFINED): New macro.
libcpp/
PR target/65261
* lex.c (search_line_fast): Silence ubsan errors.
From-SVN: r221190
Diffstat (limited to 'libcpp')
-rw-r--r-- | libcpp/ChangeLog | 5 | ||||
-rw-r--r-- | libcpp/lex.c | 1 |
2 files changed, 6 insertions, 0 deletions
diff --git a/libcpp/ChangeLog b/libcpp/ChangeLog index 325f7060963..2d84835b7b7 100644 --- a/libcpp/ChangeLog +++ b/libcpp/ChangeLog @@ -1,3 +1,8 @@ +2015-03-02 Markus Trippelsdorf <markus@trippelsdorf.de> + + PR target/65261 + * lex.c (search_line_fast): Silence ubsan errors. + 2015-02-03 <dodji@redhat.com> PR preprocessor/64803 diff --git a/libcpp/lex.c b/libcpp/lex.c index 4638510166f..0dc47371183 100644 --- a/libcpp/lex.c +++ b/libcpp/lex.c @@ -519,6 +519,7 @@ init_vectorized_lexer (void) and VSX unaligned loads (when VSX is available). This is otherwise the same as the pre-GCC 5 version. */ +ATTRIBUTE_NO_SANITIZE_UNDEFINED static const uchar * search_line_fast (const uchar *s, const uchar *end ATTRIBUTE_UNUSED) { |