summaryrefslogtreecommitdiff
path: root/cpp/src/slice2cpp
diff options
context:
space:
mode:
authorJose <jose@zeroc.com>2017-02-01 23:16:30 +0100
committerJose <jose@zeroc.com>2017-02-01 23:16:30 +0100
commitca131951f8d81ea3da13277172a24234b5c848ea (patch)
tree28b8d9ad6a09f550ef43f3b24df8048da8e70d7d /cpp/src/slice2cpp
parentAdded entries for support of try-with-resources/with statement in Java/Python (diff)
downloadice-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.cpp202
-rw-r--r--cpp/src/slice2cpp/Gen.h99
-rw-r--r--cpp/src/slice2cpp/Main.cpp6
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)