aboutsummaryrefslogtreecommitdiff
path: root/gcc/gcc/elna-tree.cc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/gcc/elna-tree.cc')
-rw-r--r--gcc/gcc/elna-tree.cc12
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))