From: Gunnar Beutner Date: Fri, 8 Nov 2013 20:45:27 +0000 (+0100) Subject: Fix compiler warnings in auto-generated code. X-Git-Tag: v0.0.4~20^2~2 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=135c2b23093425ca85c3f8ca28885bc360c8ea6f;p=icinga2 Fix compiler warnings in auto-generated code. Refs #5036 --- diff --git a/tools/mkclass/classcompiler.cpp b/tools/mkclass/classcompiler.cpp index 9b750b3b1..28892309e 100644 --- a/tools/mkclass/classcompiler.cpp +++ b/tools/mkclass/classcompiler.cpp @@ -168,25 +168,31 @@ void ClassCompiler::HandleClass(const Klass& klass, const ClassDebugInfo& locp) std::cout << "\t\t" << "int real_id = id - " << "TypeImpl<" << klass.Parent << ">::StaticGetFieldCount();" << std::endl << "\t\t" << "if (real_id < 0) { return " << "TypeImpl<" << klass.Parent << ">::StaticGetFieldInfo(id); }" << std::endl; - std::cout << "\t\t" << "switch ("; + if (klass.Fields.size() > 0) { + std::cout << "\t\t" << "switch ("; - if (!klass.Parent.empty()) - std::cout << "real_id"; - else - std::cout << "id"; + if (!klass.Parent.empty()) + std::cout << "real_id"; + else + std::cout << "id"; - std::cout << ") {" << std::endl; + std::cout << ") {" << std::endl; - num = 0; - for (it = klass.Fields.begin(); it != klass.Fields.end(); it++) { - std::cout << "\t\t\t" << "case " << num << ":" << std::endl - << "\t\t\t\t" << "return Field(" << num << ", \"" << it->Name << "\", " << it->Attributes << ");" << std::endl; - num++; + num = 0; + for (it = klass.Fields.begin(); it != klass.Fields.end(); it++) { + std::cout << "\t\t\t" << "case " << num << ":" << std::endl + << "\t\t\t\t" << "return Field(" << num << ", \"" << it->Name << "\", " << it->Attributes << ");" << std::endl; + num++; + } + + std::cout << "\t\t\t" << "default:" << std::endl + << "\t\t"; } - std::cout << "\t\t\t" << "default:" << std::endl - << "\t\t\t\t" << "throw std::runtime_error(\"Invalid field ID.\");" << std::endl - << "\t\t" << "}" << std::endl; + std::cout << "\t\t" << "throw std::runtime_error(\"Invalid field ID.\");" << std::endl; + + if (klass.Fields.size() > 0) + std::cout << "\t\t" << "}" << std::endl; std::cout << "\t" << "}" << std::endl << std::endl;