diff options
author | Nathan Sidwell <nathan@acm.org> | 2022-10-24 17:39:55 -0400 |
---|---|---|
committer | Nathan Sidwell <nathan@acm.org> | 2022-10-27 11:56:11 -0400 |
commit | f7d1d7777bb86ad049f88214109fb561a741aa2c (patch) | |
tree | 82ece2eeb0a792f358dd7a0a57be1d4e85c90a57 /libjava/java/net/URLClassLoader.java | |
parent | f95d3d5de72a1c43e8d529bad3ef59afc3214705 (diff) | |
download | gcc-f7d1d7777bb86ad049f88214109fb561a741aa2c.zip gcc-f7d1d7777bb86ad049f88214109fb561a741aa2c.tar.gz gcc-f7d1d7777bb86ad049f88214109fb561a741aa2c.tar.bz2 |
c++: Templated lambda mangling
(Explicitly) Templated lambdas have a different signature to
implicitly templated lambdas -- '[]<template T> (T) {}' is not the
same as '[](auto) {}'. This should be reflected in the mangling. The
ABI captures this as
https://github.com/itanium-cxx-abi/cxx-abi/issues/31, and clang has
implemented such additions.
It's relatively straight forwards to write out the non-synthetic
template parms, and note if we need to issue an ABI warning.
gcc/cp/
* mangle.cc (write_closure_template_head): New.
(write_closure_type_name): Call it.
gcc/testsuite/
* g++.dg/abi/lambda-ctx1-18.C: Adjust.
* g++.dg/abi/lambda-ctx1-18vs17.C: Adjust.
* g++.dg/abi/lambda-tpl1-17.C: New.
* g++.dg/abi/lambda-tpl1-18.C: New.
* g++.dg/abi/lambda-tpl1-18vs17.C: New.
* g++.dg/abi/lambda-tpl1.h: New.
Diffstat (limited to 'libjava/java/net/URLClassLoader.java')
0 files changed, 0 insertions, 0 deletions