// Adapted semantic slice of apps/req.c at OpenSSL revision // 437b14b533fe7f7408e3ebca6d5569f1d3347b1a. struct Key { int value; }; struct Certificate { Key* key; }; int copyPublicKey(Certificate certificate) { Key* pktmp = certificate.key; // Models the downstream use by X509_REQ_set_pubkey without its dependencies. return pktmp->value; } int main() { Certificate certificate{nullptr}; return copyPublicKey(certificate); }