aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Examples/test-suite/cpp11_default_delete.i9
-rw-r--r--Examples/test-suite/cpp11_noexcept.i5
-rw-r--r--Source/CParse/parser.y7
3 files changed, 19 insertions, 2 deletions
diff --git a/Examples/test-suite/cpp11_default_delete.i b/Examples/test-suite/cpp11_default_delete.i
index 49a677060..79c02cddc 100644
--- a/Examples/test-suite/cpp11_default_delete.i
+++ b/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;
+};
+
%}
diff --git a/Examples/test-suite/cpp11_noexcept.i b/Examples/test-suite/cpp11_noexcept.i
index 27476fa70..6fed5b8df 100644
--- a/Examples/test-suite/cpp11_noexcept.i
+++ b/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;
diff --git a/Source/CParse/parser.y b/Source/CParse/parser.y
index bb1b5c1cc..caac88e4d 100644
--- a/Source/CParse/parser.y
+++ b/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