43 lines
1.5 KiB
Diff
43 lines
1.5 KiB
Diff
From 57b9683f0ce55a410c567fcb2dc365a2cc848d6a Mon Sep 17 00:00:00 2001
|
|
From: jason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>
|
|
Date: Mon, 26 Feb 2018 06:09:07 +0000
|
|
Subject: [PATCH] PR c++/81589 - error with is_trivially_constructible.
|
|
|
|
* method.c (constructible_expr): Set cp_unevaluated.
|
|
|
|
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-7-branch@257981 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
---
|
|
gcc/cp/method.c | 1 +
|
|
gcc/testsuite/g++.dg/ext/is_trivially_constructible6.C | 10 ++++++++++
|
|
2 files changed, 11 insertions(+)
|
|
create mode 100644 gcc/testsuite/g++.dg/ext/is_trivially_constructible6.C
|
|
|
|
diff --git a/gcc/cp/method.c b/gcc/cp/method.c
|
|
index 59ad43f73fee..a2d4c071efa3 100644
|
|
--- a/gcc/cp/method.c
|
|
+++ b/gcc/cp/method.c
|
|
@@ -1165,6 +1165,7 @@ constructible_expr (tree to, tree from)
|
|
{
|
|
tree ctype = to;
|
|
vec<tree, va_gc> *args = NULL;
|
|
+ cp_unevaluated cp_uneval_guard;
|
|
if (TREE_CODE (to) != REFERENCE_TYPE)
|
|
to = cp_build_reference_type (to, /*rval*/false);
|
|
tree ob = build_stub_object (to);
|
|
diff --git a/gcc/testsuite/g++.dg/ext/is_trivially_constructible6.C b/gcc/testsuite/g++.dg/ext/is_trivially_constructible6.C
|
|
new file mode 100644
|
|
index 000000000000..10a8dfbb8f0b
|
|
--- /dev/null
|
|
+++ b/gcc/testsuite/g++.dg/ext/is_trivially_constructible6.C
|
|
@@ -0,0 +1,10 @@
|
|
+// PR c++/81589
|
|
+
|
|
+template <typename k>
|
|
+struct z {
|
|
+ z() {
|
|
+ k::error;
|
|
+ }
|
|
+};
|
|
+
|
|
+int x = __is_trivially_constructible(z<int>);
|