Patrick Palka a3bf6ce7f2 c++: Adjust mangling of __alignof__ [PR88115]
r11-4926 made __alignof__ get mangled differently from alignof,
encoding __alignof__ as a vendor extended operator.  But this
mangling is problematic for the reasons mentioned in
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88115#c6.

This patch changes our mangling of __alignof__ to instead use the
new "vendor extended expression" syntax that's proposed in
https://github.com/itanium-cxx-abi/cxx-abi/issues/112.  Clang does
the same thing already, so after this patch Clang and GCC agree
about the mangling of __alignof__(type) and __alignof__(expr).

gcc/cp/ChangeLog:

	PR c++/88115
	* mangle.c (write_expression): Adjust the mangling of
	__alignof__.

include/ChangeLog:

	PR c++/88115
	* demangle.h (enum demangle_component_type): Add
	DEMANGLE_COMPONENT_VENDOR_EXPR.

libiberty/ChangeLog:

	PR c++/88115
	* cp-demangle.c (d_dump, d_make_comp, d_expression_1)
	(d_count_templates_scopes): Handle DEMANGLE_COMPONENT_VENDOR_EXPR.
	(d_print_comp_inner): Likewise.
	<case DEMANGLE_COMPONENT_EXTENDED_OPERATOR>: Revert r11-4926
	change.
	<case DEMANGLE_COMPONENT_UNARY>: Likewise.
	* testsuite/demangle-expected: Adjust __alignof__ tests.

gcc/testsuite/ChangeLog:

	PR c++/88115
	* g++.dg/cpp0x/alignof7.C: Adjust expected mangling.
2021-03-30 22:57:11 -04:00
2021-02-26 00:16:36 +00:00
2021-01-06 00:16:55 +00:00
2021-03-24 00:16:25 +00:00
2020-12-15 00:16:35 +00:00
2021-02-03 00:16:23 +00:00
2021-01-04 10:26:59 +01:00
2021-01-16 00:16:29 +00:00
2021-03-04 00:16:48 +00:00
2021-01-06 00:16:55 +00:00
2021-01-13 00:16:36 +00:00
2021-03-30 00:16:29 +00:00
2021-01-04 10:26:59 +01:00
2021-01-06 00:16:55 +00:00
2021-03-30 00:16:29 +00:00
2021-03-13 00:16:20 +00:00
2021-03-15 14:52:55 -07:00
2021-03-30 00:16:29 +00:00
2021-01-06 00:16:55 +00:00
2021-01-16 00:16:29 +00:00
2021-01-06 00:16:55 +00:00
2021-01-06 00:16:55 +00:00
2021-03-27 00:16:27 +00:00
2021-01-06 00:16:55 +00:00
2021-03-09 00:16:57 +00:00
2021-01-06 00:16:55 +00:00
2021-03-30 00:16:29 +00:00
2021-01-06 00:16:55 +00:00
2021-01-06 00:16:55 +00:00
2020-12-17 00:16:37 +00:00
2021-01-06 00:16:55 +00:00
2020-12-02 11:04:01 -07:00
2021-03-27 00:16:27 +00:00
2020-12-15 07:42:59 -08:00
2020-12-15 07:42:59 -08:00
2021-01-05 16:04:14 -07:00
2021-03-12 19:48:13 -05:00
2021-03-12 19:48:13 -05:00

This directory contains the GNU Compiler Collection (GCC).

The GNU Compiler Collection is free software.  See the files whose
names start with COPYING for copying permission.  The manuals, and
some of the runtime libraries, are under different terms; see the
individual source files for details.

The directory INSTALL contains copies of the installation information
as HTML and plain text.  The source of this information is
gcc/doc/install.texi.  The installation information includes details
of what is included in the GCC sources and what files GCC installs.

See the file gcc/doc/gcc.texi (together with other files that it
includes) for usage and porting information.  An online readable
version of the manual is in the files gcc/doc/gcc.info*.

See http://gcc.gnu.org/bugs/ for how to report bugs usefully.

Copyright years on GCC source files may be listed using range
notation, e.g., 1987-2012, indicating that every year in the range,
inclusive, is a copyrightable year that could otherwise be listed
individually.
Description
No description provided
Readme 1.5 GiB
Languages
C++ 30.7%
C 30%
Ada 14.5%
D 6.1%
Go 5.7%
Other 12.5%