Differences From Artifact [dc5760d5ce]:
- File
src/runtime/exception.m
— part of check-in
[879e69dd3d]
at
2018-04-08 18:18:16
on branch trunk
— Make usage of several _Unwind_* functions optional
This removes the special casing for Itanium and makes compilation on
OpenBSD/SPARC64 work with clang. (user: js, size: 19891) [annotate] [blame] [check-ins using]
To Artifact [5d641d7c4e]:
- File src/runtime/exception.m — part of check-in [681e1a13f3] at 2018-04-08 19:32:36 on branch trunk — exception.m: Handle read of unaligned values (user: js, size: 19935) [annotate] [blame] [check-ins using]
︙ | ︙ | |||
335 336 337 338 339 340 341 | read_value(uint8_t enc, const uint8_t **ptr) { uint64_t value; if (enc == DW_EH_PE_aligned) OBJC_ERROR("DW_EH_PE_aligned is not implemented!") | | | > > | | | | 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 | read_value(uint8_t enc, const uint8_t **ptr) { uint64_t value; if (enc == DW_EH_PE_aligned) OBJC_ERROR("DW_EH_PE_aligned is not implemented!") #define READ(type) \ { \ type tmp; \ memcpy(&tmp, *ptr, sizeof(type)); \ value = tmp; \ *ptr += size_for_encoding(enc); \ break; \ } switch (enc & 0x0F) { case DW_EH_PE_absptr: READ(uintptr_t) case DW_EH_PE_uleb128: value = read_uleb128(ptr); break; |
︙ | ︙ |