aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Law <jlaw@ventanamicro.com>2023-12-19 21:05:25 -0700
committerJeff Law <jlaw@ventanamicro.com>2023-12-19 21:24:31 -0700
commit6c22779dfb09f9691c2893c5cabfe35187e1b9f6 (patch)
tree08c504faf1ac33dc14c82eda77d8af1ccba1177d
parent35914e5bba0dff600ce3e74a8fdc441c58b74330 (diff)
downloadgcc-6c22779dfb09f9691c2893c5cabfe35187e1b9f6.zip
gcc-6c22779dfb09f9691c2893c5cabfe35187e1b9f6.tar.gz
gcc-6c22779dfb09f9691c2893c5cabfe35187e1b9f6.tar.bz2
[committed] Stop forcing unsigned bitfields on mcore
The GCC manual has a whole section on signedness of bitfields with the ultimate conclusion that the property really isn't an ABI issue, but instead a C dialect issue (agreed). Furthermore it concludes that all targets should behave the same by default. So it was a mistake for the mcore port to force bitfields to be unsigned and that never should have been included. This patch rectifies that problem. I should have remembered this -- I went down this path once in the 90s. I don't recall which port anymore, but once Joseph mentioned this policy bits and pieces did start to come back to me. Restoring the proper default happens to also fix 170 tests in the GCC testsuite, some of which would go into infinite loops when bitfields were treated as signed values (pr88621 for example). Essentially the testing time cuts in half, which was actually the point of digging into pr88621 to begin with. gcc/ * config/mcore/mcore.h (CC1_SPEC): Do not set -funsigned-bitfields.
-rw-r--r--gcc/config/mcore/mcore.h3
1 files changed, 0 insertions, 3 deletions
diff --git a/gcc/config/mcore/mcore.h b/gcc/config/mcore/mcore.h
index 3de4f0b..c732dc0 100644
--- a/gcc/config/mcore/mcore.h
+++ b/gcc/config/mcore/mcore.h
@@ -81,9 +81,6 @@
extern char * mcore_current_function_name;
-/* The MCore ABI says that bitfields are unsigned by default. */
-#define CC1_SPEC "-funsigned-bitfields"
-
/* Target machine storage Layout. */
#define PROMOTE_MODE(MODE,UNSIGNEDP,TYPE) \