| 1568 | |
| 1569 | #ifndef _KERNEL |
| 1570 | static void |
| 1571 | DeserializeNumberFloat(char *szLocation, char *pBuffer, size_t zBUfferLength, struct CTypeDescriptor *pType, unsigned long ulNumber) |
| 1572 | { |
| 1573 | size_t zNumberWidth; |
| 1574 | |
| 1575 | ASSERT(szLocation); |
| 1576 | ASSERT(pBuffer); |
| 1577 | ASSERT(zBUfferLength > 0); |
| 1578 | ASSERT(pType); |
| 1579 | ASSERT(pType->mTypeKind == KIND_FLOAT); |
| 1580 | |
| 1581 | zNumberWidth = zDeserializeTypeWidth(pType); |
| 1582 | switch (zNumberWidth) { |
| 1583 | default: |
| 1584 | Report(true, "UBSan: Unexpected %zu-Bit Type in %s\n", zNumberWidth, szLocation); |
| 1585 | __unreachable(); |
| 1586 | /* NOTREACHED */ |
| 1587 | #ifdef __HAVE_LONG_DOUBLE |
| 1588 | case WIDTH_128: |
| 1589 | /* FALLTHROUGH */ |
| 1590 | case WIDTH_96: |
| 1591 | /* FALLTHROUGH */ |
| 1592 | case WIDTH_80: |
| 1593 | DeserializeFloatOverPointer(pBuffer, zBUfferLength, pType, REINTERPRET_CAST(unsigned long *, ulNumber)); |
| 1594 | break; |
| 1595 | #endif |
| 1596 | case WIDTH_64: |
| 1597 | if (sizeof(ulNumber) * CHAR_BIT < WIDTH_64) { |
| 1598 | DeserializeFloatOverPointer(pBuffer, zBUfferLength, pType, REINTERPRET_CAST(unsigned long *, ulNumber)); |
| 1599 | break; |
| 1600 | } |
| 1601 | /* FALLTHROUGH */ |
| 1602 | case WIDTH_32: |
| 1603 | /* FALLTHROUGH */ |
| 1604 | case WIDTH_16: |
| 1605 | DeserializeFloatInlined(pBuffer, zBUfferLength, pType, ulNumber); |
| 1606 | break; |
| 1607 | } |
| 1608 | } |
| 1609 | #endif |
| 1610 | |
| 1611 | static void |
no test coverage detected