Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Fix some cases of C++11 exception specifications on constructors with…

… =default or =delete
  • Loading branch information...
commit fcd0480364ba932cf5e9eabb34c7c048f146e758 1 parent 97a9f58
@wsfulton wsfulton authored
View
9 Examples/test-suite/cpp11_default_delete.i
@@ -69,4 +69,13 @@ struct moveonly {
moveonly& operator=(moveonly&&) = default;
~moveonly() = default;
};
+
+struct ConstructorThrow {
+ ConstructorThrow() throw() = default;
+ ConstructorThrow(const ConstructorThrow&) throw() = delete;
+ ConstructorThrow(ConstructorThrow&&) throw() = delete;
+ ConstructorThrow& operator=(const ConstructorThrow&) throw() = delete;
+ ~ConstructorThrow() throw() = default;
+};
+
%}
View
5 Examples/test-suite/cpp11_noexcept.i
@@ -37,8 +37,9 @@ struct NoExceptAbstract {
};
struct NoExceptDefaultDelete {
-// NoExceptDefaultDelete() noexcept = default;
-// NoExceptDefaultDelete(const NoExceptDefaultDelete&) noexcept = delete;
+ template<typename T> NoExceptDefaultDelete(T) noexcept = delete;
+ NoExceptDefaultDelete() noexcept = default;
+ NoExceptDefaultDelete(const NoExceptDefaultDelete&) noexcept = delete;
NoExceptDefaultDelete(NoExceptDefaultDelete&&) = delete;
NoExceptDefaultDelete& operator=(const NoExceptDefaultDelete&) = delete;
~NoExceptDefaultDelete() noexcept = default;
View
7 Source/CParse/parser.y
@@ -6780,6 +6780,13 @@ ctor_end : cpp_const ctor_initializer SEMI {
$$.throwf = 0;
$$.nexcept = 0;
}
+ | exception_specification EQUAL default_delete SEMI {
+ $$.have_parms = 0;
+ $$.defarg = $3.val;
+ $$.throws = $1.throws;
+ $$.throwf = $1.throwf;
+ $$.nexcept = $1.nexcept;
+ }
;
ctor_initializer : COLON mem_initializer_list
Please sign in to comment.
Something went wrong with that request. Please try again.