diff options
| author | Eugen Wissner <belka@caraus.de> | 2026-08-01 16:05:51 +0200 |
|---|---|---|
| committer | Eugen Wissner <belka@caraus.de> | 2026-08-01 16:05:51 +0200 |
| commit | 71b3bbb7698b13b42c99a4ca66c27db4a6189ff8 (patch) | |
| tree | 1fc6ed246ecc0cf561f38ad774a4815ba357ea7b /gcc | |
| parent | 8539c10542a4be1e1127daea60bf1b1e4c37e092 (diff) | |
| download | elna-71b3bbb7698b13b42c99a4ca66c27db4a6189ff8.tar.gz | |
Enforce integral values in slice ranges
Diffstat (limited to 'gcc')
| -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)) |
