diff options
Diffstat (limited to 'gcc/gcc/elna-tree.cc')
| -rw-r--r-- | gcc/gcc/elna-tree.cc | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/gcc/gcc/elna-tree.cc b/gcc/gcc/elna-tree.cc index 55e359b..6aaf6f9 100644 --- a/gcc/gcc/elna-tree.cc +++ b/gcc/gcc/elna-tree.cc @@ -289,11 +289,19 @@ namespace elna::gcc if (literal_value.is_signed()) { - return build_int_cst(elna_int_type_node, literal_value.to<std::int32_t>()); + if (auto converted = literal_value.to_signed()) + { + return build_int_cst(elna_int_type_node, *converted); + } + return NULL_TREE; } else { - return build_int_cstu(elna_word_type_node, literal_value.to<std::uint32_t>()); + if (auto converted = literal_value.to_unsigned()) + { + return build_int_cstu(elna_word_type_node, *converted); + } + return NULL_TREE; } } else if (std::holds_alternative<double>(constant_value)) |
