diff options
author | Benoit Foucher <benoit@zeroc.com> | 2018-01-24 15:52:14 +0100 |
---|---|---|
committer | Benoit Foucher <benoit@zeroc.com> | 2018-01-24 15:52:14 +0100 |
commit | b3265bff122d7ae2485e7bfa80ca74acb3d89269 (patch) | |
tree | c4cb87602901344b0627049213e55045a257a447 /cpp/src/slice2cpp | |
parent | Enabled again strict prototypes in Xcode test project (diff) | |
download | ice-b3265bff122d7ae2485e7bfa80ca74acb3d89269.tar.bz2 ice-b3265bff122d7ae2485e7bfa80ca74acb3d89269.tar.xz ice-b3265bff122d7ae2485e7bfa80ca74acb3d89269.zip |
Added [cpp:noexcept] to Slice local methods that don't throw (ICE-8592)
Diffstat (limited to 'cpp/src/slice2cpp')
-rw-r--r-- | cpp/src/slice2cpp/Gen.cpp | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/cpp/src/slice2cpp/Gen.cpp b/cpp/src/slice2cpp/Gen.cpp index 6631a261e1c..65807d19f28 100644 --- a/cpp/src/slice2cpp/Gen.cpp +++ b/cpp/src/slice2cpp/Gen.cpp @@ -5510,8 +5510,7 @@ Slice::Gen::MetaDataVisitor::visitOperation(const OperationPtr& p) assert(dc); if(!cl->isLocal() && p->hasMetaData("cpp:noexcept")) { - dc->warning(InvalidMetaData, p->file(), p->line(), - "ignoring metadata `cpp:noexcept' for non local interface"); + dc->warning(InvalidMetaData, p->file(), p->line(), "ignoring metadata `cpp:noexcept' for non local interface"); metaData.remove("cpp:noexcept"); } @@ -5527,7 +5526,6 @@ Slice::Gen::MetaDataVisitor::visitOperation(const OperationPtr& p) dc->warning(InvalidMetaData, p->file(), p->line(), "ignoring invalid metadata `" + s + "' for operation with void return type"); metaData.remove(s); - continue; } } } @@ -5616,10 +5614,11 @@ Slice::Gen::MetaDataVisitor::validate(const SyntaxTreeBasePtr& cont, const Strin cpp11 = true; } - if(s == "cpp:const" && operation) + if(operation && (s == "cpp:const" || s == "cpp:noexcept")) { continue; } + if(!prefix.empty()) { string ss = s.substr(prefix.size()); |