summaryrefslogtreecommitdiff
path: root/cpp/src/slice2objc/ObjCUtil.cpp
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/slice2objc/ObjCUtil.cpp
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/slice2objc/ObjCUtil.cpp')
-rw-r--r--cpp/src/slice2objc/ObjCUtil.cpp38
1 files changed, 24 insertions, 14 deletions
diff --git a/cpp/src/slice2objc/ObjCUtil.cpp b/cpp/src/slice2objc/ObjCUtil.cpp
index 1087a9a5bfc..ad2787308bc 100644
--- a/cpp/src/slice2objc/ObjCUtil.cpp
+++ b/cpp/src/slice2objc/ObjCUtil.cpp
@@ -1043,16 +1043,17 @@ Slice::ObjCGenerator::writeOptParamMarshalUnmarshalCode(Output &out, const TypeP
}
void
-Slice::ObjCGenerator::validateMetaData(const UnitPtr& u)
+Slice::ObjCGenerator::validateMetaData(const UnitPtr& u, int warningLevel)
{
- MetaDataVisitor visitor;
+ MetaDataVisitor visitor(warningLevel);
u->visit(&visitor, true);
}
const string Slice::ObjCGenerator::MetaDataVisitor::_objcPrefix = "objc:";
const string Slice::ObjCGenerator::MetaDataVisitor::_msg = "ignoring invalid metadata";
-Slice::ObjCGenerator::MetaDataVisitor::MetaDataVisitor()
+Slice::ObjCGenerator::MetaDataVisitor::MetaDataVisitor(int warningLevel) :
+ ParserVisitor(warningLevel)
{
}
@@ -1085,10 +1086,13 @@ Slice::ObjCGenerator::MetaDataVisitor::visitUnitStart(const UnitPtr& p)
headerDir++;
if(headerDir > 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());
+ }
globalMetaData.remove(s);
}
continue;
@@ -1098,17 +1102,23 @@ Slice::ObjCGenerator::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());
+ }
globalMetaData.remove(s);
}
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());
+ }
globalMetaData.remove(s);
}
}