diff options
author | Jose <jose@zeroc.com> | 2017-02-03 18:10:20 +0100 |
---|---|---|
committer | Jose <jose@zeroc.com> | 2017-02-03 18:10:20 +0100 |
commit | 7274ebf13c7a1ff3b587598335201c3a4e848c90 (patch) | |
tree | ad673e775b6ab68d511bcc86cf420c519b65948d /cpp/src/slice2objc | |
parent | Connection::close fixes for C#/Java/JS (diff) | |
download | ice-7274ebf13c7a1ff3b587598335201c3a4e848c90.tar.bz2 ice-7274ebf13c7a1ff3b587598335201c3a4e848c90.tar.xz ice-7274ebf13c7a1ff3b587598335201c3a4e848c90.zip |
Rework warning suppression to use global meta data
Diffstat (limited to 'cpp/src/slice2objc')
-rw-r--r-- | cpp/src/slice2objc/Gen.cpp | 56 | ||||
-rw-r--r-- | cpp/src/slice2objc/Gen.h | 20 | ||||
-rw-r--r-- | cpp/src/slice2objc/Main.cpp | 7 | ||||
-rw-r--r-- | cpp/src/slice2objc/ObjCUtil.cpp | 16 | ||||
-rw-r--r-- | cpp/src/slice2objc/ObjCUtil.h | 3 |
5 files changed, 44 insertions, 58 deletions
diff --git a/cpp/src/slice2objc/Gen.cpp b/cpp/src/slice2objc/Gen.cpp index cc7b718c7e3..80b5609417e 100644 --- a/cpp/src/slice2objc/Gen.cpp +++ b/cpp/src/slice2objc/Gen.cpp @@ -12,9 +12,9 @@ #include <limits> #include <sys/stat.h> #ifndef _WIN32 -#include <unistd.h> +# include <unistd.h> #else -#include <direct.h> +# include <direct.h> #endif #include <IceUtil/Iterator.h> #include <IceUtil/UUID.h> @@ -133,8 +133,7 @@ public: } -Slice::ObjCVisitor::ObjCVisitor(Output& h, Output& m, const string& dllExport, int warningLevel) : - ParserVisitor(warningLevel), +Slice::ObjCVisitor::ObjCVisitor(Output& h, Output& m, const string& dllExport) : _H(h), _M(m), _dllExport(dllExport) @@ -658,12 +657,11 @@ Slice::ObjCVisitor::getServerArgs(const OperationPtr& op) const } Slice::Gen::Gen(const string& name, const string& base, const string& include, const vector<string>& includePaths, - const string& dir, const string& dllExport, int warningLevel) : + const string& dir, const string& dllExport) : _base(base), _include(include), _includePaths(includePaths), - _dllExport(dllExport), - _warningLevel(warningLevel) + _dllExport(dllExport) { for(vector<string>::iterator p = _includePaths.begin(); p != _includePaths.end(); ++p) { @@ -734,7 +732,7 @@ Slice::Gen::operator!() const void Slice::Gen::generate(const UnitPtr& p) { - ObjCGenerator::validateMetaData(p, _warningLevel); + ObjCGenerator::validateMetaData(p); // // Give precedence to --dll-export command-line option @@ -834,25 +832,25 @@ Slice::Gen::generate(const UnitPtr& p) _M << nl << "# pragma clang diagnostic ignored \"-Wshadow-ivar\""; _M << nl << "#endif"; - UnitVisitor unitVisitor(_H, _M, _dllExport, _warningLevel); + UnitVisitor unitVisitor(_H, _M, _dllExport); p->visit(&unitVisitor, false); - ObjectDeclVisitor objectDeclVisitor(_H, _M, _dllExport, _warningLevel); + ObjectDeclVisitor objectDeclVisitor(_H, _M, _dllExport); p->visit(&objectDeclVisitor, false); - ProxyDeclVisitor proxyDeclVisitor(_H, _M, _dllExport, _warningLevel); + ProxyDeclVisitor proxyDeclVisitor(_H, _M, _dllExport); p->visit(&proxyDeclVisitor, false); - TypesVisitor typesVisitor(_H, _M, _dllExport, _warningLevel); + TypesVisitor typesVisitor(_H, _M, _dllExport); p->visit(&typesVisitor, false); - ProxyVisitor proxyVisitor(_H, _M, _dllExport, _warningLevel); + ProxyVisitor proxyVisitor(_H, _M, _dllExport); p->visit(&proxyVisitor, false); - DelegateMVisitor delegateMVisitor(_H, _M, _dllExport, _warningLevel); + DelegateMVisitor delegateMVisitor(_H, _M, _dllExport); p->visit(&delegateMVisitor, false); - HelperVisitor HelperVisitor(_H, _M, _dllExport, _warningLevel); + HelperVisitor HelperVisitor(_H, _M, _dllExport); p->visit(&HelperVisitor, false); } @@ -881,8 +879,8 @@ Slice::Gen::printHeader(Output& o) o << "\n// Ice version " << ICE_STRING_VERSION; } -Slice::Gen::UnitVisitor::UnitVisitor(Output& H, Output& M, const string& dllExport, int warningLevel) : - ObjCVisitor(H, M, dllExport, warningLevel) +Slice::Gen::UnitVisitor::UnitVisitor(Output& H, Output& M, const string& dllExport) : + ObjCVisitor(H, M, dllExport) { } @@ -923,8 +921,8 @@ Slice::Gen::UnitVisitor::visitUnitEnd(const UnitPtr& unit) } } -Slice::Gen::ObjectDeclVisitor::ObjectDeclVisitor(Output& H, Output& M, const string& dllExport, int warningLevel) - : ObjCVisitor(H, M, dllExport, warningLevel) +Slice::Gen::ObjectDeclVisitor::ObjectDeclVisitor(Output& H, Output& M, const string& dllExport) + : ObjCVisitor(H, M, dllExport) { } @@ -944,8 +942,8 @@ Slice::Gen::ObjectDeclVisitor::visitClassDecl(const ClassDeclPtr& p) _H << nl << "@protocol " << fixName(p) << ";"; } -Slice::Gen::ProxyDeclVisitor::ProxyDeclVisitor(Output& H, Output& M, const string& dllExport, int warningLevel) - : ObjCVisitor(H, M, dllExport, warningLevel) +Slice::Gen::ProxyDeclVisitor::ProxyDeclVisitor(Output& H, Output& M, const string& dllExport) + : ObjCVisitor(H, M, dllExport) { } @@ -959,8 +957,8 @@ Slice::Gen::ProxyDeclVisitor::visitClassDecl(const ClassDeclPtr& p) } } -Slice::Gen::TypesVisitor::TypesVisitor(Output& H, Output& M, const string& dllExport, int warningLevel) - : ObjCVisitor(H, M, dllExport, warningLevel) +Slice::Gen::TypesVisitor::TypesVisitor(Output& H, Output& M, const string& dllExport) + : ObjCVisitor(H, M, dllExport) { } @@ -2221,8 +2219,8 @@ Slice::Gen::TypesVisitor::writeMemberUnmarshal(const DataMemberList& dataMembers } } -Slice::Gen::ProxyVisitor::ProxyVisitor(Output& H, Output& M, const string& dllExport, int warningLevel) - : ObjCVisitor(H, M, dllExport, warningLevel) +Slice::Gen::ProxyVisitor::ProxyVisitor(Output& H, Output& M, const string& dllExport) + : ObjCVisitor(H, M, dllExport) { } @@ -2340,8 +2338,8 @@ Slice::Gen::ProxyVisitor::visitOperation(const OperationPtr& p) _H << " response" << responseExceptionSentDecl << deprecateSymbol << ";"; } -Slice::Gen::HelperVisitor::HelperVisitor(Output& H, Output& M, const string& dllExport, int warningLevel) : - ObjCVisitor(H, M, dllExport, warningLevel) +Slice::Gen::HelperVisitor::HelperVisitor(Output& H, Output& M, const string& dllExport) : + ObjCVisitor(H, M, dllExport) { } @@ -2643,8 +2641,8 @@ Slice::Gen::HelperVisitor::visitStructStart(const StructPtr& p) return false; } -Slice::Gen::DelegateMVisitor::DelegateMVisitor(Output& H, Output& M, const string& dllExport, int warningLevel) - : ObjCVisitor(H, M, dllExport, warningLevel) +Slice::Gen::DelegateMVisitor::DelegateMVisitor(Output& H, Output& M, const string& dllExport) + : ObjCVisitor(H, M, dllExport) { } diff --git a/cpp/src/slice2objc/Gen.h b/cpp/src/slice2objc/Gen.h index 6b6c4c99b10..0c9ef639e7d 100644 --- a/cpp/src/slice2objc/Gen.h +++ b/cpp/src/slice2objc/Gen.h @@ -20,7 +20,7 @@ class ObjCVisitor : public ObjCGenerator, public ParserVisitor { public: - ObjCVisitor(::IceUtilInternal::Output&, ::IceUtilInternal::Output&, const std::string&, int); + ObjCVisitor(::IceUtilInternal::Output&, ::IceUtilInternal::Output&, const std::string&); virtual ~ObjCVisitor(); protected: @@ -54,8 +54,7 @@ public: const std::string&, const std::vector<std::string>&, const std::string&, - const std::string&, - int); + const std::string&); ~Gen(); bool operator!() const; // Returns true if there was a constructor error @@ -72,7 +71,6 @@ private: std::string _include; std::vector<std::string> _includePaths; std::string _dllExport; - int _warningLevel; void printHeader(::IceUtilInternal::Output&); @@ -80,7 +78,7 @@ private: { public: - UnitVisitor(::IceUtilInternal::Output&, ::IceUtilInternal::Output&, const std::string&, int); + UnitVisitor(::IceUtilInternal::Output&, ::IceUtilInternal::Output&, const std::string&); virtual bool visitModuleStart(const ModulePtr&); virtual void visitUnitEnd(const UnitPtr&); @@ -94,7 +92,7 @@ private: { public: - ObjectDeclVisitor(::IceUtilInternal::Output&, ::IceUtilInternal::Output&, const std::string&, int); + ObjectDeclVisitor(::IceUtilInternal::Output&, ::IceUtilInternal::Output&, const std::string&); virtual void visitClassDecl(const ClassDeclPtr&); }; @@ -103,7 +101,7 @@ private: { public: - ProxyDeclVisitor(::IceUtilInternal::Output&, ::IceUtilInternal::Output&, const std::string&, int); + ProxyDeclVisitor(::IceUtilInternal::Output&, ::IceUtilInternal::Output&, const std::string&); virtual void visitClassDecl(const ClassDeclPtr&); }; @@ -112,7 +110,7 @@ private: { public: - TypesVisitor(::IceUtilInternal::Output&, ::IceUtilInternal::Output&, const std::string&, int); + TypesVisitor(::IceUtilInternal::Output&, ::IceUtilInternal::Output&, const std::string&); virtual bool visitModuleStart(const ModulePtr&); virtual void visitModuleEnd(const ModulePtr&); @@ -158,7 +156,7 @@ private: { public: - ProxyVisitor(::IceUtilInternal::Output&, ::IceUtilInternal::Output&, const std::string&, int); + ProxyVisitor(::IceUtilInternal::Output&, ::IceUtilInternal::Output&, const std::string&); virtual bool visitClassDefStart(const ClassDefPtr&); virtual void visitClassDefEnd(const ClassDefPtr&); @@ -169,7 +167,7 @@ private: { public: - HelperVisitor(::IceUtilInternal::Output&, ::IceUtilInternal::Output&, const std::string&, int); + HelperVisitor(::IceUtilInternal::Output&, ::IceUtilInternal::Output&, const std::string&); virtual bool visitClassDefStart(const ClassDefPtr&); virtual void visitEnum(const EnumPtr&); @@ -182,7 +180,7 @@ private: { public: - DelegateMVisitor(::IceUtilInternal::Output&, ::IceUtilInternal::Output&, const std::string&, int); + DelegateMVisitor(::IceUtilInternal::Output&, ::IceUtilInternal::Output&, const std::string&); virtual bool visitModuleStart(const ModulePtr&); virtual void visitModuleEnd(const ModulePtr&); diff --git a/cpp/src/slice2objc/Main.cpp b/cpp/src/slice2objc/Main.cpp index 7877c072ca0..24ac096d92c 100644 --- a/cpp/src/slice2objc/Main.cpp +++ b/cpp/src/slice2objc/Main.cpp @@ -80,7 +80,6 @@ usage(const string& n) " deprecated: use instead [[\"ice-prefix\"]] metadata.\n" "--underscore Allow underscores in Slice identifiers\n" " deprecated: use instead [[\"underscore\"]] metadata.\n" - "--no-warn Disable all warnings.\n" ; // Note: --case-sensitive is intentionally not shown here! } @@ -106,7 +105,6 @@ compile(const vector<string>& argv) opts.addOpt("", "ice"); opts.addOpt("", "underscore"); opts.addOpt("", "case-sensitive"); - opts.addOpt("", "no-warn"); bool validate = find(argv.begin(), argv.end(), "--validate") != argv.end(); @@ -175,8 +173,6 @@ compile(const vector<string>& argv) bool underscore = opts.isSet("underscore"); - int warningLevel = opts.isSet("no-warn") ? 0 : 1; - if(args.empty()) { consoleErr << argv[0] << ": no input file" << endl; @@ -289,8 +285,7 @@ compile(const vector<string>& argv) { try { - Gen gen(argv[0], icecpp->getBaseName(), include, includePaths, output, dllExport, - warningLevel); + Gen gen(argv[0], icecpp->getBaseName(), include, includePaths, output, dllExport); if(!gen) { u->destroy(); diff --git a/cpp/src/slice2objc/ObjCUtil.cpp b/cpp/src/slice2objc/ObjCUtil.cpp index ad2787308bc..e86290b8db3 100644 --- a/cpp/src/slice2objc/ObjCUtil.cpp +++ b/cpp/src/slice2objc/ObjCUtil.cpp @@ -1043,20 +1043,15 @@ Slice::ObjCGenerator::writeOptParamMarshalUnmarshalCode(Output &out, const TypeP } void -Slice::ObjCGenerator::validateMetaData(const UnitPtr& u, int warningLevel) +Slice::ObjCGenerator::validateMetaData(const UnitPtr& u) { - MetaDataVisitor visitor(warningLevel); + MetaDataVisitor visitor; u->visit(&visitor, true); } const string Slice::ObjCGenerator::MetaDataVisitor::_objcPrefix = "objc:"; const string Slice::ObjCGenerator::MetaDataVisitor::_msg = "ignoring invalid metadata"; -Slice::ObjCGenerator::MetaDataVisitor::MetaDataVisitor(int warningLevel) : - ParserVisitor(warningLevel) -{ -} - bool Slice::ObjCGenerator::MetaDataVisitor::visitUnitStart(const UnitPtr& p) { @@ -1071,6 +1066,7 @@ Slice::ObjCGenerator::MetaDataVisitor::visitUnitStart(const UnitPtr& p) DefinitionContextPtr dc = p->findDefinitionContext(file); assert(dc); StringList globalMetaData = dc->getMetaData(); + bool emitWarnings = dc->suppressWarning("invalid-metadata"); int headerDir = 0; int dllExport = 0; for(StringList::const_iterator r = globalMetaData.begin(); r != globalMetaData.end();) @@ -1086,7 +1082,7 @@ Slice::ObjCGenerator::MetaDataVisitor::visitUnitStart(const UnitPtr& p) headerDir++; if(headerDir > 1) { - if(warningLevel() > 0) + if(emitWarnings) { ostringstream ostr; ostr << "ignoring invalid global metadata `" << s @@ -1102,7 +1098,7 @@ Slice::ObjCGenerator::MetaDataVisitor::visitUnitStart(const UnitPtr& p) dllExport++; if(dllExport > 1) { - if(warningLevel() > 0) + if(emitWarnings) { ostringstream ostr; ostr << "ignoring invalid global metadata `" << s @@ -1113,7 +1109,7 @@ Slice::ObjCGenerator::MetaDataVisitor::visitUnitStart(const UnitPtr& p) } continue; } - if(warningLevel() > 0) + if(emitWarnings) { ostringstream ostr; ostr << "ignoring invalid global metadata `" << s << "'"; diff --git a/cpp/src/slice2objc/ObjCUtil.h b/cpp/src/slice2objc/ObjCUtil.h index 11e4cece024..cf5f1ee0b46 100644 --- a/cpp/src/slice2objc/ObjCUtil.h +++ b/cpp/src/slice2objc/ObjCUtil.h @@ -32,7 +32,7 @@ public: // // Validate all metadata in the unit with an "objc:" prefix. // - static void validateMetaData(const UnitPtr&, int); + static void validateMetaData(const UnitPtr&); protected: struct ModulePrefix @@ -81,7 +81,6 @@ private: class MetaDataVisitor : public ParserVisitor { public: - MetaDataVisitor(int); virtual bool visitUnitStart(const UnitPtr&); virtual bool visitModuleStart(const ModulePtr&); |