diff options
author | Iain Buclaw <ibuclaw@gdcproject.org> | 2019-08-21 07:53:15 +0000 |
---|---|---|
committer | Iain Buclaw <ibuclaw@gcc.gnu.org> | 2019-08-21 07:53:15 +0000 |
commit | 7610ae806e4f611379766c1dca98e360b206665c (patch) | |
tree | 3f39861b72ad819316470ce48e25292bb4acc366 /gcc/d | |
parent | 2ee3ea4b9061e3bb5e19e9d9c02c273dc2585263 (diff) | |
download | gcc-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/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/d/d-builtins.cc | 10 |
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; } |