diff options
author | Ville Voutilainen <ville.voutilainen@gmail.com> | 2018-09-13 00:43:49 +0300 |
---|---|---|
committer | Ville Voutilainen <ville@gcc.gnu.org> | 2018-09-13 00:43:49 +0300 |
commit | b94e18100a16514f0cc034fcc6fa8c4d5c86aee5 (patch) | |
tree | 9fe818411f91f0bed8ad2d577a50de7dcab7d13b /gcc/cp/method.c | |
parent | c09bc71562580f35bd31f351ae69188c12cc744f (diff) | |
download | gcc-b94e18100a16514f0cc034fcc6fa8c4d5c86aee5.zip gcc-b94e18100a16514f0cc034fcc6fa8c4d5c86aee5.tar.gz gcc-b94e18100a16514f0cc034fcc6fa8c4d5c86aee5.tar.bz2 |
re PR c++/87093 (is_constructible (__is_constructible() instrinsic) explicitly instantiates conversion member function of source)
PR c++/87093
Backport from mainline
2018-09-13 Ville Voutilainen <ville.voutilainen@gmail.com>
gcc/cp
PR c++/87093
* method.c (constructible_expr): We're in an unevaluated context
in all cases, not just for class targets.
testsuite/
PR c++/87093
* g++.dg/ext/is_constructible2.C: New.
From-SVN: r264254
Diffstat (limited to 'gcc/cp/method.c')
-rw-r--r-- | gcc/cp/method.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/cp/method.c b/gcc/cp/method.c index 3629aead..d7a4f64 100644 --- a/gcc/cp/method.c +++ b/gcc/cp/method.c @@ -1144,11 +1144,11 @@ static tree constructible_expr (tree to, tree from) { tree expr; + cp_unevaluated cp_uneval_guard; if (CLASS_TYPE_P (to)) { 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); |