summarylogtreecommitdiffstats
path: root/0001-MSP430-Dont-specifically-set-TYPE_SIZE-for-__intN-ty.patch
diff options
context:
space:
mode:
authorvonPalitroque2018-02-03 20:43:00 -0500
committervonPalitroque2018-02-03 20:43:00 -0500
commit59d0002896150e78f103937d0e01044ea46f1a77 (patch)
treed85c3bbcf7d77132337915f96c994c0b269a97f7 /0001-MSP430-Dont-specifically-set-TYPE_SIZE-for-__intN-ty.patch
parentfa79a6543984603b6e79bd0acd584071aec18791 (diff)
downloadaur-59d0002896150e78f103937d0e01044ea46f1a77.tar.gz
Updated to latest upstream release.
Updated to latest upstream release. Some patches still need to be manually applied as these are scheduled for gcc 8.0, or not present in trunk.
Diffstat (limited to '0001-MSP430-Dont-specifically-set-TYPE_SIZE-for-__intN-ty.patch')
-rw-r--r--0001-MSP430-Dont-specifically-set-TYPE_SIZE-for-__intN-ty.patch129
1 files changed, 129 insertions, 0 deletions
diff --git a/0001-MSP430-Dont-specifically-set-TYPE_SIZE-for-__intN-ty.patch b/0001-MSP430-Dont-specifically-set-TYPE_SIZE-for-__intN-ty.patch
new file mode 100644
index 000000000000..d618f88f8822
--- /dev/null
+++ b/0001-MSP430-Dont-specifically-set-TYPE_SIZE-for-__intN-ty.patch
@@ -0,0 +1,129 @@
+From 5437c7ffa48f974c6960a1e308c4cdf0ea0a2648 Mon Sep 17 00:00:00 2001
+From: Jozef Lawrynowicz <jozef.l@somniumtech.com>
+Date: Thu, 24 Aug 2017 11:40:04 +0000
+Subject: [PATCH] MSP430: Dont specifically set TYPE_SIZE for __intN types
+
+2017-08-XX Jozef Lawrynowicz <jozef.l@somniumtech.com>
+
+ PR target/78849
+ * gcc/tree.c (build_common_tree_nodes): Dont set TYPE_SIZE for __intN
+ types.
+
+gcc/testsuite
+2017-08-XX Jozef Lawrynowicz <jozef.l@somniumtech.com>
+
+ PR target/78849
+ * gcc.target/msp430/msp430.exp: Remove -pedantic-errors from
+ DEFAULT_CFLAGS.
+ * gcc.target/msp430/pr78849.c: New test.
+---
+ gcc/testsuite/gcc.target/msp430/msp430.exp | 13 +++++---
+ gcc/testsuite/gcc.target/msp430/pr78849.c | 50 ++++++++++++++++++++++++++++++
+ gcc/tree.c | 2 --
+ 3 files changed, 59 insertions(+), 6 deletions(-)
+ create mode 100644 gcc/testsuite/gcc.target/msp430/pr78849.c
+
+diff --git a/gcc/testsuite/gcc.target/msp430/msp430.exp b/gcc/testsuite/gcc.target/msp430/msp430.exp
+index e54d531..3be8711 100644
+--- a/gcc/testsuite/gcc.target/msp430/msp430.exp
++++ b/gcc/testsuite/gcc.target/msp430/msp430.exp
+@@ -24,10 +24,15 @@ if { ![istarget msp430-*-*] } then {
+ # Load support procs.
+ load_lib gcc-dg.exp
+
+-# If a testcase doesn't have special options, use these.
++# The '-pedantic-errors' option in the global variable DEFAULT_CFLAGS that is
++# set by other drivers causes an error when the __int20 type is used, so remove
++# this option from DEFAULT_CFLAGS for the msp430 tests.
+ global DEFAULT_CFLAGS
+-if ![info exists DEFAULT_CFLAGS] then {
+- set DEFAULT_CFLAGS ""
++if [info exists DEFAULT_CFLAGS] then {
++ set MSP430_DEFAULT_CFLAGS \
++ [ string map { "-pedantic-errors" "" } $DEFAULT_CFLAGS ]
++} else {
++ set MSP430_DEFAULT_CFLAGS ""
+ }
+
+ # Initialize `dg'.
+@@ -35,7 +40,7 @@ dg-init
+
+ # Main loop.
+ dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.\[cCS\]]] \
+- "" $DEFAULT_CFLAGS
++ "" $MSP430_DEFAULT_CFLAGS
+
+ # All done.
+ dg-finish
+diff --git a/gcc/testsuite/gcc.target/msp430/pr78849.c b/gcc/testsuite/gcc.target/msp430/pr78849.c
+new file mode 100644
+index 0000000..f70f0bb
+--- /dev/null
++++ b/gcc/testsuite/gcc.target/msp430/pr78849.c
+@@ -0,0 +1,50 @@
++/* { dg-do compile } */
++/* { dg-final { scan-assembler ".size.*instance.*52" } } */
++
++struct t_inner
++{
++ __int20 a;
++ char val1;
++ __int20 b[3];
++ char val2;
++};
++
++struct t_full
++{
++ __int20 array[2];
++ char val1;
++ struct t_inner bb[2];
++ char val2;
++};
++
++struct t_full instance =
++{
++ {
++ 4231,
++ 3212,
++ },
++ 5,
++ {
++ {
++ 87680,
++ 20,
++ {
++ 2534,
++ 3,
++ 41,
++ },
++ 55,
++ },
++ {
++ 567,
++ 4,
++ {
++ 43522,
++ 5433,
++ 454,
++ },
++ 88,
++ },
++ },
++ 8,
++};
+diff --git a/gcc/tree.c b/gcc/tree.c
+index 4f56892..1c085ba 100644
+--- a/gcc/tree.c
++++ b/gcc/tree.c
+@@ -9526,8 +9526,6 @@ build_common_tree_nodes (bool signed_char)
+ {
+ int_n_trees[i].signed_type = make_signed_type (int_n_data[i].bitsize);
+ int_n_trees[i].unsigned_type = make_unsigned_type (int_n_data[i].bitsize);
+- TYPE_SIZE (int_n_trees[i].signed_type) = bitsize_int (int_n_data[i].bitsize);
+- TYPE_SIZE (int_n_trees[i].unsigned_type) = bitsize_int (int_n_data[i].bitsize);
+
+ if (int_n_data[i].bitsize > LONG_LONG_TYPE_SIZE
+ && int_n_enabled_p[i])
+--
+1.8.3.1
+