OSDN Git Service

Move local union such that it doesn't escape (and get optimized out).
authorStephen Hines <srhines@google.com>
Tue, 18 Aug 2015 00:16:59 +0000 (17:16 -0700)
committerStephen Hines <srhines@google.com>
Tue, 18 Aug 2015 00:39:35 +0000 (00:39 +0000)
commitf86df5580e86c2405c71c708408eeee57b38c0d3
tree4bcaaddc41fa8e810405847eb3d10f334f93eef7
parent451ca998f1eed36d5fefb5593ed43605c4d6c0bd
Move local union such that it doesn't escape (and get optimized out).

Bug: 23239997

The Clang update exposed a latent bug in the code here, where a pointer
to a local variable escaped the encapsulating block. Clang noticed the
end of this object's lifetime, and removed assignments to its original
storage (because they are now dead assignments). By moving the union out
of the block, it will survive until the sendmsg() call, and the expected
writes will be restored.

Change-Id: If2106d2f53d761ddca6dd26ab2648244d737dcd9
client/FwmarkClient.cpp