[libvirt] [PATCH 2/2] tests: Avoid "jump skips variable initialization" with GCC 9.
Peter Krempa
pkrempa at redhat.com
Mon Jan 21 15:38:25 UTC 2019
On Mon, Jan 21, 2019 at 15:13:21 +0000, Richard W.M. Jones wrote:
> GCC 9 gives pages of errors like:
>
> qemumonitorjsontest.c: In function 'mymain':
> qemumonitorjsontest.c:2904:9: error: jump skips variable initialization [-Werror=jump-misses-init]
> 2904 | goto cleanup;
> | ^~~~
> qemumonitorjsontest.c:3111:2: note: label 'cleanup' defined here
> 3111 | cleanup:
> | ^~~~~~~
> qemumonitorjsontest.c:2920:54: note: '({anonymous})' declared here
> 2920 | simpleFunc = (testQemuMonitorJSONSimpleFuncData) {.xmlopt = driver.xmlopt, \
> | ^
> qemumonitorjsontest.c:3008:5: note: in expansion of macro 'DO_TEST_GEN'
> 3008 | DO_TEST_GEN(qemuMonitorJSONBlockdevMediumInsert);
> | ^~~~~~~~~~~
>
> By moving the cleanup section up near the top of the function we can
> avoid this. I think a better way might be to disable the warning.
> ---
> tests/qemumonitorjsontest.c | 10 ++++++----
> 1 file changed, 6 insertions(+), 4 deletions(-)
>
> diff --git a/tests/qemumonitorjsontest.c b/tests/qemumonitorjsontest.c
> index 1a8a31717f..299c5f0cbe 100644
> --- a/tests/qemumonitorjsontest.c
> +++ b/tests/qemumonitorjsontest.c
> @@ -2900,8 +2900,12 @@ mymain(void)
>
> if (!(qapiData.schema = testQEMUSchemaLoad())) {
> VIR_TEST_VERBOSE("failed to load qapi schema\n");
> - ret = -1;
> - goto cleanup;
> + cleanup:
> + VIR_FREE(metaschemastr);
> + virJSONValueFree(metaschema);
> + virHashFree(qapiData.schema);
> + qemuTestDriverFree(&driver);
> + return -1;
> }
>
> #define DO_TEST(name) \
> @@ -3098,7 +3102,6 @@ mymain(void)
> if (!(metaschema = testQEMUSchemaGetLatest()) ||
> !(metaschemastr = virJSONValueToString(metaschema, false))) {
> VIR_TEST_VERBOSE("failed to load latest qapi schema\n");
> - ret = -1;
> goto cleanup;
We generally avoid jumps back. Also cleanup really should be at the end.
Wouldn't be enough just to memset the few structs at the beginning?
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20190121/61e20784/attachment-0001.sig>
More information about the libvir-list
mailing list