diff options
author | Jose <jose@zeroc.com> | 2017-02-01 23:16:30 +0100 |
---|---|---|
committer | Jose <jose@zeroc.com> | 2017-02-01 23:16:30 +0100 |
commit | ca131951f8d81ea3da13277172a24234b5c848ea (patch) | |
tree | 28b8d9ad6a09f550ef43f3b24df8048da8e70d7d /cpp/src/slice2cpp | |
parent | Added entries for support of try-with-resources/with statement in Java/Python (diff) | |
download | ice-ca131951f8d81ea3da13277172a24234b5c848ea.tar.bz2 ice-ca131951f8d81ea3da13277172a24234b5c848ea.tar.xz ice-ca131951f8d81ea3da13277172a24234b5c848ea.zip |
Add --no-warn option to Slice compilers
Diffstat (limited to 'cpp/src/slice2cpp')
-rw-r--r-- | cpp/src/slice2cpp/Gen.cpp | 202 | ||||
-rw-r--r-- | cpp/src/slice2cpp/Gen.h | 99 | ||||
-rw-r--r-- | cpp/src/slice2cpp/Main.cpp | 6 |
3 files changed, 156 insertions, 151 deletions
diff --git a/cpp/src/slice2cpp/Gen.cpp b/cpp/src/slice2cpp/Gen.cpp index d227ef1e88a..df72af69bc0 100644 --- a/cpp/src/slice2cpp/Gen.cpp +++ b/cpp/src/slice2cpp/Gen.cpp @@ -377,7 +377,7 @@ condString(bool ok, const string& str) Slice::Gen::Gen(const string& base, const string& headerExtension, const string& sourceExtension, const vector<string>& extraHeaders, const string& include, const vector<string>& includePaths, const string& dllExport, const string& dir, - bool implCpp98, bool implCpp11, bool checksum, bool ice) : + bool implCpp98, bool implCpp11, bool checksum, bool ice, int warningLevel) : _base(base), _headerExtension(headerExtension), _implHeaderExtension(headerExtension), @@ -390,7 +390,8 @@ Slice::Gen::Gen(const string& base, const string& headerExtension, const string& _implCpp98(implCpp98), _implCpp11(implCpp11), _checksum(checksum), - _ice(ice) + _ice(ice), + _warningLevel(warningLevel) { for(vector<string>::iterator p = _includePaths.begin(); p != _includePaths.end(); ++p) { @@ -573,7 +574,7 @@ Slice::Gen::generate(const UnitPtr& p) H << "\n#define __" << s << "__"; H << '\n'; - validateMetaData(p); + validateMetaData(p, _warningLevel); writeExtraHeaders(C); @@ -727,27 +728,27 @@ Slice::Gen::generate(const UnitPtr& p) C << nl << "#ifdef ICE_CPP11_MAPPING // C++11 mapping"; C.restoreIndent(); { - normalizeMetaData(p, true); + normalizeMetaData(p, true, _warningLevel); - Cpp11DeclVisitor declVisitor(H, C, _dllExport); + Cpp11DeclVisitor declVisitor(H, C, _dllExport, _warningLevel); p->visit(&declVisitor, false); - Cpp11TypesVisitor typesVisitor(H, C, _dllExport); + Cpp11TypesVisitor typesVisitor(H, C, _dllExport, _warningLevel); p->visit(&typesVisitor, false); - Cpp11LocalObjectVisitor localObjectVisitor(H, C, _dllExport); + Cpp11LocalObjectVisitor localObjectVisitor(H, C, _dllExport, _warningLevel); p->visit(&localObjectVisitor, false); - Cpp11InterfaceVisitor interfaceVisitor(H, C, _dllExport); + Cpp11InterfaceVisitor interfaceVisitor(H, C, _dllExport, _warningLevel); p->visit(&interfaceVisitor, false); - Cpp11ValueVisitor valueVisitor(H, C, _dllExport); + Cpp11ValueVisitor valueVisitor(H, C, _dllExport, _warningLevel); p->visit(&valueVisitor, false); - Cpp11ProxyVisitor proxyVisitor(H, C, _dllExport); + Cpp11ProxyVisitor proxyVisitor(H, C, _dllExport, _warningLevel); p->visit(&proxyVisitor, false); - Cpp11StreamVisitor streamVisitor(H, C, _dllExport); + Cpp11StreamVisitor streamVisitor(H, C, _dllExport, _warningLevel); p->visit(&streamVisitor, false); if(_implCpp11) @@ -768,11 +769,11 @@ Slice::Gen::generate(const UnitPtr& p) } implC << _base << "I." << _implHeaderExtension << ">"; - Cpp11ImplVisitor implVisitor(implH, implC, _dllExport); + Cpp11ImplVisitor implVisitor(implH, implC, _dllExport, _warningLevel); p->visit(&implVisitor, false); } - Cpp11CompatibilityVisitor compatibilityVisitor(H, C, _dllExport); + Cpp11CompatibilityVisitor compatibilityVisitor(H, C, _dllExport, _warningLevel); p->visit(&compatibilityVisitor, false); generateChecksumMap(p); @@ -787,21 +788,21 @@ Slice::Gen::generate(const UnitPtr& p) C << nl << "#else // C++98 mapping"; C.restoreIndent(); { - normalizeMetaData(p, false); + normalizeMetaData(p, false, _warningLevel); - ProxyDeclVisitor proxyDeclVisitor(H, C, _dllExport); + ProxyDeclVisitor proxyDeclVisitor(H, C, _dllExport, _warningLevel); p->visit(&proxyDeclVisitor, false); - ObjectDeclVisitor objectDeclVisitor(H, C, _dllExport); + ObjectDeclVisitor objectDeclVisitor(H, C, _dllExport, _warningLevel); p->visit(&objectDeclVisitor, false); - TypesVisitor typesVisitor(H, C, _dllExport); + TypesVisitor typesVisitor(H, C, _dllExport, _warningLevel); p->visit(&typesVisitor, false); - AsyncVisitor asyncVisitor(H, C, _dllExport); + AsyncVisitor asyncVisitor(H, C, _dllExport, _warningLevel); p->visit(&asyncVisitor, false); - AsyncImplVisitor asyncImplVisitor(H, C, _dllExport); + AsyncImplVisitor asyncImplVisitor(H, C, _dllExport, _warningLevel); p->visit(&asyncImplVisitor, false); // @@ -810,16 +811,16 @@ Slice::Gen::generate(const UnitPtr& p) // the proxy relies on knowing the hierarchy to make the begin_ // methods type-safe. // - AsyncCallbackVisitor asyncCallbackVisitor(H, C, _dllExport); + AsyncCallbackVisitor asyncCallbackVisitor(H, C, _dllExport, _warningLevel); p->visit(&asyncCallbackVisitor, false); - ProxyVisitor proxyVisitor(H, C, _dllExport); + ProxyVisitor proxyVisitor(H, C, _dllExport, _warningLevel); p->visit(&proxyVisitor, false); - ObjectVisitor objectVisitor(H, C, _dllExport); + ObjectVisitor objectVisitor(H, C, _dllExport, _warningLevel); p->visit(&objectVisitor, false); - StreamVisitor streamVisitor(H, C, _dllExport); + StreamVisitor streamVisitor(H, C, _dllExport, _warningLevel); p->visit(&streamVisitor, false); // @@ -827,7 +828,7 @@ Slice::Gen::generate(const UnitPtr& p) // definition, because completed calls the begin_ method in the // proxy. // - AsyncCallbackTemplateVisitor asyncCallbackTemplateVisitor(H, C, _dllExport); + AsyncCallbackTemplateVisitor asyncCallbackTemplateVisitor(H, C, _dllExport, _warningLevel); p->visit(&asyncCallbackTemplateVisitor, false); if(_implCpp98) @@ -848,7 +849,7 @@ Slice::Gen::generate(const UnitPtr& p) } implC << _base << "I." << _implHeaderExtension << ">"; - ImplVisitor implVisitor(implH, implC, _dllExport); + ImplVisitor implVisitor(implH, implC, _dllExport, _warningLevel); p->visit(&implVisitor, false); } @@ -902,7 +903,8 @@ Slice::Gen::writeExtraHeaders(IceUtilInternal::Output& out) } } -Slice::Gen::TypesVisitor::TypesVisitor(Output& h, Output& c, const string& dllExport) : +Slice::Gen::TypesVisitor::TypesVisitor(Output& h, Output& c, const string& dllExport, int warningLevel) : + ParserVisitor(warningLevel), H(h), C(c), _dllExport(dllExport), _doneStaticSymbol(false), _useWstring(false) { } @@ -1536,7 +1538,8 @@ Slice::Gen::TypesVisitor::emitUpcall(const ExceptionPtr& base, const string& cal << call; } -Slice::Gen::ProxyDeclVisitor::ProxyDeclVisitor(Output& h, Output&, const string& dllExport) : +Slice::Gen::ProxyDeclVisitor::ProxyDeclVisitor(Output& h, Output&, const string& dllExport, int warningLevel) : + ParserVisitor(warningLevel), H(h), _dllExport(dllExport) { } @@ -1603,8 +1606,8 @@ Slice::Gen::ProxyDeclVisitor::visitClassDecl(const ClassDeclPtr& p) H << nl << _dllExport << "::IceProxy::Ice::Object* upCast(::IceProxy" << scoped << "*);"; } -Slice::Gen::ProxyVisitor::ProxyVisitor(Output& h, Output& c, const string& dllExport) : - H(h), C(c), _dllExport(dllExport), _dllClassExport(toDllClassExport(dllExport)), +Slice::Gen::ProxyVisitor::ProxyVisitor(Output& h, Output& c, const string& dllExport, int warningLevel) : + ParserVisitor(warningLevel), H(h), C(c), _dllExport(dllExport), _dllClassExport(toDllClassExport(dllExport)), _dllMemberExport(toDllMemberExport(dllExport)), _useWstring(false) { } @@ -2153,7 +2156,8 @@ Slice::Gen::ProxyVisitor::visitOperation(const OperationPtr& p) } } -Slice::Gen::ObjectDeclVisitor::ObjectDeclVisitor(Output& h, Output& c, const string& dllExport) : +Slice::Gen::ObjectDeclVisitor::ObjectDeclVisitor(Output& h, Output& c, const string& dllExport, int warningLevel) : + ParserVisitor(warningLevel), H(h), C(c), _dllExport(dllExport) { } @@ -2222,7 +2226,8 @@ Slice::Gen::ObjectDeclVisitor::visitOperation(const OperationPtr& p) } } -Slice::Gen::ObjectVisitor::ObjectVisitor(Output& h, Output& c, const string& dllExport) : +Slice::Gen::ObjectVisitor::ObjectVisitor(Output& h, Output& c, const string& dllExport, int warningLevel) : + ParserVisitor(warningLevel), H(h), C(c), _dllExport(dllExport), _doneStaticSymbol(false), _useWstring(false) { } @@ -3382,7 +3387,8 @@ Slice::Gen::ObjectVisitor::emitUpcall(const ClassDefPtr& base, const string& cal C << nl << (base ? fixKwd(base->scoped()) : string("::Ice::Object")) << call; } -Slice::Gen::AsyncCallbackVisitor::AsyncCallbackVisitor(Output& h, Output&, const string& dllExport) : +Slice::Gen::AsyncCallbackVisitor::AsyncCallbackVisitor(Output& h, Output&, const string& dllExport, int warningLevel) : + ParserVisitor(warningLevel), H(h), _dllExport(dllExport), _useWstring(false) { } @@ -3441,8 +3447,8 @@ Slice::Gen::AsyncCallbackVisitor::visitOperation(const OperationPtr& p) H << nl << "typedef ::IceUtil::Handle< " << delName << "_Base> " << delName << "Ptr;"; } -Slice::Gen::AsyncCallbackTemplateVisitor::AsyncCallbackTemplateVisitor(Output& h, Output&, const string& dllExport) - : H(h), _dllExport(dllExport), _useWstring(false) +Slice::Gen::AsyncCallbackTemplateVisitor::AsyncCallbackTemplateVisitor(Output& h, Output&, const string& dllExport, int warningLevel) + : ParserVisitor(warningLevel), H(h), _dllExport(dllExport), _useWstring(false) { } @@ -3745,8 +3751,8 @@ Slice::Gen::AsyncCallbackTemplateVisitor::generateOperation(const OperationPtr& } } -Slice::Gen::ImplVisitor::ImplVisitor(Output& h, Output& c, const string& dllExport) : - H(h), C(c), _dllExport(dllExport), _useWstring(false) +Slice::Gen::ImplVisitor::ImplVisitor(Output& h, Output& c, const string& dllExport, int warningLevel) : + ParserVisitor(warningLevel), H(h), C(c), _dllExport(dllExport), _useWstring(false) { } @@ -4037,8 +4043,8 @@ Slice::Gen::ImplVisitor::visitClassDefStart(const ClassDefPtr& p) return true; } -Slice::Gen::AsyncVisitor::AsyncVisitor(Output& h, Output& c, const string& dllExport) : - H(h), C(c), _dllExport(dllExport), _useWstring(false) +Slice::Gen::AsyncVisitor::AsyncVisitor(Output& h, Output& c, const string& dllExport, int warningLevel) : + ParserVisitor(warningLevel), H(h), C(c), _dllExport(dllExport), _useWstring(false) { } @@ -4172,8 +4178,8 @@ Slice::Gen::AsyncVisitor::visitOperation(const OperationPtr& p) } } -Slice::Gen::AsyncImplVisitor::AsyncImplVisitor(Output& h, Output& c, const string& dllExport) : - H(h), C(c), _dllExport(dllExport), _useWstring(false) +Slice::Gen::AsyncImplVisitor::AsyncImplVisitor(Output& h, Output& c, const string& dllExport, int warningLevel) : + ParserVisitor(warningLevel), H(h), C(c), _dllExport(dllExport), _useWstring(false) { } @@ -4337,7 +4343,8 @@ Slice::Gen::AsyncImplVisitor::visitOperation(const OperationPtr& p) C << eb; } -Slice::Gen::StreamVisitor::StreamVisitor(Output& h, Output& c, const string& dllExport) : +Slice::Gen::StreamVisitor::StreamVisitor(Output& h, Output& c, const string& dllExport, int warningLevel) : + ParserVisitor(warningLevel), H(h), C(c), _dllExport(dllExport) @@ -4468,12 +4475,16 @@ Slice::Gen::StreamVisitor::visitEnum(const EnumPtr& p) } void -Slice::Gen::validateMetaData(const UnitPtr& u) +Slice::Gen::validateMetaData(const UnitPtr& u, int warningLevel) { - MetaDataVisitor visitor; + MetaDataVisitor visitor(warningLevel); u->visit(&visitor, false); } +Slice::Gen::MetaDataVisitor::MetaDataVisitor(int warningLevel) : ParserVisitor(warningLevel) +{ +} + bool Slice::Gen::MetaDataVisitor::visitUnitStart(const UnitPtr& p) { @@ -4514,10 +4525,13 @@ Slice::Gen::MetaDataVisitor::visitUnitStart(const UnitPtr& p) headerExtension++; if(headerExtension > 1) { - ostringstream ostr; - ostr << "ignoring invalid global metadata `" << s - << "': directive can appear only once per file"; - emitWarning(file, -1, ostr.str()); + if(warningLevel() > 0) + { + ostringstream ostr; + ostr << "ignoring invalid global metadata `" << s + << "': directive can appear only once per file"; + emitWarning(file, -1, ostr.str()); + } } else { @@ -4530,10 +4544,13 @@ Slice::Gen::MetaDataVisitor::visitUnitStart(const UnitPtr& p) dllExport++; if(dllExport > 1) { - ostringstream ostr; - ostr << "ignoring invalid global metadata `" << s - << "': directive can appear only once per file"; - emitWarning(file, -1, ostr.str()); + if(warningLevel() > 0) + { + ostringstream ostr; + ostr << "ignoring invalid global metadata `" << s + << "': directive can appear only once per file"; + emitWarning(file, -1, ostr.str()); + } } else { @@ -4542,9 +4559,12 @@ Slice::Gen::MetaDataVisitor::visitUnitStart(const UnitPtr& p) continue; } - ostringstream ostr; - ostr << "ignoring invalid global metadata `" << s << "'"; - emitWarning(file, -1, ostr.str()); + if(warningLevel() > 0) + { + ostringstream ostr; + ostr << "ignoring invalid global metadata `" << s << "'"; + emitWarning(file, -1, ostr.str()); + } } } @@ -4622,7 +4642,10 @@ Slice::Gen::MetaDataVisitor::visitOperation(const OperationPtr& p) if(!cl->isLocal() && p->hasMetaData("cpp:noexcept")) { - emitWarning(p->file(), p->line(), "ignoring metadata `cpp:noexcept' for non local interface"); + if(warningLevel() > 0) + { + emitWarning(p->file(), p->line(), "ignoring metadata `cpp:noexcept' for non local interface"); + } metaData.remove("cpp:noexcept"); } @@ -4634,9 +4657,11 @@ Slice::Gen::MetaDataVisitor::visitOperation(const OperationPtr& p) if(q->find("cpp:type:") == 0 || q->find("cpp:view-type:") == 0 || q->find("cpp:range") == 0 || (*q) == "cpp:array") { - emitWarning(p->file(), p->line(), "ignoring invalid metadata `" + *q + - "' for operation with void return type"); - + if(warningLevel() > 0) + { + emitWarning(p->file(), p->line(), "ignoring invalid metadata `" + *q + + "' for operation with void return type"); + } metaData.remove(*q); continue; } @@ -4802,7 +4827,11 @@ Slice::Gen::MetaDataVisitor::validate(const SyntaxTreeBasePtr& cont, const Strin continue; } } - emitWarning(file, line, "ignoring invalid metadata `" + s + "'"); + + if(warningLevel() > 0) + { + emitWarning(file, line, "ignoring invalid metadata `" + s + "'"); + } continue; } @@ -4814,7 +4843,11 @@ Slice::Gen::MetaDataVisitor::validate(const SyntaxTreeBasePtr& cont, const Strin newMetaData.push_back(s); continue; } - emitWarning(file, line, "ignoring invalid metadata `" + s + "'"); + + if(warningLevel() > 0) + { + emitWarning(file, line, "ignoring invalid metadata `" + s + "'"); + } continue; } newMetaData.push_back(s); @@ -4824,13 +4857,14 @@ Slice::Gen::MetaDataVisitor::validate(const SyntaxTreeBasePtr& cont, const Strin void -Slice::Gen::normalizeMetaData(const UnitPtr& u, bool cpp11) +Slice::Gen::normalizeMetaData(const UnitPtr& u, bool cpp11, int warningLevel) { - NormalizeMetaDataVisitor visitor(cpp11); + NormalizeMetaDataVisitor visitor(cpp11, warningLevel); u->visit(&visitor, false); } -Slice::Gen::NormalizeMetaDataVisitor::NormalizeMetaDataVisitor(bool cpp11) : +Slice::Gen::NormalizeMetaDataVisitor::NormalizeMetaDataVisitor(bool cpp11, int warningLevel) : + ParserVisitor(warningLevel), _cpp11(cpp11) { } @@ -5105,8 +5139,8 @@ Slice::Gen::getHeaderExt(const string& file, const UnitPtr& unit) } // C++11 visitors -Slice::Gen::Cpp11DeclVisitor::Cpp11DeclVisitor(Output& h, Output& c, const string& dllExport) : - H(h), C(c), _dllExport(dllExport) +Slice::Gen::Cpp11DeclVisitor::Cpp11DeclVisitor(Output& h, Output& c, const string& dllExport, int warningLevel) : + ParserVisitor(warningLevel), H(h), C(c), _dllExport(dllExport) { } @@ -5261,8 +5295,8 @@ Slice::Gen::Cpp11DeclVisitor::visitOperation(const OperationPtr& p) } } -Slice::Gen::Cpp11TypesVisitor::Cpp11TypesVisitor(Output& h, Output& c, const string& dllExport) : - H(h), C(c), _dllExport(dllExport), _dllClassExport(toDllClassExport(dllExport)), +Slice::Gen::Cpp11TypesVisitor::Cpp11TypesVisitor(Output& h, Output& c, const string& dllExport, int warningLevel) : + ParserVisitor(warningLevel), H(h), C(c), _dllExport(dllExport), _dllClassExport(toDllClassExport(dllExport)), _dllMemberExport(toDllMemberExport(dllExport)), _doneStaticSymbol(false), _useWstring(false) { } @@ -5659,8 +5693,9 @@ Slice::Gen::Cpp11TypesVisitor::visitDictionary(const DictionaryPtr& p) } } -Slice::Gen::Cpp11ProxyVisitor::Cpp11ProxyVisitor(Output& h, Output& c, const string& dllExport) : - H(h), C(c), _dllClassExport(toDllClassExport(dllExport)), _dllMemberExport(toDllMemberExport(dllExport)), +Slice::Gen::Cpp11ProxyVisitor::Cpp11ProxyVisitor(Output& h, Output& c, const string& dllExport, int warningLevel) : + ParserVisitor(warningLevel), H(h), C(c), _dllClassExport(toDllClassExport(dllExport)), + _dllMemberExport(toDllMemberExport(dllExport)), _useWstring(false) { } @@ -6248,7 +6283,9 @@ Slice::Gen::Cpp11TypesVisitor::emitUpcall(const ExceptionPtr& base, const string Slice::Gen::Cpp11ObjectVisitor::Cpp11ObjectVisitor(::IceUtilInternal::Output& h, ::IceUtilInternal::Output& c, - const std::string& dllExport) : + const std::string& dllExport, + int warningLevel) : + ParserVisitor(warningLevel), H(h), C(c), _dllExport(dllExport), @@ -6301,8 +6338,9 @@ Slice::Gen::Cpp11ValueVisitor::emitUpcall(const ClassDefPtr& base, const string& Slice::Gen::Cpp11LocalObjectVisitor::Cpp11LocalObjectVisitor(::IceUtilInternal::Output& h, ::IceUtilInternal::Output& c, - const std::string& dllExport) : - Cpp11ObjectVisitor(h, c, dllExport) + const std::string& dllExport, + int warningLevel) : + Cpp11ObjectVisitor(h, c, dllExport, warningLevel) { } @@ -6649,8 +6687,9 @@ Slice::Gen::Cpp11LocalObjectVisitor::visitOperation(const OperationPtr& p) Slice::Gen::Cpp11InterfaceVisitor::Cpp11InterfaceVisitor(::IceUtilInternal::Output& h, ::IceUtilInternal::Output& c, - const std::string& dllExport) : - Cpp11ObjectVisitor(h, c, dllExport) + const std::string& dllExport, + int warningLevel) : + Cpp11ObjectVisitor(h, c, dllExport, warningLevel) { } @@ -7103,8 +7142,9 @@ Slice::Gen::Cpp11InterfaceVisitor::visitOperation(const OperationPtr& p) Slice::Gen::Cpp11ValueVisitor::Cpp11ValueVisitor(::IceUtilInternal::Output& h, ::IceUtilInternal::Output& c, - const std::string& dllExport) : - Cpp11ObjectVisitor(h, c, dllExport) + const std::string& dllExport, + int warningLevel) : + Cpp11ObjectVisitor(h, c, dllExport, warningLevel) { } @@ -7457,7 +7497,8 @@ Slice::Gen::Cpp11ObjectVisitor::emitOneShotConstructor(const ClassDefPtr& p) } } -Slice::Gen::Cpp11StreamVisitor::Cpp11StreamVisitor(Output& h, Output& c, const string& dllExport) : +Slice::Gen::Cpp11StreamVisitor::Cpp11StreamVisitor(Output& h, Output& c, const string& dllExport, int warningLevel) : + ParserVisitor(warningLevel), H(h), C(c), _dllExport(dllExport) @@ -7569,7 +7610,8 @@ Slice::Gen::Cpp11StreamVisitor::visitEnum(const EnumPtr& p) } -Slice::Gen::Cpp11CompatibilityVisitor::Cpp11CompatibilityVisitor(Output& h, Output&, const string& dllExport) : +Slice::Gen::Cpp11CompatibilityVisitor::Cpp11CompatibilityVisitor(Output& h, Output&, const string& dllExport, int warningLevel) : + ParserVisitor(warningLevel), H(h), _dllExport(dllExport) { @@ -7619,8 +7661,8 @@ Slice::Gen::Cpp11CompatibilityVisitor::visitClassDecl(const ClassDeclPtr& p) } } -Slice::Gen::Cpp11ImplVisitor::Cpp11ImplVisitor(Output& h, Output& c, const string& dllExport) : - H(h), C(c), _dllExport(dllExport), _useWstring(false) +Slice::Gen::Cpp11ImplVisitor::Cpp11ImplVisitor(Output& h, Output& c, const string& dllExport, int warningLevel) : + ParserVisitor(warningLevel), H(h), C(c), _dllExport(dllExport), _useWstring(false) { } diff --git a/cpp/src/slice2cpp/Gen.h b/cpp/src/slice2cpp/Gen.h index 768a148969a..660267b0539 100644 --- a/cpp/src/slice2cpp/Gen.h +++ b/cpp/src/slice2cpp/Gen.h @@ -31,7 +31,8 @@ public: bool, bool, bool, - bool); + bool, + int); ~Gen(); void generate(const UnitPtr&); @@ -71,12 +72,13 @@ private: bool _implCpp11; bool _checksum; bool _ice; + int _warningLevel; class TypesVisitor : private ::IceUtil::noncopyable, public ParserVisitor { public: - TypesVisitor(::IceUtilInternal::Output&, ::IceUtilInternal::Output&, const std::string&); + TypesVisitor(::IceUtilInternal::Output&, ::IceUtilInternal::Output&, const std::string&, int); virtual bool visitModuleStart(const ModulePtr&); virtual void visitModuleEnd(const ModulePtr&); @@ -108,7 +110,7 @@ private: { public: - ProxyDeclVisitor(::IceUtilInternal::Output&, ::IceUtilInternal::Output&, const std::string&); + ProxyDeclVisitor(::IceUtilInternal::Output&, ::IceUtilInternal::Output&, const std::string&, int); virtual bool visitUnitStart(const UnitPtr&); virtual void visitUnitEnd(const UnitPtr&); @@ -127,7 +129,7 @@ private: { public: - ProxyVisitor(::IceUtilInternal::Output&, ::IceUtilInternal::Output&, const std::string&); + ProxyVisitor(::IceUtilInternal::Output&, ::IceUtilInternal::Output&, const std::string&, int); virtual bool visitUnitStart(const UnitPtr&); virtual void visitUnitEnd(const UnitPtr&); @@ -153,7 +155,7 @@ private: { public: - ObjectDeclVisitor(::IceUtilInternal::Output&, ::IceUtilInternal::Output&, const std::string&); + ObjectDeclVisitor(::IceUtilInternal::Output&, ::IceUtilInternal::Output&, const std::string&, int); virtual bool visitModuleStart(const ModulePtr&); virtual void visitModuleEnd(const ModulePtr&); @@ -172,7 +174,7 @@ private: { public: - ObjectVisitor(::IceUtilInternal::Output&, ::IceUtilInternal::Output&, const std::string&); + ObjectVisitor(::IceUtilInternal::Output&, ::IceUtilInternal::Output&, const std::string&, int); virtual bool visitModuleStart(const ModulePtr&); virtual void visitModuleEnd(const ModulePtr&); @@ -205,7 +207,7 @@ private: { public: - AsyncCallbackVisitor(::IceUtilInternal::Output&, ::IceUtilInternal::Output&, const std::string&); + AsyncCallbackVisitor(::IceUtilInternal::Output&, ::IceUtilInternal::Output&, const std::string&, int); virtual bool visitModuleStart(const ModulePtr&); virtual void visitModuleEnd(const ModulePtr&); @@ -226,7 +228,7 @@ private: { public: - AsyncCallbackTemplateVisitor(::IceUtilInternal::Output&, ::IceUtilInternal::Output&, const std::string&); + AsyncCallbackTemplateVisitor(::IceUtilInternal::Output&, ::IceUtilInternal::Output&, const std::string&, int); virtual bool visitUnitStart(const UnitPtr&); virtual void visitUnitEnd(const UnitPtr&); @@ -251,7 +253,7 @@ private: { public: - ImplVisitor(::IceUtilInternal::Output&, ::IceUtilInternal::Output&, const std::string&); + ImplVisitor(::IceUtilInternal::Output&, ::IceUtilInternal::Output&, const std::string&, int); virtual bool visitModuleStart(const ModulePtr&); virtual void visitModuleEnd(const ModulePtr&); @@ -281,7 +283,7 @@ private: { public: - AsyncVisitor(::IceUtilInternal::Output&, ::IceUtilInternal::Output&, const std::string&); + AsyncVisitor(::IceUtilInternal::Output&, ::IceUtilInternal::Output&, const std::string&, int); virtual bool visitModuleStart(const ModulePtr&); virtual void visitModuleEnd(const ModulePtr&); @@ -303,7 +305,7 @@ private: { public: - AsyncImplVisitor(::IceUtilInternal::Output&, ::IceUtilInternal::Output&, const std::string&); + AsyncImplVisitor(::IceUtilInternal::Output&, ::IceUtilInternal::Output&, const std::string&, int); virtual bool visitUnitStart(const UnitPtr&); virtual void visitUnitEnd(const UnitPtr&); @@ -327,7 +329,7 @@ private: { public: - StreamVisitor(::IceUtilInternal::Output&, ::IceUtilInternal::Output&, const std::string&); + StreamVisitor(::IceUtilInternal::Output&, ::IceUtilInternal::Output&, const std::string&, int); virtual bool visitModuleStart(const ModulePtr&); virtual void visitModuleEnd(const ModulePtr&); @@ -349,7 +351,7 @@ private: { public: - Cpp11DeclVisitor(::IceUtilInternal::Output&, ::IceUtilInternal::Output&, const std::string&); + Cpp11DeclVisitor(::IceUtilInternal::Output&, ::IceUtilInternal::Output&, const std::string&, int); virtual bool visitUnitStart(const UnitPtr&); virtual void visitUnitEnd(const UnitPtr&); @@ -372,7 +374,7 @@ private: { public: - Cpp11TypesVisitor(::IceUtilInternal::Output&, ::IceUtilInternal::Output&, const std::string&); + Cpp11TypesVisitor(::IceUtilInternal::Output&, ::IceUtilInternal::Output&, const std::string&, int); virtual bool visitModuleStart(const ModulePtr&); virtual void visitModuleEnd(const ModulePtr&); @@ -406,7 +408,7 @@ private: { public: - Cpp11ProxyVisitor(::IceUtilInternal::Output&, ::IceUtilInternal::Output&, const std::string&); + Cpp11ProxyVisitor(::IceUtilInternal::Output&, ::IceUtilInternal::Output&, const std::string&, int); virtual bool visitUnitStart(const UnitPtr&); virtual void visitUnitEnd(const UnitPtr&); @@ -432,7 +434,7 @@ private: { public: - Cpp11ObjectVisitor(::IceUtilInternal::Output&, ::IceUtilInternal::Output&, const std::string&); + Cpp11ObjectVisitor(::IceUtilInternal::Output&, ::IceUtilInternal::Output&, const std::string&, int); protected: @@ -455,7 +457,7 @@ private: { public: - Cpp11LocalObjectVisitor(::IceUtilInternal::Output&, ::IceUtilInternal::Output&, const std::string&); + Cpp11LocalObjectVisitor(::IceUtilInternal::Output&, ::IceUtilInternal::Output&, const std::string&, int); virtual bool visitModuleStart(const ModulePtr&); virtual void visitModuleEnd(const ModulePtr&); @@ -470,7 +472,7 @@ private: { public: - Cpp11InterfaceVisitor(::IceUtilInternal::Output&, ::IceUtilInternal::Output&, const std::string&); + Cpp11InterfaceVisitor(::IceUtilInternal::Output&, ::IceUtilInternal::Output&, const std::string&, int); virtual bool visitModuleStart(const ModulePtr&); virtual void visitModuleEnd(const ModulePtr&); @@ -486,7 +488,7 @@ private: { public: - Cpp11ValueVisitor(::IceUtilInternal::Output&, ::IceUtilInternal::Output&, const std::string&); + Cpp11ValueVisitor(::IceUtilInternal::Output&, ::IceUtilInternal::Output&, const std::string&, int); virtual bool visitModuleStart(const ModulePtr&); virtual void visitModuleEnd(const ModulePtr&); @@ -498,56 +500,11 @@ private: void emitUpcall(const ClassDefPtr&, const std::string&); }; - class Cpp11AsyncVisitor : private ::IceUtil::noncopyable, public ParserVisitor - { - public: - - Cpp11AsyncVisitor(::IceUtilInternal::Output&, ::IceUtilInternal::Output&, const std::string&); - - virtual bool visitModuleStart(const ModulePtr&); - virtual void visitModuleEnd(const ModulePtr&); - virtual bool visitClassDefStart(const ClassDefPtr&); - virtual void visitClassDefEnd(const ClassDefPtr&); - virtual void visitOperation(const OperationPtr&); - - private: - - ::IceUtilInternal::Output& H; - - std::string _dllExport; - int _useWstring; - std::list<int> _useWstringHist; - }; - - class Cpp11AsyncImplVisitor : private ::IceUtil::noncopyable, public ParserVisitor - { - public: - - Cpp11AsyncImplVisitor(::IceUtilInternal::Output&, ::IceUtilInternal::Output&, const std::string&); - - virtual bool visitUnitStart(const UnitPtr&); - virtual void visitUnitEnd(const UnitPtr&); - virtual bool visitModuleStart(const ModulePtr&); - virtual void visitModuleEnd(const ModulePtr&); - virtual bool visitClassDefStart(const ClassDefPtr&); - virtual void visitClassDefEnd(const ClassDefPtr&); - virtual void visitOperation(const OperationPtr&); - - private: - - ::IceUtilInternal::Output& H; - ::IceUtilInternal::Output& C; - - std::string _dllExport; - int _useWstring; - std::list<int> _useWstringHist; - }; - class Cpp11StreamVisitor : private ::IceUtil::noncopyable, public ParserVisitor { public: - Cpp11StreamVisitor(::IceUtilInternal::Output&, ::IceUtilInternal::Output&, const std::string&); + Cpp11StreamVisitor(::IceUtilInternal::Output&, ::IceUtilInternal::Output&, const std::string&, int); virtual bool visitModuleStart(const ModulePtr&); virtual void visitModuleEnd(const ModulePtr&); @@ -568,7 +525,7 @@ private: { public: - Cpp11CompatibilityVisitor(::IceUtilInternal::Output&, ::IceUtilInternal::Output&, const std::string&); + Cpp11CompatibilityVisitor(::IceUtilInternal::Output&, ::IceUtilInternal::Output&, const std::string&, int); virtual bool visitModuleStart(const ModulePtr&); virtual void visitModuleEnd(const ModulePtr&); @@ -584,7 +541,7 @@ private: { public: - Cpp11ImplVisitor(::IceUtilInternal::Output&, ::IceUtilInternal::Output&, const std::string&); + Cpp11ImplVisitor(::IceUtilInternal::Output&, ::IceUtilInternal::Output&, const std::string&, int); virtual bool visitModuleStart(const ModulePtr&); virtual void visitModuleEnd(const ModulePtr&); @@ -616,6 +573,8 @@ private: { public: + MetaDataVisitor(int); + virtual bool visitUnitStart(const UnitPtr&); virtual bool visitModuleStart(const ModulePtr&); virtual void visitModuleEnd(const ModulePtr&); @@ -643,7 +602,7 @@ private: { public: - explicit NormalizeMetaDataVisitor(bool); + NormalizeMetaDataVisitor(bool, int); virtual bool visitUnitStart(const UnitPtr&); virtual bool visitModuleStart(const ModulePtr&); @@ -669,8 +628,8 @@ private: bool _cpp11; }; - static void validateMetaData(const UnitPtr&); - static void normalizeMetaData(const UnitPtr&, bool); + static void validateMetaData(const UnitPtr&, int); + static void normalizeMetaData(const UnitPtr&, bool, int); }; } diff --git a/cpp/src/slice2cpp/Main.cpp b/cpp/src/slice2cpp/Main.cpp index 7378da1b118..83b19b943c9 100644 --- a/cpp/src/slice2cpp/Main.cpp +++ b/cpp/src/slice2cpp/Main.cpp @@ -88,6 +88,7 @@ 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" ; } @@ -117,6 +118,7 @@ compile(const vector<string>& argv) opts.addOpt("", "ice"); opts.addOpt("", "underscore"); opts.addOpt("", "checksum"); + opts.addOpt("", "no-warn"); bool validate = find(argv.begin(), argv.end(), "--validate") != argv.end(); vector<string> args; @@ -197,6 +199,8 @@ compile(const vector<string>& argv) bool checksum = opts.isSet("checksum"); + int warningLevel = opts.isSet("no-warn") ? 0 : 1; + if(args.empty()) { consoleErr << argv[0] << ": error: no input file" << endl; @@ -329,7 +333,7 @@ compile(const vector<string>& argv) try { Gen gen(icecpp->getBaseName(), headerExtension, sourceExtension, extraHeaders, include, - includePaths, dllExport, output, implCpp98, implCpp11, checksum, ice); + includePaths, dllExport, output, implCpp98, implCpp11, checksum, ice, warningLevel); gen.generate(u); } catch(const Slice::FileException& ex) |