libpldmresponder : Migrate to placement_new from reinterpret casting

reinterpret_cast is prohibited by the C++ core guidelines because
it takes the behavior outside the language definition and gives
problems with type safety. Placement-new on the other-hand allows
to control the object storage while still properly instantiating
an object,keeping the behavior inside the C++ language
specification.

Change-Id: If96afcb2c9dbea8fb6815d74a2181ca9ed04903a
Signed-off-by: Pavithra Barithaya <pavithrabarithaya07@gmail.com>
diff --git a/libpldmresponder/fru.cpp b/libpldmresponder/fru.cpp
index 5a5cec9..440057f 100644
--- a/libpldmresponder/fru.cpp
+++ b/libpldmresponder/fru.cpp
@@ -455,7 +455,7 @@
     Response response(sizeof(pldm_msg_hdr) +
                           PLDM_GET_FRU_RECORD_TABLE_METADATA_RESP_BYTES,
                       0);
-    auto responsePtr = reinterpret_cast<pldm_msg*>(response.data());
+    auto responsePtr = new (response.data()) pldm_msg;
 
     impl.getFRURecordTableMetadata();
 
@@ -484,7 +484,7 @@
 
     Response response(
         sizeof(pldm_msg_hdr) + PLDM_GET_FRU_RECORD_TABLE_MIN_RESP_BYTES, 0);
-    auto responsePtr = reinterpret_cast<pldm_msg*>(response.data());
+    auto responsePtr = new (response.data()) pldm_msg;
 
     auto rc =
         encode_get_fru_record_table_resp(request->hdr.instance_id, PLDM_SUCCESS,
@@ -536,7 +536,7 @@
     auto respPayloadLength =
         PLDM_GET_FRU_RECORD_BY_OPTION_MIN_RESP_BYTES + fruData.size();
     Response response(sizeof(pldm_msg_hdr) + respPayloadLength, 0);
-    auto responsePtr = reinterpret_cast<pldm_msg*>(response.data());
+    auto responsePtr = new (response.data()) pldm_msg;
 
     rc = encode_get_fru_record_by_option_resp(
         request->hdr.instance_id, PLDM_SUCCESS, 0, PLDM_START_AND_END,
@@ -574,7 +574,7 @@
 
     Response response(
         sizeof(pldm_msg_hdr) + PLDM_SET_FRU_RECORD_TABLE_RESP_BYTES);
-    struct pldm_msg* responsePtr = reinterpret_cast<pldm_msg*>(response.data());
+    struct pldm_msg* responsePtr = new (response.data()) pldm_msg;
 
     rc = encode_set_fru_record_table_resp(
         request->hdr.instance_id, PLDM_SUCCESS, 0 /* nextDataTransferHandle */,