[libvirt] [PATCHv2] storage_encryption: silence clang warning

Eric Blake eblake at redhat.com
Mon May 10 17:58:26 UTC 2010


For printf("%*s",foo,bar), clang complains if foo is not int:

warning: field width should have type 'int', but argument has
type 'unsigned int' [-Wformat]

* src/conf/storage_encryption_conf.c
(virStorageEncryptionSecretFormat, virStorageEncryptionFormat):
Use correct type.
* src/conf/storage_encryption_conf.h (virStorageEncryptionFormat):
Likewise.
---

> > +    virBufferVSprintf(buf, "%*s</encryption>\n", (int) indent, "");
> > 
> What's the need for the cast if the function parameter is changed to
> int instead of unsigned int?  The two callers pass in hardcoded
> values, so I'd think just changing the param would silence the
> warning, wouldn't it?

Sure - it's just one more file to touch.  Change from v1: update
the .h file to use fewer casts.

 src/conf/storage_encryption_conf.c |    9 +++++----
 src/conf/storage_encryption_conf.h |    4 ++--
 2 files changed, 7 insertions(+), 6 deletions(-)

diff --git a/src/conf/storage_encryption_conf.c b/src/conf/storage_encryption_conf.c
index 7a64050..7bbdbc1 100644
--- a/src/conf/storage_encryption_conf.c
+++ b/src/conf/storage_encryption_conf.c
@@ -1,7 +1,7 @@
 /*
  * storage_encryption_conf.c: volume encryption information
  *
- * Copyright (C) 2009 Red Hat, Inc.
+ * Copyright (C) 2009-2010 Red Hat, Inc.
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
@@ -216,7 +216,7 @@ virStorageEncryptionParseNode(xmlDocPtr xml, xmlNodePtr root)
 static int
 virStorageEncryptionSecretFormat(virBufferPtr buf,
                                  virStorageEncryptionSecretPtr secret,
-                                 unsigned int indent)
+                                 int indent)
 {
     const char *type;
     char uuidstr[VIR_UUID_STRING_BUFLEN];
@@ -237,7 +237,7 @@ virStorageEncryptionSecretFormat(virBufferPtr buf,
 int
 virStorageEncryptionFormat(virBufferPtr buf,
                            virStorageEncryptionPtr enc,
-                           unsigned int indent)
+                           int indent)
 {
     const char *format;
     size_t i;
@@ -252,7 +252,8 @@ virStorageEncryptionFormat(virBufferPtr buf,
                       indent, "", format);

     for (i = 0; i < enc->nsecrets; i++) {
-        if (virStorageEncryptionSecretFormat(buf, enc->secrets[i], indent + 2) < 0)
+        if (virStorageEncryptionSecretFormat(buf, enc->secrets[i],
+                                             indent + 2) < 0)
             return -1;
     }

diff --git a/src/conf/storage_encryption_conf.h b/src/conf/storage_encryption_conf.h
index 8309255..c722cc6 100644
--- a/src/conf/storage_encryption_conf.h
+++ b/src/conf/storage_encryption_conf.h
@@ -1,7 +1,7 @@
 /*
  * storage_encryption_conf.h: volume encryption information
  *
- * Copyright (C) 2009 Red Hat, Inc.
+ * Copyright (C) 2009-2010 Red Hat, Inc.
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
@@ -68,7 +68,7 @@ virStorageEncryptionPtr virStorageEncryptionParseNode(xmlDocPtr xml,
                                                       xmlNodePtr root);
 int virStorageEncryptionFormat(virBufferPtr buf,
                                virStorageEncryptionPtr enc,
-                               unsigned int indent);
+                               int indent);

 /* A helper for VIR_STORAGE_ENCRYPTION_FORMAT_QCOW */
 enum {
-- 
1.7.0.1




More information about the libvir-list mailing list