| 98 | } |
| 99 | |
| 100 | static enum parse_opt_result set_int_value(const struct option *opt, |
| 101 | enum opt_parsed flags, |
| 102 | intmax_t value) |
| 103 | { |
| 104 | switch (opt->precision) { |
| 105 | case sizeof(int8_t): |
| 106 | *(int8_t *)opt->value = value; |
| 107 | return 0; |
| 108 | case sizeof(int16_t): |
| 109 | *(int16_t *)opt->value = value; |
| 110 | return 0; |
| 111 | case sizeof(int32_t): |
| 112 | *(int32_t *)opt->value = value; |
| 113 | return 0; |
| 114 | case sizeof(int64_t): |
| 115 | *(int64_t *)opt->value = value; |
| 116 | return 0; |
| 117 | default: |
| 118 | BUG("invalid precision for option %s", optname(opt, flags)); |
| 119 | } |
| 120 | } |
| 121 | |
| 122 | static int signed_int_fits(intmax_t value, size_t precision) |
| 123 | { |
no test coverage detected