[Bug c++/70790] Can't mangle noexcept expressions

2023-06-03 Thread cvs-commit at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70790

--- Comment #4 from CVS Commits  ---
The master branch has been updated by Patrick Palka :

https://gcc.gnu.org/g:999e617d3121b82921c8031ee695fd036f553f04

commit r14-1516-g999e617d3121b82921c8031ee695fd036f553f04
Author: Patrick Palka 
Date:   Sat Jun 3 09:03:27 2023 -0400

c++: mangle noexcept-expr [PR70790]

This implements noexcept(expr) mangling and demangling as per the
Itanium ABI.

PR c++/70790

gcc/cp/ChangeLog:

* mangle.cc (write_expression): Handle NOEXCEPT_EXPR.

libiberty/ChangeLog:

* cp-demangle.c (cplus_demangle_operators): Add the noexcept
operator.
(d_print_comp_inner) : Always
print parens around the operand of noexcept too.
* testsuite/demangle-expected: Test noexcept operator
demangling.

gcc/testsuite/ChangeLog:

* g++.dg/abi/mangle78.C: New test.

[Bug c++/70790] Can't mangle noexcept expressions

2021-05-04 Thread rguenth at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70790

Richard Biener  changed:

   What|Removed |Added

 Status|NEW |ASSIGNED

[Bug c++/70790] Can't mangle noexcept expressions

2020-04-08 Thread nathan at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70790

Nathan Sidwell  changed:

   What|Removed |Added

 CC||nathan at gcc dot gnu.org
   Assignee|unassigned at gcc dot gnu.org  |nathan at gcc dot 
gnu.org

--- Comment #3 from Nathan Sidwell  ---
... so I don't forget. but not a GCC 10 thing

[Bug c++/70790] Can't mangle noexcept expressions

2020-04-08 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70790

Jonathan Wakely  changed:

   What|Removed |Added

 Ever confirmed|0   |1
   Last reconfirmed||2020-04-08
   Keywords||FIXME
 Status|UNCONFIRMED |NEW

[Bug c++/70790] Can't mangle noexcept expressions

2020-04-07 Thread lewissbaker.opensource at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70790

Lewis Baker  changed:

   What|Removed |Added

 CC||lewissbaker.opensource@gmai
   ||l.com

--- Comment #2 from Lewis Baker  ---
The relevant code seems to live in gcc/cp/mangle.c (at least for IA64 mangling)

Does it just need something like the following inserted into the
write_expression() function?

```
  else if (TREE_CODE (expr) == NOEXCEPT_EXPR)
{
  write_string ("nx");
  write_expression (TREE_OPERAND (expr, 0));
}
```

The "nx" prefix seems to be what LLVM uses for its Itanium mangling.
See
https://github.com/llvm/llvm-project/blob/13a1504ffb9a9a4f82dc1b60d9e8cbb173c7d030/clang/lib/AST/ItaniumMangle.cpp#L4057

Also see example showing this under clang (working) and gcc (failing):
https://godbolt.org/z/yHrZDm

[Bug c++/70790] Can't mangle noexcept expressions

2020-04-07 Thread eric.niebler at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70790

--- Comment #1 from Eric Niebler  ---
Still present on trunk, four years later.