aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp/mangle.cc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/cp/mangle.cc')
-rw-r--r--gcc/cp/mangle.cc8
1 files changed, 7 insertions, 1 deletions
diff --git a/gcc/cp/mangle.cc b/gcc/cp/mangle.cc
index a62c975..e97428e 100644
--- a/gcc/cp/mangle.cc
+++ b/gcc/cp/mangle.cc
@@ -1810,7 +1810,13 @@ write_closure_type_name (const tree type)
write_method_parms (parms, /*method_p=*/1, fn);
write_char ('E');
- write_compact_number (LAMBDA_EXPR_SCOPE_ONLY_DISCRIMINATOR (lambda));
+ if ((LAMBDA_EXPR_SCOPE_SIG_DISCRIMINATOR (lambda)
+ != LAMBDA_EXPR_SCOPE_ONLY_DISCRIMINATOR (lambda))
+ && abi_warn_or_compat_version_crosses (18))
+ G.need_abi_warning = true;
+ write_compact_number (abi_version_at_least (18)
+ ? LAMBDA_EXPR_SCOPE_SIG_DISCRIMINATOR (lambda)
+ : LAMBDA_EXPR_SCOPE_ONLY_DISCRIMINATOR (lambda));
}
/* Convert NUMBER to ascii using base BASE and generating at least