From 59fa213daac1cedd6d1564dfeacb1f6ce9397e98 Mon Sep 17 00:00:00 2001 From: Jozef Lawrynowicz Date: Thu, 16 Jul 2020 11:35:25 +0100 Subject: [PATCH 5/5] MSP430: Skip index-1.c test To access the "n - 100000"th element of "a" in this test, GCC will generate the following code for msp430-elf with -mcpu=msp430x: RLAM.W #1, R12 MOV.W a-3392(R12), R12 Since there aren't actually 100,000 elements in a, this means that "a-3392" offset calculated by the linker can overflow, as the address of "a" can validly be less than 3392. The relocations used for -mcpu=msp430 and -mlarge are not as strict and the calculated value is allowed to wrap around the address space, avoiding relocation overflows. gcc/testsuite/ChangeLog: * gcc.c-torture/execute/index-1.c: Skip for the default MSP430 430X ISA. --- gcc/testsuite/gcc.c-torture/execute/index-1.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/gcc/testsuite/gcc.c-torture/execute/index-1.c b/gcc/testsuite/gcc.c-torture/execute/index-1.c index b00090d834a..d96be4c77b8 100644 --- a/gcc/testsuite/gcc.c-torture/execute/index-1.c +++ b/gcc/testsuite/gcc.c-torture/execute/index-1.c @@ -1,3 +1,5 @@ +/* { dg-skip-if "strict reloc overflow checking" { msp430-*-* } { "*" } { "-mcpu=msp430" "-mlarge"} } */ + int a[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, -- 2.27.0