tree f0d6097ef03932bc31cd73acddaac6fe2476c400
parent 1c62954820043b2c34db2ac2d9bafa53cd41e665
author Jayanth Othayoth <ojayanth@gmail.com> 1749280257 -0500
committer Jayanth Othayoth <ojayanth@gmail.com> 1749280257 -0500

clang-tidy: Replaced C-Style Casts with C++-Style

Resolved the following style warnings by replacing C-style casts
with appropriate C++-style casts

'''
    frup.cpp:193:34: style: C-style pointer casting [cstyleCast]
        const uint8_t* areabufptr = (const uint8_t*)areabuf;
                                     ^
    frup.cpp:255:34: style: C-style pointer casting [cstyleCast]
        const uint8_t* areabufptr = (const uint8_t*)areabuf;
                                     ^
    frup.cpp:333:34: style: C-style pointer casting [cstyleCast]
        const uint8_t* areabufptr = (const uint8_t*)areabuf;
                                     ^
    frup.cpp:463:34: style: C-style pointer casting [cstyleCast]
        const uint8_t* areabufptr = (const uint8_t*)areabuf;
                                     ^
    frup.cpp:611:26: style: C-style pointer casting [cstyleCast]
        char* bin_in_ascii = (char*)malloc(bin_in_ascii_len);
                             ^
    frup.cpp:616:24: style: C-style pointer casting [cstyleCast]
        char* bin_copy = &((char*)bin_in_ascii)[2];
                           ^
    frup.cpp:710:17: style: C-style pointer casting [cstyleCast]
                    (uint8_t*)msgbuf + 2, len, &chassis_type,
                    ^
    6/7 files checked 0% done
    frup.cpp:737:17: style: C-style pointer casting [cstyleCast]
                    (uint8_t*)msgbuf + 2, len, nullptr, &mfg_date_time,
                    ^
    frup.cpp:769:17: style: C-style pointer casting [cstyleCast]
                    (uint8_t*)msgbuf + 2, len, nullptr,
'''

Change-Id: Ifa13f8e5033ab09710ac6c7fa329396984947fc8
Signed-off-by: Jayanth Othayoth <ojayanth@gmail.com>
