https://godbolt.org/z/YWxW7h8sP
#include <cstdlib>
#include <cstring>
#include <memory>
extern "C" {
auto src1(void* p1, size_t old_len, size_t new_len) -> void* {
void* p2 = malloc(new_len);
memcpy(p2, p1, old_len);
free(p1);
return p2;
}
auto tgt1(void* p1, size_t old_len, size_t new_len) -> void* {
return realloc(p1, new_len);
}
}
alive proof: https://alive2.llvm.org/ce/z/RwPKVk