summaryrefslogtreecommitdiff
path: root/cpp/src/slice2cpp/Gen.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/slice2cpp/Gen.cpp')
-rw-r--r--cpp/src/slice2cpp/Gen.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/cpp/src/slice2cpp/Gen.cpp b/cpp/src/slice2cpp/Gen.cpp
index ed0346f9dd8..5f314473123 100644
--- a/cpp/src/slice2cpp/Gen.cpp
+++ b/cpp/src/slice2cpp/Gen.cpp
@@ -800,7 +800,8 @@ Slice::Gen::TypesVisitor::visitExceptionStart(const ExceptionPtr& p)
C << nl << "return " << flatName << ';';
C << eb;
- if(p->isLocal())
+ StringList metaData = p->getMetaData();
+ if(find(metaData.begin(), metaData.end(), "cpp:ice_print") != metaData.end())
{
H << nl << "virtual void ice_print(::std::ostream&) const;";
}
@@ -7008,6 +7009,10 @@ Slice::Gen::MetaDataVisitor::validate(const SyntaxTreeBasePtr& cont, const Strin
{
continue;
}
+ if(ExceptionPtr::dynamicCast(cont) && ss == "ice_print")
+ {
+ continue;
+ }
emitWarning(file, line, "ignoring invalid metadata `" + s + "'");
}
_history.insert(s);