From 97c86ff0e6771718df4a3ec2adb4df72fb9abdb5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Marjam=C3=A4ki?= Date: Fri, 13 Apr 2018 21:15:43 +0200 Subject: [PATCH] Dumps: Added isVirtual/isImplicitlyVirtual info --- addons/cppcheckdata.py | 7 +++++++ lib/symboldatabase.cpp | 6 ++++++ 2 files changed, 13 insertions(+) diff --git a/addons/cppcheckdata.py b/addons/cppcheckdata.py index 58f823b91..9843f20b6 100755 --- a/addons/cppcheckdata.py +++ b/addons/cppcheckdata.py @@ -316,11 +316,18 @@ class Function: tokenDef = None tokenDefId = None name = None + isVirtual = None + isImplicitlyVirtual = None def __init__(self, element): self.Id = element.get('id') self.tokenDefId = element.get('tokenDef') self.name = element.get('name') + isVirtual = element.get('isVirtual') + self.isVirtual = (isVirtual and isVirtual == 'true') + isImplicitlyVirtual = element.get('isImplicitlyVirtual') + self.isImplicitlyVirtual = (isImplicitlyVirtual and isImplicitlyVirtual == 'true') + self.argument = {} self.argumentId = {} for arg in element: diff --git a/lib/symboldatabase.cpp b/lib/symboldatabase.cpp index edcbc293a..a69f0e6c9 100644 --- a/lib/symboldatabase.cpp +++ b/lib/symboldatabase.cpp @@ -3005,6 +3005,12 @@ void SymbolDatabase::printXml(std::ostream &out) const out << " " << std::endl; for (std::list::const_iterator function = scope->functionList.begin(); function != scope->functionList.end(); ++function) { out << " tokenDef << "\" name=\"" << ErrorLogger::toxml(function->name()) << '\"'; + if (function->nestedIn->definedType) { + if (function->isVirtual()) + out << " isVirtual=\"true\""; + else if (function->isImplicitlyVirtual()) + out << " isImplicitlyVirtual=\"true\""; + } if (function->argCount() == 0U) out << "/>" << std::endl; else {