Changeset 4886 in CLRX


Ignore:
Timestamp:
Aug 12, 2019, 9:37:49 PM (7 days ago)
Author:
matszpk
Message:

CLRadeonExtender: ROCm: Fix compiler warning in ROCm MsgPack? stuff.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • CLRadeonExtender/trunk/amdbin/ROCmBinaries.cpp

    r4885 r4886  
    14291429        throw ParseException("MsgPack: Can't parse float value");
    14301430    const cxbyte code = *dataPtr++;
    1431     double vf = 0.0;
    14321431    if (code == 0xca)
    14331432    {
    1434         uint32_t v = 0;
     1433        union {
     1434            uint32_t v;
     1435            float vf;
     1436        } v;
     1437        v.v = 0;
    14351438        if (dataPtr+3>=dataEnd)
    14361439            throw ParseException("MsgPack: Can't parse float value");
    14371440        for (cxuint i = 0; i < 32; i+=8)
    1438             v |= uint32_t(*dataPtr++)<<i;
    1439         vf = *reinterpret_cast<float*>(&v);
     1441            v.v |= uint32_t(*dataPtr++)<<i;
     1442        return v.vf;
    14401443    }
    14411444    else if (code == 0xcb)
    14421445    {
    1443         uint64_t v = 0;
     1446        union {
     1447            uint64_t v;
     1448            double vf;
     1449        } v;
     1450        v.v = 0;
    14441451        if (dataPtr+7>=dataEnd)
    14451452            throw ParseException("MsgPack: Can't parse float value");
    14461453        for (cxuint i = 0; i < 64; i+=8)
    1447             v |= uint64_t(*dataPtr++)<<i;
    1448         vf = *reinterpret_cast<double*>(&v);
     1454            v.v |= uint64_t(*dataPtr++)<<i;
     1455        return v.vf;
    14491456    }
    14501457    else
    14511458        throw ParseException("MsgPack: Can't parse float value");
    1452     return vf;
    14531459}
    14541460
Note: See TracChangeset for help on using the changeset viewer.