aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJozef Lawrynowicz <jozef.l@mittosystems.com>2018-08-06 10:29:17 +0000
committerJozef Lawrynowicz <jozefl@gcc.gnu.org>2018-08-06 10:29:17 +0000
commitedbbb166f762f82bc926ce42c0b2e1c5b4996675 (patch)
treedfd075499e7bfebb83e09b87fd54c7d4274be38d /gcc
parent8df47bdf99b8eb5d68736fe058559899c4270e4f (diff)
downloadgcc-edbbb166f762f82bc926ce42c0b2e1c5b4996675.zip
gcc-edbbb166f762f82bc926ce42c0b2e1c5b4996675.tar.gz
gcc-edbbb166f762f82bc926ce42c0b2e1c5b4996675.tar.bz2
re PR target/86662 (msp430-elf segfault with -flto and -mlarge)
PR target/86662 * gcc/tree.c (build_common_tree_nodes): Initialize integer_types array with all enabled __intN types. * gcc/testsuite/gcc.target/msp430/pr86662.c: New test. From-SVN: r263332
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog8
-rw-r--r--gcc/testsuite/gcc.target/msp430/pr86662.c13
-rw-r--r--gcc/tree.c3
3 files changed, 22 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index a47e00e..78e51d2 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,11 @@
+2018-08-06 Jozef Lawrynowicz <jozef.l@mittosystems.com>
+
+ PR target/86662
+ * gcc/tree.c (build_common_tree_nodes): Initialize integer_types array
+ with all enabled __intN types.
+
+ * gcc/testsuite/gcc.target/msp430/pr86662.c: New test.
+
2018-08-06 Alan Hayward <alan.hayward@arm.com>
* alias.c (record_set): Check for clobber high.
diff --git a/gcc/testsuite/gcc.target/msp430/pr86662.c b/gcc/testsuite/gcc.target/msp430/pr86662.c
new file mode 100644
index 0000000..1144b3e
--- /dev/null
+++ b/gcc/testsuite/gcc.target/msp430/pr86662.c
@@ -0,0 +1,13 @@
+/* PR/86662 */
+
+/* { dg-do link } */
+/* -nostdlib prevents link errors due to mismatched code models for
+ libgloss objects. */
+/* { dg-options "-mlarge -flto -nostdlib" } */
+/* { dg-skip-if "" { *-*-* } { "-mcpu=msp430" } } */
+
+int main(void)
+{
+ __int20 n = 5;
+ return 0;
+}
diff --git a/gcc/tree.c b/gcc/tree.c
index 28952e5..0ec74af 100644
--- a/gcc/tree.c
+++ b/gcc/tree.c
@@ -9802,8 +9802,7 @@ 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);
- if (int_n_data[i].bitsize > LONG_LONG_TYPE_SIZE
- && int_n_enabled_p[i])
+ if (int_n_enabled_p[i])
{
integer_types[itk_intN_0 + i * 2] = int_n_trees[i].signed_type;
integer_types[itk_unsigned_intN_0 + i * 2] = int_n_trees[i].unsigned_type;