aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPierre Langlois <pierre.langlois@arm.com>2017-05-05 15:17:25 +0100
committerPierre Langlois <pierre.langlois@arm.com>2017-05-08 13:24:01 +0100
commit6c266808812883d690cb944c2763d22c50d116a6 (patch)
treef6aad8337aba3af78ff3ee9c57d51de0d250f3dd
parentf7bf65575dd402847c15b566c2873d59cbe6ee30 (diff)
Fix array-bounds warning when compiling with GCC 6
The following code triggers a warning with newer GCC: ~~~ const uint32_t data[] = {0, 1, 2, 3}; uintptr_t ptr = reinterpret_cast<uintptr_t>(data - 1); ~~~ We safely did this in a test, and this test was only enabled for 32-bit hosts. Fix this by decrementing after the cast. Change-Id: Ic365598d59d75f86c761e8319aead0ffe2219336
-rw-r--r--test/aarch32/test-assembler-aarch32.cc8
1 files changed, 2 insertions, 6 deletions
diff --git a/test/aarch32/test-assembler-aarch32.cc b/test/aarch32/test-assembler-aarch32.cc
index 01ec44bd..744c07dc 100644
--- a/test/aarch32/test-assembler-aarch32.cc
+++ b/test/aarch32/test-assembler-aarch32.cc
@@ -5469,12 +5469,10 @@ TEST(ldm_stm_no_writeback) {
__ Mov(r0, reinterpret_cast<uintptr_t>(src));
__ Ldm(r0, NO_WRITE_BACK, RegisterList(r1, r2, r3, r4));
- ;
__ Ldm(r0, NO_WRITE_BACK, RegisterList(r5, r6, r9, r11));
__ Mov(r0, reinterpret_cast<uintptr_t>(dst1));
__ Stm(r0, NO_WRITE_BACK, RegisterList(r1, r2, r3, r4));
- ;
__ Mov(r0, reinterpret_cast<uintptr_t>(dst2));
__ Stm(r0, NO_WRITE_BACK, RegisterList(r5, r6, r9, r11));
@@ -5524,9 +5522,7 @@ TEST(ldm_stm_writeback) {
__ Mov(r0, reinterpret_cast<uintptr_t>(src));
__ Ldm(r0, WRITE_BACK, RegisterList(r2, r3));
- ;
__ Ldm(r0, WRITE_BACK, RegisterList(r4, r5));
- ;
__ Mov(r1, reinterpret_cast<uintptr_t>(dst));
__ Stm(r1, WRITE_BACK, RegisterList(r2, r3, r4, r5));
@@ -5572,7 +5568,7 @@ TEST_A32(ldm_stm_da_ib) {
__ Ldmda(r11, WRITE_BACK, RegisterList(r0, r1));
__ Ldmda(r11, NO_WRITE_BACK, RegisterList(r2, r3));
- __ Mov(r10, reinterpret_cast<uintptr_t>(src2 - 1));
+ __ Mov(r10, reinterpret_cast<uintptr_t>(src2) - sizeof(src2[0]));
__ Ldmib(r10, WRITE_BACK, RegisterList(r4, r5));
__ Ldmib(r10, NO_WRITE_BACK, RegisterList(r6, r7));
@@ -5580,7 +5576,7 @@ TEST_A32(ldm_stm_da_ib) {
__ Stmda(r9, WRITE_BACK, RegisterList(r0, r1));
__ Stmda(r9, NO_WRITE_BACK, RegisterList(r2, r3));
- __ Mov(r8, reinterpret_cast<uintptr_t>(dst2 - 1));
+ __ Mov(r8, reinterpret_cast<uintptr_t>(dst2) - sizeof(dst2[0]));
__ Stmib(r8, WRITE_BACK, RegisterList(r4, r5));
__ Stmib(r8, NO_WRITE_BACK, RegisterList(r6, r7));