From: Jozef Lawrynowicz Date: Thu, 7 Jun 2018 10:09:42 +0000 (+0000) Subject: msp430.c (msp430_mcu_name): Set the "i" in the symbol defined for msp430i* devices... X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=cef87b05f2114ffc9aad85610eee0ec434ee5703;p=gcc.git msp430.c (msp430_mcu_name): Set the "i" in the symbol defined for msp430i* devices to be lower case. * gcc/config/msp430/msp430.c (msp430_mcu_name): Set the "i" in the symbol defined for msp430i* devices to be lower case. gcc/testsuite/gcc.target/msp430/ * msp430i-device-symbol.c: New test. * msp430f-device-symbol.c: New test. * msp430.h: New test header file. From-SVN: r261268 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 6526ca2800d..aa5cf3a1c8a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,13 @@ +2018-06-07 Jozef Lawrynowicz + + * gcc/config/msp430/msp430.c (msp430_mcu_name): Set the "i" in the + symbol defined for msp430i* devices to be lower case. + + gcc/testsuite/gcc.target/msp430/ + * msp430i-device-symbol.c: New test. + * msp430f-device-symbol.c: New test. + * msp430.h: New test header file. + 2018-06-07 Richard Biener * graphite-sese-to-poly.c (extract_affine): Avoid unneded diff --git a/gcc/config/msp430/msp430.c b/gcc/config/msp430/msp430.c index 90517615bba..685bdc8f785 100644 --- a/gcc/config/msp430/msp430.c +++ b/gcc/config/msp430/msp430.c @@ -725,10 +725,25 @@ msp430_mcu_name (void) if (target_mcu) { unsigned int i; - static char mcu_name [64]; + unsigned int start_upper; + unsigned int end_upper; + static char mcu_name[64]; - snprintf (mcu_name, sizeof (mcu_name) - 1, "__%s__", target_mcu); - for (i = strlen (mcu_name); i--;) + /* The 'i' in the device name symbol for msp430i* devices must be lower + case, to match the expected symbol in msp430.h. */ + if (strncmp (target_mcu, "msp430i", 7) == 0) + { + snprintf (mcu_name, sizeof (mcu_name) - 1, "__MSP430i%s__", + target_mcu + 7); + start_upper = 9; + } + else + { + snprintf (mcu_name, sizeof (mcu_name) - 1, "__%s__", target_mcu); + start_upper = 2; + } + end_upper = strlen (mcu_name) - 2; + for (i = start_upper; i < end_upper; i++) mcu_name[i] = TOUPPER (mcu_name[i]); return mcu_name; } diff --git a/gcc/testsuite/gcc.target/msp430/msp430.h b/gcc/testsuite/gcc.target/msp430/msp430.h new file mode 100644 index 00000000000..1dedbc0483e --- /dev/null +++ b/gcc/testsuite/gcc.target/msp430/msp430.h @@ -0,0 +1,8 @@ +#if defined (__MSP430i2020__) + +#elif defined (__MSP430F5529__) + +#else +#error "Device not supported by msp430.h" + +#endif diff --git a/gcc/testsuite/gcc.target/msp430/msp430f-device-symbol.c b/gcc/testsuite/gcc.target/msp430/msp430f-device-symbol.c new file mode 100644 index 00000000000..e41cdaf1c16 --- /dev/null +++ b/gcc/testsuite/gcc.target/msp430/msp430f-device-symbol.c @@ -0,0 +1,4 @@ +/* { dg-do preprocess } */ +/* { dg-skip-if "" { "*-*-*" } { "-mcpu=msp430" "-mmcu=*" "-mhwmult=32bit" "-mhwmult=16bit" } { "" } } */ +/* { dg-options "-mmcu=msp430f5529" } */ +#include "msp430.h" diff --git a/gcc/testsuite/gcc.target/msp430/msp430i-device-symbol.c b/gcc/testsuite/gcc.target/msp430/msp430i-device-symbol.c new file mode 100644 index 00000000000..36a86c14469 --- /dev/null +++ b/gcc/testsuite/gcc.target/msp430/msp430i-device-symbol.c @@ -0,0 +1,4 @@ +/* { dg-do preprocess } */ +/* { dg-skip-if "" { "*-*-*" } { "-mlarge" "-mcpu=msp430x*" "-mmcu=*" "-mhwmult=32bit" "-mhwmult=f5series" } { "" } } */ +/* { dg-options "-mmcu=msp430i2020" } */ +#include "msp430.h"