Commit 7610ae80 by Iain Buclaw Committed by Iain Buclaw

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
parent 2ee3ea4b
2019-08-20 Iain Buclaw <ibuclaw@gdcproject.org> 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 PR d/90444
* d-builtins.cc (build_frontend_type): Build anonymous RECORD_TYPE * d-builtins.cc (build_frontend_type): Build anonymous RECORD_TYPE
nodes as well, push all fields to the struct members. nodes as well, push all fields to the struct members.
......
...@@ -762,27 +762,25 @@ d_build_c_type_nodes (void) ...@@ -762,27 +762,25 @@ d_build_c_type_nodes (void)
= build_pointer_type (build_qualified_type (char_type_node, = build_pointer_type (build_qualified_type (char_type_node,
TYPE_QUAL_CONST)); TYPE_QUAL_CONST));
if (strcmp (SIZE_TYPE, "unsigned int") == 0) if (strcmp (UINTMAX_TYPE, "unsigned int") == 0)
{ {
intmax_type_node = integer_type_node; intmax_type_node = integer_type_node;
uintmax_type_node = unsigned_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; intmax_type_node = long_integer_type_node;
uintmax_type_node = long_unsigned_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; intmax_type_node = long_long_integer_type_node;
uintmax_type_node = long_long_unsigned_type_node; uintmax_type_node = long_long_unsigned_type_node;
signed_size_type_node = long_long_integer_type_node;
} }
else else
gcc_unreachable (); gcc_unreachable ();
signed_size_type_node = signed_type_for (size_type_node);
wint_type_node = unsigned_type_node; wint_type_node = unsigned_type_node;
pid_type_node = integer_type_node; pid_type_node = integer_type_node;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment