Patchwork [v7,02/10] Add c++ keywords to QAPI helper script

login
register
mail settings
Submitter Tomoki Sekiyama
Date July 15, 2013, 4:20 p.m.
Message ID <20130715162033.16676.48300.stgit@outback>
Download mbox | patch
Permalink /patch/259113/
State New
Headers show

Comments

Tomoki Sekiyama - July 15, 2013, 4:20 p.m.
Add c++ keywords to avoid errors in compiling with c++ compiler.
This also renames class member of PciDeviceInfo to q_class.

Signed-off-by: Tomoki Sekiyama <tomoki.sekiyama@hds.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
---
 hmp.c           |    2 +-
 hw/pci/pci.c    |    2 +-
 scripts/qapi.py |   12 +++++++++++-
 3 files changed, 13 insertions(+), 3 deletions(-)
Michael Roth - July 22, 2013, 8:55 p.m.
Quoting Tomoki Sekiyama (2013-07-15 11:20:33)
> Add c++ keywords to avoid errors in compiling with c++ compiler.
> This also renames class member of PciDeviceInfo to q_class.
> 
> Signed-off-by: Tomoki Sekiyama <tomoki.sekiyama@hds.com>
> Reviewed-by: Laszlo Ersek <lersek@redhat.com>

Reviewed-by: Michael Roth <mdroth@linux.vnet.ibm.com>

> ---
>  hmp.c           |    2 +-
>  hw/pci/pci.c    |    2 +-
>  scripts/qapi.py |   12 +++++++++++-
>  3 files changed, 13 insertions(+), 3 deletions(-)
> 
> diff --git a/hmp.c b/hmp.c
> index 2daed43..69b1506 100644
> --- a/hmp.c
> +++ b/hmp.c
> @@ -524,7 +524,7 @@ static void hmp_info_pci_device(Monitor *mon, const PciDeviceInfo *dev)
>      if (dev->class_info.has_desc) {
>          monitor_printf(mon, "%s", dev->class_info.desc);
>      } else {
> -        monitor_printf(mon, "Class %04" PRId64, dev->class_info.class);
> +        monitor_printf(mon, "Class %04" PRId64, dev->class_info.q_class);
>      }
> 
>      monitor_printf(mon, ": PCI device %04" PRIx64 ":%04" PRIx64 "\n",
> diff --git a/hw/pci/pci.c b/hw/pci/pci.c
> index dcc85ef..5369996 100644
> --- a/hw/pci/pci.c
> +++ b/hw/pci/pci.c
> @@ -1461,7 +1461,7 @@ static PciDeviceInfo *qmp_query_pci_device(PCIDevice *dev, PCIBus *bus,
>      info->function = PCI_FUNC(dev->devfn);
> 
>      class = pci_get_word(dev->config + PCI_CLASS_DEVICE);
> -    info->class_info.class = class;
> +    info->class_info.q_class = class;
>      desc = get_class_desc(class);
>      if (desc->desc) {
>          info->class_info.has_desc = true;
> diff --git a/scripts/qapi.py b/scripts/qapi.py
> index baf1321..942bcc2 100644
> --- a/scripts/qapi.py
> +++ b/scripts/qapi.py
> @@ -169,9 +169,19 @@ def c_var(name, protect=True):
>      # GCC http://gcc.gnu.org/onlinedocs/gcc-4.7.1/gcc/C-Extensions.html
>      # excluding _.*
>      gcc_words = set(['asm', 'typeof'])
> +    # C++ ISO/IEC 14882:2003 2.11
> +    cpp_words = set(['bool', 'catch', 'class', 'const_cast', 'delete',
> +                     'dynamic_cast', 'explicit', 'false', 'friend', 'mutable',
> +                     'namespace', 'new', 'operator', 'private', 'protected',
> +                     'public', 'reinterpret_cast', 'static_cast', 'template',
> +                     'this', 'throw', 'true', 'try', 'typeid', 'typename',
> +                     'using', 'virtual', 'wchar_t',
> +                     # alternative representations
> +                     'and', 'and_eq', 'bitand', 'bitor', 'compl', 'not',
> +                     'not_eq', 'or', 'or_eq', 'xor', 'xor_eq'])
>      # namespace pollution:
>      polluted_words = set(['unix'])
> -    if protect and (name in c89_words | c99_words | c11_words | gcc_words | polluted_words):
> +    if protect and (name in c89_words | c99_words | c11_words | gcc_words | cpp_words | polluted_words):
>          return "q_" + name
>      return name.replace('-', '_').lstrip("*")

Patch

diff --git a/hmp.c b/hmp.c
index 2daed43..69b1506 100644
--- a/hmp.c
+++ b/hmp.c
@@ -524,7 +524,7 @@  static void hmp_info_pci_device(Monitor *mon, const PciDeviceInfo *dev)
     if (dev->class_info.has_desc) {
         monitor_printf(mon, "%s", dev->class_info.desc);
     } else {
-        monitor_printf(mon, "Class %04" PRId64, dev->class_info.class);
+        monitor_printf(mon, "Class %04" PRId64, dev->class_info.q_class);
     }
 
     monitor_printf(mon, ": PCI device %04" PRIx64 ":%04" PRIx64 "\n",
diff --git a/hw/pci/pci.c b/hw/pci/pci.c
index dcc85ef..5369996 100644
--- a/hw/pci/pci.c
+++ b/hw/pci/pci.c
@@ -1461,7 +1461,7 @@  static PciDeviceInfo *qmp_query_pci_device(PCIDevice *dev, PCIBus *bus,
     info->function = PCI_FUNC(dev->devfn);
 
     class = pci_get_word(dev->config + PCI_CLASS_DEVICE);
-    info->class_info.class = class;
+    info->class_info.q_class = class;
     desc = get_class_desc(class);
     if (desc->desc) {
         info->class_info.has_desc = true;
diff --git a/scripts/qapi.py b/scripts/qapi.py
index baf1321..942bcc2 100644
--- a/scripts/qapi.py
+++ b/scripts/qapi.py
@@ -169,9 +169,19 @@  def c_var(name, protect=True):
     # GCC http://gcc.gnu.org/onlinedocs/gcc-4.7.1/gcc/C-Extensions.html
     # excluding _.*
     gcc_words = set(['asm', 'typeof'])
+    # C++ ISO/IEC 14882:2003 2.11
+    cpp_words = set(['bool', 'catch', 'class', 'const_cast', 'delete',
+                     'dynamic_cast', 'explicit', 'false', 'friend', 'mutable',
+                     'namespace', 'new', 'operator', 'private', 'protected',
+                     'public', 'reinterpret_cast', 'static_cast', 'template',
+                     'this', 'throw', 'true', 'try', 'typeid', 'typename',
+                     'using', 'virtual', 'wchar_t',
+                     # alternative representations
+                     'and', 'and_eq', 'bitand', 'bitor', 'compl', 'not',
+                     'not_eq', 'or', 'or_eq', 'xor', 'xor_eq'])
     # namespace pollution:
     polluted_words = set(['unix'])
-    if protect and (name in c89_words | c99_words | c11_words | gcc_words | polluted_words):
+    if protect and (name in c89_words | c99_words | c11_words | gcc_words | cpp_words | polluted_words):
         return "q_" + name
     return name.replace('-', '_').lstrip("*")