aboutsummaryrefslogtreecommitdiff
path: root/gcc/d
diff options
context:
space:
mode:
authorIain Buclaw <ibuclaw@gdcproject.org>2019-08-21 07:53:15 +0000
committerIain Buclaw <ibuclaw@gcc.gnu.org>2019-08-21 07:53:15 +0000
commit7610ae806e4f611379766c1dca98e360b206665c (patch)
tree3f39861b72ad819316470ce48e25292bb4acc366 /gcc/d
parent2ee3ea4b9061e3bb5e19e9d9c02c273dc2585263 (diff)
downloadgcc-7610ae806e4f611379766c1dca98e360b206665c.zip
gcc-7610ae806e4f611379766c1dca98e360b206665c.tar.gz
gcc-7610ae806e4f611379766c1dca98e360b206665c.tar.bz2
d: Fix internal compiler error: in d_build_c_type_nodes, at d/d-builtins.cc:783
gcc/d/ChangeLog: PR d/90445 * d-builtins.cc (d_build_c_type_nodes): Test UINTMAX_TYPE for setting uintmax_type_node. Set signed_size_type_node as the signed_type_for size_type_node. From-SVN: r274766
Diffstat (limited to 'gcc/d')
-rw-r--r--gcc/d/ChangeLog7
-rw-r--r--gcc/d/d-builtins.cc10
2 files changed, 11 insertions, 6 deletions
diff --git a/gcc/d/ChangeLog b/gcc/d/ChangeLog
index 00845df..6b692f5 100644
--- a/gcc/d/ChangeLog
+++ b/gcc/d/ChangeLog
@@ -1,5 +1,12 @@
2019-08-20 Iain Buclaw <ibuclaw@gdcproject.org>
+ PR d/90445
+ * d-builtins.cc (d_build_c_type_nodes): Test UINTMAX_TYPE for setting
+ uintmax_type_node. Set signed_size_type_node as the signed_type_for
+ size_type_node.
+
+2019-08-20 Iain Buclaw <ibuclaw@gdcproject.org>
+
PR d/90444
* d-builtins.cc (build_frontend_type): Build anonymous RECORD_TYPE
nodes as well, push all fields to the struct members.
diff --git a/gcc/d/d-builtins.cc b/gcc/d/d-builtins.cc
index 5619ebb..2f7319c 100644
--- a/gcc/d/d-builtins.cc
+++ b/gcc/d/d-builtins.cc
@@ -762,27 +762,25 @@ d_build_c_type_nodes (void)
= build_pointer_type (build_qualified_type (char_type_node,
TYPE_QUAL_CONST));
- if (strcmp (SIZE_TYPE, "unsigned int") == 0)
+ if (strcmp (UINTMAX_TYPE, "unsigned int") == 0)
{
intmax_type_node = integer_type_node;
uintmax_type_node = unsigned_type_node;
- signed_size_type_node = integer_type_node;
}
- else if (strcmp (SIZE_TYPE, "long unsigned int") == 0)
+ else if (strcmp (UINTMAX_TYPE, "long unsigned int") == 0)
{
intmax_type_node = long_integer_type_node;
uintmax_type_node = long_unsigned_type_node;
- signed_size_type_node = long_integer_type_node;
}
- else if (strcmp (SIZE_TYPE, "long long unsigned int") == 0)
+ else if (strcmp (UINTMAX_TYPE, "long long unsigned int") == 0)
{
intmax_type_node = long_long_integer_type_node;
uintmax_type_node = long_long_unsigned_type_node;
- signed_size_type_node = long_long_integer_type_node;
}
else
gcc_unreachable ();
+ signed_size_type_node = signed_type_for (size_type_node);
wint_type_node = unsigned_type_node;
pid_type_node = integer_type_node;
}